Boolean je najpreprostejši podatkovni tip, ki vedno vrne dve možni vrednosti, bodisi true ali false. Vedno lahko uporabite za pridobitev potrditve v obliki vrednosti DA ali Ne.
MySQL ne vsebuje vgrajenega podatkovnega tipa Boolean ali Bool. Zagotavljajo a TINYINT podatkovni tip namesto podatkovnih tipov Boolean ali Bool. MySQL vrednost nič šteje za napačno in vrednost, ki ni nič, za resnično. Če želite uporabiti logične literale, uporabite true ali false, ki vedno ovrednotita vrednost 0 in 1. 0 in 1 predstavljata celoštevilske vrednosti.
Izvedite naslednji stavek, če si želite ogledati celoštevilske vrednosti logičnih literalov:
Mysql> Select TRUE, FALSE, true, false, True, False;
Po uspešni izvedbi se prikaže naslednji rezultat:
Primer logične vrednosti MySQL
Logično vrednost lahko shranimo v tabelo MySQL kot celoštevilski podatkovni tip. Ustvarimo tabelo študent, ki prikazuje uporabo logičnega podatkovnega tipa v MySQL:
mysql> CREATE TABLE student ( studentid INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(40) NOT NULL, age VARCHAR(3), pass BOOLEAN );
V zgornji poizvedbi lahko vidimo, da je polje pass definirano kot Boolean, ko prikazuje definicijo tabele; vsebuje TINIINT, kot sledi:
numpy dnevnik
mysql> DESCRIBE student;
V zgornjo tabelo dodamo dve novi vrstici s pomočjo naslednje poizvedbe:
mysql> INSERT INTO student(name, pass) VALUES('Peter',true), ('John',false);
Ko se zgornja poizvedba izvede, MySQL takoj preveri, ali je v tabeli logični podatkovni tip. Če so logični literali najdeni, bodo pretvorjeni v celoštevilske vrednosti 0 in 1. Izvedite naslednjo poizvedbo, da dobite podatke iz tabele učencev:
Mysql> SELECT studentid, name, pass FROM student;
Dobili boste naslednji rezultat, kjer se pravi in lažni literal pretvorita v vrednost 0 in 1.
Ker MySQL vedno uporablja TINYINT kot Boolean, lahko v stolpec Boolean vstavimo tudi poljubne celoštevilske vrednosti. Izvedite naslednji stavek:
Mysql> INSERT INTO student(name, pass) VALUES('Miller',2);
Dobili boste naslednji rezultat:
V nekaterih primerih morate dobiti rezultat v pravih in napačnih literalih. V tem primeru morate izvesti funkcijo if() s stavkom select, kot sledi:
Mysql> SELECT studentid, name, IF(pass, 'true', 'false') completed FROM student1;
Dalo bo naslednje rezultate:
Logični operatorji MySQL
MySQL nam omogoča tudi uporabo operatorjev s podatkovnim tipom Boolean. Izvedite naslednjo poizvedbo, da dobite vse rezultate uspešnosti tabele študent.
SELECT studentid, name, pass FROM student1 WHERE pass = TRUE;
Ta stavek vrne naslednje rezultate:
Zgornji stavek vrne rezultat prehoda le, če je vrednost enaka 1. To lahko popravimo z uporabo JE operater. Ta operator potrdi vrednost z logično vrednostjo. To pojasnjuje naslednja izjava:
SELECT studentid, name, pass FROM student1 WHERE pass is TRUE;
Po izvedbi tega stavka boste dobili naslednji rezultat:
Če želite videti čakajoči rezultat, uporabite JE LAŽNO oz NI RES operater kot spodaj:
SELECT studentid, name, pass FROM student1 WHERE pass IS FALSE; OR, SELECT studentid, name, pass FROM student1 WHERE pass IS NOT TRUE;
Dobili boste naslednje rezultate: