Поиск по сайту:
Лучше терпеть зло, чем причинять зло (У. Моэм).

Использование логического типа данных MySQL

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
18.06.2021
Как установить MySQL на Ubuntu 16.04

По умолчанию MySQL не предлагает собственный логический тип данных. Однако он предоставляет нам тип данных TINYINT, позволяющий хранить логические значения – например, значения с типом TINYINT.

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

 

Основное использование

MySQL определяет значение 0 как ложное и ненулевое значение как истинное. Следовательно, чтобы использовать значения логических литералов, вы используете константы TRUE и FALSE, которые оценивают значения 0 и 1.

Пример:

select TRUE, FALSE;

После выполнения вышеуказанного запроса вы получите результат, аналогичный показанному ниже:

mysql> select TRUE, FALSE;

+------+-------+

| TRUE | FALSE |

+------+-------+

|    1 |     0 |

+------+-------+

1 row in set (0.00 sec)

Из вышесказанного мы можем сделать вывод, что MySQL рассматривает 1 и 0 как True и False, соответственно.

Стоит отметить, что в качестве верхнего или нижнего регистра MySQL присваивает True и False 0 и 1, как показано в запросе ниже:

select TRUE, FALSE, true, false, True, False;

Результат показан ниже:

+------+-------+------+-------+------+-------+

| TRUE | FALSE | true | false | True | False |

+------+-------+------+-------+------+-------+

|    1 |     0 |    1 |     0 |    1 |     0 |

+------+-------+------+-------+------+-------+

1 row in set (0.00 sec)

Примеры использования

Давайте воспользуемся примером, чтобы проиллюстрировать, как мы можем использовать логический тип в MySQL.

Начните с создания базы данных и таблицы с названием languages, в которой будет храниться информация о различных языках программирования.

Внутри таблицы у нас есть следующие столбцы:

  1. ID – INT NOT NULL AUTO_INCREMENT
  2. Language_name – VARCHAR (100) NOT NULL
  3. Beginner_Friendly – BOOLEAN

Рассмотрим приведенный ниже запрос для реализации указанной выше базы данных:

CREATE DATABASE sampled;

USE sampled;

CREATE TABLE languages (

ID INT NOT NULL AUTO_INCREMENT,

Language_name VARCHAR(100),

Beginner_friendly BOOLEAN,

PRIMARY KEY (ID)

);

После выполнения вышеуказанного запроса у вас будет выборочная база данных с таблицей языков.

Читать  Выбор случайных записей в MySQL

Чтобы получить информацию о таблице выше, мы можем использовать оператор MySQL DESC, как показано в выходных данных ниже:

mysql> DESC languages;

+-------------------+--------------+------+-----+---------+----------------+

| Field             | Type         | Null | Key | Default | Extra          |

+-------------------+--------------+------+-----+---------+----------------+

| ID                | int          | NO   | PRI | NULL    | auto_increment |

| Language_name     | varchar(100) | YES  |     | NULL    |                |

| Beginner_friendly | tinyint(1)   | YES  |     | NULL    |                |

+-------------------+--------------+------+-----+---------+----------------+

3 rows in set (0.01 sec)

Если вы посмотрите на поле Beginner_friendly, которое мы установили как Boolean при создании таблицы, теперь оно показывает Type of TINYINT.

На следующем шаге давайте добавим данные в таблицу, используя запросы, представленные ниже:

INSERT INTO sampled.languages (ID, Language_name, Beginner_friendly) VALUES(1, "Python", True);

INSERT INTO sampled.languages (ID, Language_name, Beginner_friendly) VALUES(2, "C++", False);

Если вы сейчас выберете значения в приведенной выше таблице:

mysql> select * from sampled.languages

-> ;

+----+---------------+-------------------+

| ID | Language_name | Beginner_friendly |

+----+---------------+-------------------+

|  1 | Python        |                 1 |

|  2 | C++           |                 0 |

+----+---------------+-------------------+

2 rows in set (0.00 sec)

Вы увидите, что значения установлены на 0 и 1 соответственно.

ПРИМЕЧАНИЕ. В столбце Boolean можно хранить числовые значения, отличные от значений True и False. Например, рассмотрим запрос ниже:

INSERT INTO sampled.languages (ID, Language_name, Beginner_friendly) VALUES(3, "Go Lang", 10);

Если вы выполните вышеуказанный запрос, MySQL не сообщит об ошибке. Вместо этого он сохранит числовое значение как 10. Рассмотрим результат, показанный ниже:

mysql> select * from sampled.languages;

+----+---------------+-------------------+

| ID | Language_name | Beginner_friendly |

+----+---------------+-------------------+

|  1 | Python        |                 1 |

|  2 | C++           |                 0 |

|  3 | Go Lang       |                10 |

+----+---------------+-------------------+

3 rows in set (0.00 sec)

Логические операторы MySQL

MySQL поддерживает различные логические операторы, такие как IS TRUE, IS FALSE, IS NOT TRUE, и IS NOT FALSE. По названию можно определить, что некоторые делают то же самое.

Читать  Что такое схема в MySQL

Например, IS TRUE и IS NOT FALSE похожи. То же самое относится и к другой паре.

Однако мы можем использовать эти операторы для получения набора значений True или False. Например, приведенный ниже запрос получает все значения, где Beginner_friendly – True.

mysql> select * from sampled.languages WHERE Beginner_friendly IS TRUE;

+----+---------------+-------------------+

| ID | Language_name | Beginner_friendly |

+----+---------------+-------------------+

|  1 | Python        |                 1 |

|  3 | Go Lang       |                10 |

+----+---------------+-------------------+

2 rows in set (0.00 sec)

Как видно из выходных данных, мы получаем только значения, в которых значение Beginner_friendly равно True.

Вы также можете получить значения False, используя IS TRUE или IS NOT TRUE .

mysql> select * from sampled.languages WHERE Beginner_friendly IS NOT TRUE;

+----+---------------+-------------------+

| ID | Language_name | Beginner_friendly |

+----+---------------+-------------------+

|  2 | C++           |                 0 |

+----+---------------+-------------------+

1 row in set (0.00 sec)

Заключение

В этой статье показано, как реализовать и использовать логические типы данных MySQL для хранения значений True или False.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Рекомендуемое
Self Join в MySQL - это тип соединения SQL, позволяющий…

Спасибо!

Теперь редакторы в курсе.