SQL - Оператор BOOLEAN (BIT): Дружеское руководство для начинающих
Здравствуйте, будущие маги SQL! Сегодня мы отправляемся в увлекательное путешествие в мир логических операторов в SQL. Не волнуйтесь, если вы никогда не писали ни строчки кода раньше - я буду вашим надежным проводником, и мы разберем эту тему шаг за шагом. Так что возьмите кружку вашего любимого напитка и погружайтесь с нами!
Что такое 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