CodeGym /Kursy /SQL SELF /Typ logiczny: BOOLEAN

Typ logiczny: BOOLEAN

SQL SELF
Poziom 15 , Lekcja 3
Dostępny

Poznałeś już typy danych, które przechowują liczby i tekst. Teraz czas pogadać o typie logicznym — BOOLEAN. To chyba najbardziej "szczery" typ danych, bo odpowiada tylko na dwa pytania: "Tak" albo "Nie". A czasem — "Może" (czyli: NULL).

Typ logiczny BOOLEAN przechowuje wartości, które mogą być tylko:

  • TRUE (prawda);
  • FALSE (fałsz);
  • NULL (brak wartości).

Wyobraź sobie przełącznik: może być włączony TRUE, wyłączony FALSE albo w stanie nieznanym NULL, jeśli żarówka nagle zniknęła.

Można powiedzieć, że typ logiczny to podstawa podejmowania decyzji i logiki warunkowej w SQL. Bez niego nie dałoby się zrobić sensownego filtra w zapytaniu albo oznaczyć statusu czegokolwiek.

Przykłady użycia

Typ logiczny jest szeroko używany w bazach danych. Oto kilka realnych przypadków:

Flagi i statusy.

Na przykład pole is_active może pokazywać, czy użytkownik jest aktywny (TRUE) czy nie (FALSE).

SELECT username, is_active
FROM users 
WHERE is_active = TRUE;

Kontrola wykonania.

Na przykład pole is_complete może przechowywać informację, czy zadanie zostało ukończone.

SELECT task_name
FROM tasks 
WHERE is_complete = FALSE;

Sprawdzanie dostępności.

Pole is_available może pokazywać, czy towar jest dostępny w magazynie.

Jak używać BOOLEAN w PostgreSQL?

Typ logiczny w PostgreSQL nazywa się po prostu BOOLEAN. Zróbmy tabelę i dodajmy do niej kilka kolumn:

  • Unikalny identyfikator zadania
  • Nazwa zadania
  • Logiczny status ukończenia zadania

Potem dodajmy kilka rekordów do tabeli:

task_id task_name - VARCHAR(255) is_complete - BOOLEAN
1 Napisać raport false
2 Pójść do sklepu true
3 Przeczytać książkę null

Pobieranie danych

Teraz zobaczmy, jak pobierać dane na podstawie wartości logicznej. Na przykład, żeby dostać tylko niewykonane zadania, napiszemy:

SELECT task_name
FROM tasks 
WHERE is_complete = FALSE;

To zapytanie zwróci tylko te zadania, gdzie is_complete równa się FALSE.

Wynik:

task_name
Napisać raport

Specyfika pracy z BOOLEAN

Filtrowanie wartości

Do pracy z typem logicznym możesz użyć takiej składni:

  • = TRUE — jeśli chcesz jasno wskazać, że wartość jest prawdziwa.
  • = FALSE — jeśli chcesz wybrać fałszywe wartości.
  • IS NULL — jeśli chcesz wybrać rekordy bez wartości.

Przykład:

SELECT task_name
FROM tasks 
WHERE is_complete IS NULL;

Uproszczenie warunków

PostgreSQL jest tak "sprytny", że często nawet nie musisz pisać = TRUE. Na przykład:

SELECT task_name
FROM tasks 
WHERE is_complete;

To zapytanie jest równoważne WHERE is_complete = TRUE.

Typowe błędy przy pracy z BOOLEAN

Kiedy zaczynasz pracę z nowym typem danych, błędów nie da się uniknąć. Oto kilka typowych problemów, które mogą się pojawić:

Porównanie z NULL. Początkujący często piszą is_active = NULL. Ale NULL nie można porównywać przez =. Żeby sprawdzić, czy wartość to NULL, użyj IS NULL albo IS NOT NULL.

Jawne podanie = TRUE. Czasem programiści dodają zbędne konstrukcje, typu WHERE is_active = TRUE. To nie jest błąd, ale można to uprościć, zostawiając po prostu WHERE is_active.

Błędne użycie stringów. Typ logiczny jest ściśle typowany. Nie możesz napisać is_active = 'TRUE' albo is_active = 'FALSE'. Używaj bezpośrednio wartości TRUE, FALSE lub NULL.

Po co to wszystko?

Pewnie się zastanawiasz: po co sobie komplikować życie, dodając ten BOOLEAN? Czemu nie użyć po prostu liczb, gdzie 1 to prawda, a 0 to fałsz?

Odpowiedź jest prosta: BOOLEAN sprawia, że twój kod i dane są bardziej czytelne. Kiedy ktoś patrzy na tabelę z polem is_active, od razu wie, że to pole przechowuje logiczną wartość (tak/nie). To poprawia czytelność schematu bazy i sprawia, że twoja model danych jest bardziej zrozumiały dla innych programistów.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION