SQL - Оператор BOOLEAN (BIT): Дружеское руководство для начинающих

Здравствуйте, будущие маги SQL! Сегодня мы отправляемся в увлекательное путешествие в мир логических операторов в SQL. Не волнуйтесь, если вы никогда не писали ни строчки кода раньше - я буду вашим надежным проводником, и мы разберем эту тему шаг за шагом. Так что возьмите кружку вашего любимого напитка и погружайтесь с нами!

SQL - BOOLEAN (BIT) Operator

Что такое BOOLEAN в SQL?

Прежде чем углубиться в детали, начнем с азов. BOOLEAN - это тип данных, который может принимать только два возможных значения: TRUE или FALSE. Это как выключатель света - он либо включен, либо выключен, без середины. В SQL мы используем BOOLEAN для принятия решений и фильтрации данных на основе определенных условий.

Теперь давайте посмотрим, как различные системы управления базами данных обрабатывают BOOLEAN.

BOOLEAN в MySQL

MySQL, одна из самых популярных систем управления базами данных, не имеет встроенного типа BOOLEAN. Вместо этого она использует TINYINT(1) для представления логических значений. Вот краткий обзор:

  • TRUE представляется значением 1
  • FALSE представляется значением 0

Давайте создадим простую таблицу, чтобы это продемонстрировать:

CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
is_enrolled TINYINT(1)
);

INSERT INTO students (id, name, is_enrolled) VALUES
(1, 'Alice', 1),
(2, 'Bob', 0),
(3, 'Charlie', 1);

В этом примере мы создали таблицу students с колонкой is_enrolled, которая действует как наш BOOLEAN. Alice и Charlie зачислены (TRUE), а Bob нет (FALSE).

BOOLEAN в MS SQL Server

Microsoft SQL Server, с другой стороны, имеет dedicated тип данных BIT для логических значений. Вот как это работает:

  • TRUE представляется значением 1
  • FALSE представляется значением 0

Давайте создадим ту же таблицу в MS SQL Server:

CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
is_enrolled BIT
);

INSERT INTO students (id, name, is_enrolled) VALUES
(1, 'Alice', 1),
(2, 'Bob', 0),
(3, 'Charlie', 1);

Структура та же, но мы используем BIT вместо TINYINT(1) для колонки is_enrolled.

Фильтрация логических данных

Теперь, когда у нас есть данные, давайте научимся фильтровать их с помощью логических условий. Вот где происходит настоящее魔法!

Поиск зачисленных студентов

Чтобы найти всех зачисленных студентов, мы можем использовать следующий запрос:

SELECT * FROM students WHERE is_enrolled = TRUE;

Или, в MySQL:

SELECT * FROM students WHERE is_enrolled = 1;

Этот запрос вернет Alice и Charlie, наших зачисленных студентов.

Поиск не зачисленных студентов

Чтобы найти студентов, которые не зачислены, мы можем сделать это:

SELECT * FROM students WHERE is_enrolled = FALSE;

Или, в MySQL:

SELECT * FROM students WHERE is_enrolled = 0;

Этот запрос вернет Bob, нашего не зачисленного студента.

Отрицание логических условий

Иногда мы хотим найти обратное условие. Мы можем использовать оператор NOT для этого:

SELECT * FROM students WHERE NOT is_enrolled;

Этот запрос вернет всех студентов, которые не зачислены, что то же самое, что и наш предыдущий запрос для поиска не зачисленных студентов.

Работа с NULL значениями

В SQL NULL представляет собой неизвестное или отсутствующее значение. Это neither TRUE nor FALSE. Работая с логическими данными, мы должны быть осторожны с NULL значениями. Давайте добавим студента с неизвестным статусом зачисления:

INSERT INTO students (id, name, is_enrolled) VALUES (4, 'David', NULL);

Теперь, если мы выполним наши предыдущие запросы, David не появится ни в списке зачисленных, ни в списке не зачисленных студентов. Чтобы найти студентов с неизвестным статусом зачисления, мы можем использовать:

SELECT * FROM students WHERE is_enrolled IS NULL;

Этот запрос вернет David, нашего студента с неизвестным статусом зачисления.

Обновление логических значений

Lastly, let's look at how to update Boolean values. Say Bob decides to enroll:

UPDATE students SET is_enrolled = TRUE WHERE name = 'Bob';

Or in MySQL:

UPDATE students SET is_enrolled = 1 WHERE name = 'Bob';

Теперь Bob зачислен!

Заключение

И вот мы и рассмотрели основы логических операторов в SQL. Помните, что логические значения - это как простые да/нет вопросы в вашей базе данных. Они极其 полезны для фильтрации данных и принятия решений в ваших запросах.

Вот quick reference таблица методов, которые мы рассмотрели:

Операция MySQL Синтаксис MS SQL Server Синтаксис
Создание логической колонки TINYINT(1) BIT
Установить TRUE 1 1
Установить FALSE 0 0
Фильтрация TRUE WHERE column = 1 WHERE column = TRUE
Фильтрация FALSE WHERE column = 0 WHERE column = FALSE
Отрицание WHERE NOT column WHERE NOT column
Проверка NULL WHERE column IS NULL WHERE column IS NULL

Практикуйте эти концепции, и вскоре вы будете использовать логические операторы как профи! Помните, ключ к maîtriser SQL - это практика и терпение. Не бойтесь экспериментировать с различными запросами - так мы все учимся и成长为 программисты.

Счастливого кодирования, и да будет с тобой Boolean!

Credits: Image by storyset