НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ

SQL Підручник

SQL СТАРТ SQL Інтро SQL Синтаксис SQL SELECT SQL SELECT DISTINCT SQL WHERE SQL ORDER BY SQL AND SQL OR SQL NOT SQL INSERT INTO SQL NULL SQL UPDATE SQL DELETE SQL SELECT TOP SQL MIN() and MAX() SQL COUNT() SQL SUM() SQL AVG() SQL LIKE SQL Підстановочні символи SQL IN SQL BETWEEN SQL Псевдоніми SQL JOIN SQL INNER JOIN SQL LEFT JOIN SQL RIGHT JOIN SQL FULL OUTER JOIN SQL Self JOIN SQL UNION SQL GROUP BY SQL HAVING SQL EXISTS SQL ANY, ALL SQL SELECT INTO SQL INSERT INTO SELECT SQL CASE SQL NULL Функції SQL Зберігаючи процедури SQL Коментарі SQL Оператори

SQL База даних

SQL Create DB SQL Drop DB SQL Backup DB SQL Create Table SQL Drop Table SQL Alter Table SQL Constraints SQL Not Null SQL Unique SQL Primary Key SQL Foreign Key SQL Check SQL Default SQL Index SQL Auto Increment SQL Dates SQL Views SQL Injection SQL Hosting SQL Типи даних

SQL Довідники

SQL Ключові слова MySQL Функції SQL Серверні функції MS Access Функції SQL Швидкий довідник

SQL Приклади

SQL Приклади SQL Редактор SQL Вікторина SQL Вправи SQL Bootcamp SQL Сертифікат

SQL. W3Schools українською. Уроки для початківців

En

SQL Типи даних для MySQL, SQL Server та MS Access


Тип даних стовпця визначає, яке значення може містити стовпець: ціле число, символ, гроші, дата й час, двійкове тощо.


SQL Типи даних

Кожен стовпець у таблиці бази даних повинен мати назву та тип даних.

Розробник SQL повинен вирішити, який тип даних буде зберігатися в кожному стовпці під час створення таблиці. Тип даних є орієнтиром для SQL, щоб зрозуміти, який тип даних очікується в кожному стовпці, а також визначає, як SQL взаємодіятиме зі збереженими даними.

Примітка: Типи даних можуть мати різні назви в іншій базі даних. І навіть якщо назва однакова, розмір та інші деталі можуть відрізнятися! Завжди перевіряйте документацію!


MySQL Типи даних (Версія 8.0)

У MySQL є три основні типи даних: рядок, число, дата й час.

Рядкові типи даних

Тип даних Опис
CHAR(size) Рядок ФІКСОВАНОЇ довжини (може містити літери, цифри та спеціальні символи). Параметр size визначає довжину стовпця в символах — може бути від 0 до 255. За замовчуванням 1
VARCHAR(size) Рядок ЗМІННОЇ довжини (може містити літери, цифри та спеціальні символи). Параметр size визначає максимальну довжину рядка в символах — може бути від 0 до 65535
BINARY(size) Дорівнює CHAR(), але зберігає двійкові рядки байтів. Параметр size визначає довжину стовпця в байтах. За замовчуванням 1
VARBINARY(size) Дорівнює VARCHAR(), але зберігає двійкові рядки байтів. Параметр size визначає максимальну довжину стовпця в байтах.
TINYBLOB Для BLOB (великих двійкових об’єктів). Максимальна довжина: 255 байт
TINYTEXT Містить рядок максимальною довжиною 255 символів
TEXT(size) Містить рядок максимальною довжиною 65 535 байт
BLOB(size) Для BLOB (великих двійкових об’єктів). Містить до 65 535 байт даних
MEDIUMTEXT Містить рядок максимальною довжиною 16 777 215 символів
MEDIUMBLOB Для BLOB (великих двійкових об’єктів). Містить до 16 777 215 байт даних
LONGTEXT Містить рядок максимальною довжиною 4 294 967 295 символів
LONGBLOB Для BLOB (великих двійкових об’єктів). Містить до 4 294 967 295 байт даних
ENUM(val1, val2, val3, ...) Рядковий об’єкт, який може мати лише одне значення, вибране зі списку можливих значень. Ви можете перерахувати до 65535 значень у списку ENUM. Якщо вставлено значення, якого немає у списку, буде вставлено порожнє значення. Значення сортуються в порядку їх введення
SET(val1, val2, val3, ...) Рядковий об’єкт, який може мати 0 або більше значень, вибраних зі списку можливих значень. Ви можете вказати до 64 значень у списку SET

Числові типи даних

Тип даних Опис
BIT(size) Тип бітового значення. Кількість бітів на значення вказується в size. Параметр size може містити значення від 1 до 64. Стандартним значенням для size є 1
TINYINT(size) Дуже маленьке ціле число. Діапазон зі знаком — від -128 до 127. Діапазон без знака — від 0 до 255. Параметр size визначає максимальну ширину відображення (яка становить 255)
BOOL Нуль вважається false, ненульові значення вважаються true
BOOLEAN Дорівнює BOOL
SMALLINT(size) Маленьке ціле число. Діапазон зі знаком – від -32768 до 32767. Діапазон без знаку – від 0 до 65535. Параметр size визначає максимальну ширину відображення (яка становить 255)
MEDIUMINT(size) Середнє ціле число. Діапазон зі знаком – від -8388608 до 8388607. Діапазон без знака – від 0 до 16777215. Параметр size визначає максимальну ширину відображення (яка становить 255)
INT(size) Середнє ціле число. Діапазон зі знаком – від -2147483648 до 2147483647. Діапазон без знака – від 0 до 4294967295. Параметр size визначає максимальну ширину відображення (яка становить 255)
INTEGER(size) Equal to INT(size)
BIGINT(size) Велике ціле число. Діапазон зі знаком – від -9223372036854775808 до 9223372036854775807. Діапазон без знака – від 0 до 18446744073709551615. Параметр size визначає максимальну ширину відображення (яка становить 255)
FLOAT(size, d) Число з плаваючою комою. Загальна кількість цифр вказується в size. Кількість цифр після коми вказується в параметрі d. Цей синтаксис застарів у MySQL 8.0.17, і його буде видалено в наступних версіях MySQL
FLOAT(p) Число з плаваючою комою. MySQL використовує значення p, щоб визначити, чи використовувати FLOAT або DOUBLE для результуючого типу даних. Якщо p становить від 0 до 24, тип даних стає FLOAT(). Якщо p становить від 25 до 53, тип даних стає DOUBLE()
DOUBLE(size, d) Число з плаваючою комою нормального розміру. Загальна кількість цифр вказується в size. Кількість цифр після коми вказується в параметрі d
DOUBLE PRECISION(size, d)  
DECIMAL(size, d) Точне число з фіксованою комою. Загальна кількість цифр вказується в size. Кількість цифр після коми вказується в параметрі d. Максимальне число для size – 65. Максимальне число для d – 30. Стандартне значення для size – 10. Стандартне значення для d дорівнює 0.
DEC(size, d) Дорівнює DECIMAL(size,d)

Примітка: Усі типи числових даних можуть мати додаткову опцію: UNSIGNED або ZEROFILL. Якщо ви додаєте опцію UNSIGNED, MySQL забороняє негативні значення для стовпця. Якщо ви додаєте параметр ZEROFILL, MySQL також автоматично додає атрибут UNSIGNED до стовпця.

Типи даних дати та часу

Тип даних Опис
DATE Дата. Формат: YYYY-MM-DD. Підтримуваний діапазон від '1000-01-01' до '9999-12-31'
DATETIME(fsp) Комбінація дати й часу. Формат: YYYY-MM-DD hh:mm:ss. Підтримується діапазон від '1000-01-01 00:00:00' до '9999-12-31 23:59:59'. Додавання DEFAULT та ON UPDATE у визначення стовпця, щоб отримати автоматичну ініціалізацію та оновлення до поточної дати й часу
TIMESTAMP(fsp) Мітка часу. Значення TIMESTAMP зберігаються як кількість секунд з епохи Unix ('1970-01-01 00:00:00' UTC). Формат: YYYY-MM-DD hh:mm:ss. Підтримується діапазон від '1970-01-01 00:00:01' UTC до '2038-01-09 03:14:07' UTC. Автоматичну ініціалізацію та оновлення до поточної дати й часу можна вказати за допомогою DEFAULT CURRENT_TIMESTAMP та ON UPDATE CURRENT_TIMESTAMP у визначенні стовпця
TIME(fsp) Час. Формат: hh:mm:ss. Підтримуваний діапазон – від '-838:59:59' до '838:59:59'
YEAR Рік у чотиризначному форматі. Дозволені значення в чотиризначному форматі: від 1901 до 2155 і 0000.
MySQL 8.0 не підтримує рік у двозначному форматі.

SQL Server Типи даних

Рядкові типи даних

Тип даних Опис Максимальний розмір Зберігання
char(n) Рядок символів фіксованої ширини 8000 символів Визначена ширина
varchar(n) Символьний рядок змінної ширини 8000 символів 2 байти + кількість символів
varchar(max) Символьний рядок змінної ширини 1 073 741 824 символи 2 байти + кількість символів
text Символьний рядок змінної ширини 2 ГБ текстових даних 4 байти + кількість символів
nchar Рядок Unicode фіксованої ширини 4000 символів Визначена ширина x 2
nvarchar Рядок Unicode змінної ширини 4000 символів  
nvarchar(max) Рядок Unicode змінної ширини 536 870 912 символів  
ntext Рядок Unicode змінної ширини 2 ГБ текстових даних  
binary(n) Двійковий рядок фіксованої ширини 8000 байт  
varbinary Двійковий рядок змінної ширини 8000 байт  
varbinary(max) Двійковий рядок змінної ширини 2 Гб  
image Двійковий рядок змінної ширини 2 Гб  

Числові типи даних

Тип даних Опис Зберігання
bit Ціле число, яке може бути 0, 1 або NULL  
tinyint Допускає цілі числа від 0 до 255 1 byte
smallint Дозволяє цілі числа від -32 768 до 32 767 2 bytes
int Дозволяє цілі числа від -2 147 483 648 до 2 147 483 647 4 байти
bigint Дозволяє цілі числа від -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807 8 байт
decimal(p,s) Фіксована точність і масштабні числа.

Дозволяє числа від -10^38 +1 до 10^38 –1.

Параметр p вказує максимальну загальну кількість цифр, які можна зберегти (як ліворуч, так і праворуч від коми). p має бути значенням від 1 до 38. Типовим значенням є 18.

Параметр s вказує максимальну кількість цифр, що зберігаються праворуч від десяткової коми. s має бути значенням від 0 до p. Значення за замовчуванням – 0

5-17 байт
numeric(p,s) Фіксована точність і масштабні числа.

Дозволяє числа від -10^38 +1 до 10^38 –1.

Параметр p вказує максимальну загальну кількість цифр, які можна зберегти (як ліворуч, так і праворуч від коми). p має бути значенням від 1 до 38. Типовим значенням є 18.

Параметр s вказує максимальну кількість цифр, що зберігаються праворуч від десяткової коми. s має бути значенням від 0 до p. Значення за замовчуванням – 0

5-17 байт
smallmoney Грошові дані від -214 748,3648 до 214 748,3647 4 байти
money Грошові дані від -922,337,203,685,477.5808 до 922,337,203,685,477.5807 8 байт
float(n) Числові дані з плаваючою точністю від -1,79E + 308 до 1,79E + 308.

Параметр n вказує, чи має поле містити 4 чи 8 байтів. float(24) містить 4-байтове поле, а float(53) містить 8-байтове поле. Значення за замовчуванням n дорівнює 53.

4 або 8 байтів
real Числові дані з плаваючою точністю від -3,40E + 38 до 3,40E + 38 4 байта

Типи даних дати та часу

Тип даних Опис Зберігання
datetime З 1 січня 1753 року по 31 грудня 9999 року з точністю до 3,33 мілісекунди 8 байт
datetime2 З 1 січня 0001 року по 31 грудня 9999 року з точністю до 100 наносекунд 6-8 байт
smalldatetime З 1 січня 1900 року по 6 червня 2079 року з точністю до 1 хвилини 4 байти
date Зберігає лише дату. З 1 січня 0001 р. до 31 грудня 9999 р. 3 байти
time Зберігає час лише з точністю до 100 наносекунд 3-5 байт
datetimeoffset Те саме, що datetime2 із додаванням зміщення часового поясу 8-10 байт
timestamp Зберігає унікальний номер, який оновлюється щоразу, коли створюється або змінюється рядок. Значення часової позначки базується на внутрішньому годиннику й не відповідає реальному часу. Кожна таблиця може мати лише одну змінну мітки часу  

Інші типи даних

Тип даних Опис
sql_variant Зберігає до 8000 байт даних різних типів, крім тексту, ntext і мітки часу
uniqueidentifier Зберігає глобальний унікальний ідентифікатор (GUID)
xml Зберігає дані у форматі XML. Максимум 2 ГБ
cursor Зберігає посилання на курсор, який використовується для операцій з базою даних
table Зберігає набір результатів для подальшої обробки

MS Access Типи даних

Тип даних Опис Зберігання
Text Використовується для тексту або комбінацій тексту та цифр. Максимум 255 символів  
Memo Memo використовується для більшої кількості тексту. Зберігає до 65 536 символів. Примітка. Ви не можете сортувати поле memo. Однак вони доступні для пошуку  
Byte Дозволяє цілі числа від 0 до 255 1 байт
Integer Дозволяє цілі числа від -32 768 до 32 767 2 байти
Long Дозволяє цілі числа від -2,147,483,648 до 2,147,483,647 4 байти
Single Число з плаваючою комою одинарної точності. Оброблятиме більшість десяткових знаків 4 байти
Double Число з плаваючою комою подвійної точності. Обробить більшість десяткових дробів 8 байт
Currency Використовуйте для валюти. Містить до 15 цифр цілих доларів плюс 4 знаки після коми. Порада. Ви можете вибрати валюту країни, яку використовувати 8 байт
AutoNumber Поля автонумерації автоматично надають кожному запису власний номер, який зазвичай починається з 1 4 байти
Date/Time Використовуйте для дат і часу 8 байт
Yes/No Логічне поле може відображатися як Yes/No, True/False або On/Off. У коді використовуйте константи True і False (еквівалентні -1 та 0). Примітка. Нульові значення не допускаються в полях Yes/No 1 біт
Ole Object Може зберігати зображення, аудіо, відео та інші BLOB (великі двійкові об’єкти) до 1 Гб
Hyperlink Містять посилання на інші файли, включно з вебсторінками  
Lookup Wizard Дозволяє ввести список параметрів, які потім можна вибрати зі спадного списку 4 байти