Būla ir vienkāršākais datu tips, kas vienmēr atgriež divas iespējamās vērtības — patiesa vai nepatiesa. To vienmēr var izmantot, lai saņemtu apstiprinājumu JĀ vai Nē vērtības veidā.
MySQL nesatur iebūvētu Būla vai Būla datu tipu. Tie nodrošina a TINYINT datu tips, nevis Būla vai Būla datu tipi. MySQL uzskatīja nulli par nepatiesu un vērtību, kas nav nulles, par patiesu. Ja vēlaties izmantot Būla literāļus, izmantojiet patieso vai nepatieso vērtību, kas vienmēr novērtē vērtību 0 un 1. 0 un 1 apzīmē veselas vērtības.
Izpildiet šo paziņojumu, lai redzētu Būla literāļu veselās vērtības:
Mysql> Select TRUE, FALSE, true, false, True, False;
Pēc veiksmīgas izpildes tiek parādīts šāds rezultāts:
MySQL Būla piemērs
Mēs varam saglabāt Būla vērtību MySQL tabulā kā veselu datu tipu. Izveidosim tabulas studentu, kas demonstrē Būla datu tipa izmantošanu MySQL:
mysql> CREATE TABLE student ( studentid INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(40) NOT NULL, age VARCHAR(3), pass BOOLEAN );
Iepriekš minētajā vaicājumā redzams, ka, parādot tabulas definīciju, atbilstības lauks ir definēts kā Būla lauks; tas satur TINIINT šādi:
ievietošanas šķirošanas algoritmi
mysql> DESCRIBE student;
Pievienosim divas jaunas rindas augstāk esošajā tabulā, izmantojot šādu vaicājumu:
mysql> INSERT INTO student(name, pass) VALUES('Peter',true), ('John',false);
Kad iepriekš minētais vaicājums ir izpildīts, MySQL nekavējoties pārbauda tabulā Būla datu tipu. Ja Būla literāļi ir atrasti, tie tiks pārvērsti veselu skaitļu vērtībās 0 un 1. Izpildiet šādu vaicājumu, lai iegūtu datus no studentu tabulas:
Mysql> SELECT studentid, name, pass FROM student;
Jūs iegūsit šādu izvadi, kurā patiesais un nepatiesais literāls tiek pārvērsts 0 un 1 vērtībā.
Tā kā MySQL vienmēr izmanto TINYINT kā Būla vērtību, mēs varam arī ievietot jebkuras veselas vērtības Būla kolonnā. Izpildiet šādu paziņojumu:
Mysql> INSERT INTO student(name, pass) VALUES('Miller',2);
Jūs iegūsit šādu rezultātu:
Dažos gadījumos jums ir jāiegūst rezultāts patiesos un nepatiesos burtos. Tādā gadījumā jums ir jāizpilda funkcija if() ar atlases priekšrakstu šādi:
Mysql> SELECT studentid, name, IF(pass, 'true', 'false') completed FROM student1;
Tas dos šādu rezultātu:
MySQL Būla operatori
MySQL arī ļauj mums izmantot operatorus ar Būla datu tipu. Izpildiet šo vaicājumu, lai iegūtu visus tabulas studenta nokārtošanas rezultātus.
SELECT studentid, name, pass FROM student1 WHERE pass = TRUE;
Šis paziņojums atgriež šādu izvadi:
Iepriekš minētais paziņojums atgriež nokārtošanas rezultātu tikai tad, ja vērtība ir vienāda ar 1. Mēs varam to labot, izmantojot IR operators. Šis operators apstiprina vērtību ar Būla vērtību. Šis paziņojums to izskaidro:
SELECT studentid, name, pass FROM student1 WHERE pass is TRUE;
Pēc šī paziņojuma izpildīšanas jūs iegūsit šādu rezultātu:
Ja vēlaties redzēt gaidošo rezultātu, izmantojiet IR NEPAREIZS vai NAV PATIESĪBA operators, kā norādīts zemāk:
SELECT studentid, name, pass FROM student1 WHERE pass IS FALSE; OR, SELECT studentid, name, pass FROM student1 WHERE pass IS NOT TRUE;
Jūs saņemsiet šādu izvadi: