Цей розділ знаходиться на стадії тестування!

Типи даних MySQL

Типи даних MySQL

Типи даних визначають, які значення можуть зберігатися в стовпцях таблиць MySQL, та скільки вони займатимуть місця у пам'яті.

Символьні типи:
CHAR: представляє рядок фіксованої довжини.
Довжина рядка, що зберігається, вказується в дужках, наприклад, CHAR(10) - рядок з десяти символів. І якщо в таблицю в даний стовпець зберігається рядок із 6 символів (тобто менше встановленої довжини в 10 символів), то рядок доповнюється 4 пробілами і в результаті все одно займатиме 10 символів.
Тип CHAR може зберігати до 255 байт.
VARCHAR: представляє рядок змінної довжини.
Довжина рядка, що зберігається, також вказуються в дужках, наприклад, VARCHAR(10). Однак на відміну від CHAR рядок, що зберігається, займатиме саме стільки місця, скільки необхідно. Наприклад, якщо певна довжина в 10 символів, але в стовпець зберігається рядок у 6 символів, то рядок, що зберігається, так і займатиме 6 символів плюс додатковий байт, який зберігає довжину рядка.
Усього тип VARCHAR може зберігати до 65535 байт.
Починаючи з MySQL 5.6 типи CHAR і VARCHAR за замовчуванням використовують кодування UTF-8, яке дозволяє використовувати до 3 байт для зберігання символу в залежності від мови (для багатьох європейських мов по 1 байту на символ, для ряду східноєвропейських та близькосхідних - 2 байти , а для китайської, японської, корейської - по 3 байти на символ).

Текст:
TINYTEXT: представляє текст завдовжки до 255 байт.
TEXT: представляє текст завдовжки до 65 КБ.
MEDIUMTEXT: представляє текст довжиною до 16 МБ
LONGTEXT: представляє текст завдовжки до 4 ГБ

Числові типи:
TINYINT: представляє цілі числа від -128 до 127, займає 1 байт
BOOL: фактично не представляє окремий тип, а є лише псевдонімом для типу TINYINT(1) і може зберігати два значення 0 і 1. Однак цей тип може також як значення приймати вбудовані константи TRUE (представляє число 1) та FALSE (надає число 0).
Також має псевдонім BOOLEAN.
TINYINT UNSIGNED: представляє цілі числа від 0 до 255, займає 1 байт
SMALLINT: представляє цілі числа від -32768 до 32767, займає 2 байти
SMALLINT UNSIGNED: представляє цілі числа від 0 до 65535, займає 2 байти
MEDIUMINT: представляє цілі числа від -8388608 до 8388607, займає 3 байти
MEDIUMINT UNSIGNED: представляє цілі числа від 0 до 16777215, займає 3 байти
INT: представляє цілі числа від -2147483648 до 2147483647, займає 4 байти
INT UNSIGNED: представляє цілі числа від 0 до 4294967295, займає 4 байти
BIGINT: представляє цілі числа від -9223372036854775808 до 9223372036854775807, займає 8 байт
BIGINT UNSIGNED: представляє цілі числа від 0 до 18446744073709551615, займає 8 байт
DECIMAL: зберігає цифри з фіксованою точністю. Цей тип може приймати два параметри precision та scale: DECIMAL(precision, scale).
Параметр precision представляє максимальну кількість цифр, які можуть зберігати число. Це значення має бути в діапазоні від 1 до 65.
Параметр scale представляє максимальну кількість цифр, які можуть містити число після коми. Це значення має знаходитися в діапазоні від 0 до значення параметра precision. За умовчанням воно дорівнює 0.
Наприклад, у визначенні наступного стовпця:
salary DECIMAL(5,2)
Число 5 - precision, а число 2 - scale, тому даний стовпець може зберігати значення діапазону від -999.99 до 999.99.
Розмір даних у байтах для DECIMAL залежить від значення, що зберігається.
Цей тип також має псевдоніми NUMERIC, DEC, FIXED.
FLOAT: зберігає дробові числа з плаваючою точкою одинарної точності від -3.4028*1038 до 3.4028*1038, займає 4 байти
Може набувати форми FLOAT(M,D), де M - загальна кількість цифр, а D - кількість цифр після коми
DOUBLE: зберігає дробові числа з плаваючою точкою подвійної точності від -1.7976*10308 до 1.7976*10308, займає 8 байт. Також може набувати форми DOUBLE(M,D), де M - загальна кількість цифр, а D - кількість цифр після коми.
Даний тип також має псевдоніми REAL та DOUBLE PRECISION, які можна використовувати замість DOUBLE.

Дата та час:
DATE: зберігає дати з 1 січня 1000 року до 31 грудня 9999 року (з "1000-01-01" до "9999-12-31"). За промовчанням для зберігання використовується формат yyyy-mm-dd. Займає 3 байти.
TIME: зберігає час від -838:59:59 до 838:59:59. За умовчанням для зберігання часу використовується формат "hh:mm:ss". Займає 3 байти.
DATETIME: об'єднує час і дату, діапазон дат і часу - з 1 січня 1000 року до 31 грудня 9999 року (з "1000-01-01 00:00:00" до "9999-12-31 23:59:59") . Для зберігання за промовчанням використовується формат "yyyy-mm-dd hh:mm:ss". Займає 8 байт
TIMESTAMP: також зберігає дату та час, але в іншому діапазоні: від "1970-01-01 00:00:01" UTC до "2038-01-19 03:14:07" UTC. Займає 4 байти
YEAR: зберігає рік у вигляді 4 цифр. Діапазон доступних значень від 1901 до 2155 року. Займає 1 байт.
Тип Date може приймати дати в різних форматах, проте безпосередньо для зберігання в самій бд дати наводяться до формату "yyyy-mm-dd". Деякі з форматів, що приймаються:
yyyy-mm-dd - 2018-05-25
yyyy-m-dd - 2018-5-25
yy-m-dd - 18-05-25
У такому форматі двоцифрові числа від 00 до 69 сприймаються як дати в діапазоні 2000-2069. А числа від 70 до 99 як діапазон чисел 1970 – 1999.
yyyymmdd - 20180525
yyyy.mm.dd - 25/05/2018
Для часу тип Time використовує 24-годинний формат. Він може приймати час у різних форматах:
hh:mi - 3:21 (зберігання 03:21:00)
hh:mi:ss - 19:21:34
hhmiss - 192134
Приклади значень для типів DATETIME та TIMESTAMP:
2018-05-25 19:21:34
2018-05-25 (зберігання 2018-05-25 00:00:00)

Складні типи:
ENUM: зберігає одне значення зі списку допустимих значень. Займає 1-2 байти
SET: може зберігати кілька значень (до 64 значень) із певного списку допустимих значень. Займає 1-8 байт.

Бінарні типи:
TINYBLOB: зберігає бінарні дані у вигляді рядка довжиною до 255 байт.
BLOB: зберігає бінарні дані у вигляді рядка завдовжки до 65 КБ.
MEDIUMBLOB: зберігає бінарні дані у вигляді рядка завдовжки до 16 МБ
LONGBLOB: зберігає бінарні дані у вигляді рядка завдовжки до 4 ГБ



Теги: MySQL  


2023-05-22





Вибрати мову:
-  руский
-  Українська