MySQL - TINYINT: руковод BEGINNERS

Привет, будущие маги баз данных! Сегодня мы окунемся в мир MySQL и рассмотрим крошечный, но могущественный тип данных: TINYINT. Не позволяйте его размеру обмануть вас;这个小家伙 может быть очень эффективным при хранении малых целых чисел. Так что наденьте свои виртуальные каски и начнем исследовать мир TINYINT!

MySQL - TINYINT

Тип данных TINYINT в MySQL

Что такое TINYINT?

TINYINT - один из целочисленных типов данных MySQL, предназначенный для хранения малых целых чисел. Представьте его как компактный автомобиль в мире целых чисел – малый, эффективный и идеальный для коротких поездок (или в нашем случае, малых чисел).

Основные характеристики

  1. Размер: TINYINT использует всего 1 байт памяти.
  2. Диапазон:
  • Знаковый: от -128 до 127
  • Беззнаковый: от 0 до 255

Когда использовать TINYINT

TINYINT идеально подходит для сценариев, где вам нужно хранить малые целые значения. Например:

  • Возраст (0-255 лет должно хватить, правда? Даже для вампиров!)
  • Оценки (1-5 звезд)
  • Малые счетчики
  • Булевы значения (0 или 1)

Синтаксис

column_name TINYINT[(M)] [UNSIGNED] [ZEROFILL]

Рассмотрим это подробнее:

  • M: Опциональная ширина отображения (0-255)
  • UNSIGNED: Делает диапазон от 0 до 255
  • ZEROFILL: Заполняет отображение значений ведущими нулями

TINYINT в действии: использование клиентской программы

Теперь, наденьте перчатки и посмотрите, как TINYINT работает на практике. Мы рассмотрим несколько примеров, чтобы проиллюстрировать, как работать с этим типом данных в MySQL.

Создание таблицы с TINYINT

Создадим простую таблицу для хранения информации о системе оценок книг:

CREATE TABLE book_ratings (
id INT AUTO_INCREMENT PRIMARY KEY,
book_name VARCHAR(100),
rating TINYINT UNSIGNED,
is_recommended TINYINT(1)
);

В этом примере:

  • rating использует TINYINT UNSIGNED для хранения оценок от 0 до 5.
  • is_recommended использует TINYINT(1) в качестве булева (0 для ложно, 1 для истины).

Ввод данных

Добавим несколько оценок книг:

INSERT INTO book_ratings (book_name, rating, is_recommended)
VALUES
(' руковод MySQL', 5, 1),
('SQL для чайников', 3, 0),
('Дизайн баз данных 101', 4, 1);

Запрос данных TINYINT

Теперь давайте получим наши данные:

SELECT * FROM book_ratings;

Результат:

+----+----------------------+--------+----------------+
| id | book_name            | rating | is_recommended |
+----+----------------------+--------+----------------+
|  1 | The MySQL Handbook   |      5 |              1 |
|  2 | SQL for Dummies      |      3 |              0 |
|  3 | Database Design 101  |      4 |              1 |
+----+----------------------+--------+----------------+

Использование TINYINT в условиях

TINYINT отлично работает в предложениях WHERE:

SELECT book_name, rating
FROM book_ratings
WHERE rating > 3 AND is_recommended = 1;

Этот запрос выбирает книги с высокими оценками и рекомендациями.

TINYINT в качестве булева

Хотя в MySQL есть тип BOOLEAN, он на самом деле является синонимом TINYINT(1). Вот как его использовать:

CREATE TABLE task_list (
id INT AUTO_INCREMENT PRIMARY KEY,
task_name VARCHAR(100),
is_completed BOOLEAN
);

INSERT INTO task_list (task_name, is_completed)
VALUES
('Изучить MySQL', TRUE),
('Мастер TINYINT', FALSE);

SELECT * FROM task_list;

Результат:

+----+----------------+--------------+
| id | task_name      | is_completed |
+----+----------------+--------------+
|  1 | Learn MySQL    |            1 |
|  2 | Master TINYINT |            0 |
+----+----------------+--------------+

Методы и функции TINYINT

Вот таблица полезных методов и функций для работы с TINYINT:

Метод/Функция Описание Пример
ABS() Возвращает абсолютное значение SELECT ABS(TINYINT_COLUMN) FROM TABLE;
SIGN() Возвращает знак (-1, 0, или 1) SELECT SIGN(TINYINT_COLUMN) FROM TABLE;
MOD() Возвращает остаток SELECT MOD(TINYINT_COLUMN, 3) FROM TABLE;
GREATEST() Возвращает наибольшее значение SELECT GREATEST(TINYINT_COL1, TINYINT_COL2) FROM TABLE;
LEAST() Возвращает наименьшее значение SELECT LEAST(TINYINT_COL1, TINYINT_COL2) FROM TABLE;

Заключение

И вот мы рассмотрели TINYINT в MySQL. От его compactного размера до его versatility в хранении малых целых чисел и даже булевых значений, TINYINT доказывает, что иногда最好的 вещи приходят в маленьких упаковках.

помните, что выбор правильного типа данных критически важен для производительности и эффективности базы данных. TINYINT может показаться маленьким, но он может сыграть большую роль при работе с миллионами строк!

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

Credits: Image by storyset