Wartość logiczna to najprostszy typ danych, który zawsze zwraca dwie możliwe wartości: prawdę lub fałsz. Zawsze można skorzystać z potwierdzenia w postaci wartości TAK lub NIE.
MySQL nie zawiera wbudowanego typu danych Boolean ani Bool. Zapewniają TINYINT typ danych zamiast typów danych Boolean lub Bool. MySQL'a uważa wartość zero za fałszywą, a wartość niezerową za prawdziwą. Jeśli chcesz używać literałów logicznych, użyj wartości prawda lub fałsz, która zawsze daje wartość 0 i 1. 0 i 1 reprezentują wartości całkowite.
Wykonaj następującą instrukcję, aby zobaczyć wartości całkowite literałów boolowskich:
Mysql> Select TRUE, FALSE, true, false, True, False;
Po pomyślnym wykonaniu pojawi się następujący wynik:
Przykład logiczny MySQL
Możemy przechowywać wartość logiczną w tabeli MySQL jako typ danych całkowitych. Stwórzmy tabelę demonstrującą użycie typu danych Boolean w MySQL:
mysql> CREATE TABLE student ( studentid INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(40) NOT NULL, age VARCHAR(3), pass BOOLEAN );
W powyższym zapytaniu widzimy, że pole pass jest zdefiniowane jako wartość logiczna podczas pokazywania definicji tabeli; zawiera TINIINT w następujący sposób:
Java lokalna data i czas
mysql> DESCRIBE student;
Dodajmy dwa nowe wiersze do powyższej tabeli za pomocą następującego zapytania:
mysql> INSERT INTO student(name, pass) VALUES('Peter',true), ('John',false);
Po wykonaniu powyższego zapytania MySQL natychmiast sprawdza, czy w tabeli znajduje się typ danych Boolean. Jeśli zostaną znalezione literały logiczne, zostaną one przekonwertowane na wartości całkowite 0 i 1. Wykonaj następujące zapytanie, aby pobrać dane z tabeli ucznia:
Mysql> SELECT studentid, name, pass FROM student;
Otrzymasz następujący wynik, w którym literał prawdziwy i fałszywy zostanie przekonwertowany na wartość 0 i 1.
Ponieważ MySQL zawsze używa TINYINT jako wartości logicznej, możemy również wstawić dowolne wartości całkowite do kolumny Boolean. Wykonaj następującą instrukcję:
Mysql> INSERT INTO student(name, pass) VALUES('Miller',2);
Otrzymasz następujący wynik:
W niektórych przypadkach konieczne jest uzyskanie wyniku w literałach prawdziwych i fałszywych. W takim przypadku musisz wykonać funkcję if() z instrukcją Select w następujący sposób:
Mysql> SELECT studentid, name, IF(pass, 'true', 'false') completed FROM student1;
Da to następujące dane wyjściowe:
Operatory logiczne MySQL
MySQL pozwala nam również na użycie operatorów z typem danych Boolean. Wykonaj następujące zapytanie, aby uzyskać wszystkie wyniki pozytywne dla ucznia tabeli.
SELECT studentid, name, pass FROM student1 WHERE pass = TRUE;
Ta instrukcja zwraca następujące dane wyjściowe:
Powyższa instrukcja zwraca wynik pozytywny tylko wtedy, gdy wartość jest równa 1. Możemy to naprawić za pomocą JEST operator. Operator ten sprawdza wartość za pomocą wartości logicznej. Wyjaśnia to poniższe stwierdzenie:
SELECT studentid, name, pass FROM student1 WHERE pass is TRUE;
Po wykonaniu tej instrukcji otrzymasz następujący wynik:
Jeśli chcesz zobaczyć oczekujący wynik, użyj TO FAŁSZ Lub TO NIE JEST PRAWDA operatora jak poniżej:
SELECT studentid, name, pass FROM student1 WHERE pass IS FALSE; OR, SELECT studentid, name, pass FROM student1 WHERE pass IS NOT TRUE;
Otrzymasz następujące dane wyjściowe: