Типи даних в SQL

  |
 10469

 ǀ   1 

У SQL кожен стовпець (в таблиці) має власний тип даних, який обмежує те, що може зберігатися у стовпці. Наприклад, якщо тип даних стовпця — INT, то в цьому стовпці можуть зберігатися лише цілі числа, такі як 0, 1, -1 тощо.

Різні СУБД підтримують різні типи даних. Розглянемо одні з найчастіше використовуваних типів даних у SQL Server, MySQL, PostgreSQL та Oracle.

Типи даних в SQL Server

Цілочисельні типи даних

Тип даних Опис
BIT Може містити один біт (0 або 1) або NULL.
TINYINT Може містити числа в діапазоні від 0 до 255.
SMALLINT Може містити числа в діапазоні від -32,768 до 32,767.
INT Може містити числа в діапазоні від -2,147,483,648 до 2,147,483,647.
BIGINT Може містити числа в діапазоні від -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807.

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

Тип даних Опис
CHAR(n) Може містити символи фіксованої довжини (n – це фіксована довжина, максимум 8000 символів).
VARCHAR(n) Може містити символи n довжини (n – це змінна довжини, максимум 8000 символів).
TEXT Може містити символи розміром до 2 ГБ.
IMAGE Може містити двійковий рядок розміром до 2 ГБ.

Типи даних Дати та Часу

Тип даних Опис
DATETIME Може містити дату та час від 1 січня 1753 року до 31 грудня 9999 року.
DATETIME2 Може містити дату та час від 1 січня 0001 року до 31 грудня 9999 року.
DATE Може містити лише дату від 1 січня 0001 року до 31 грудня 9999 року.
TIME Може містити лише час.

Примітка: SQL Server підтримує багато інших типів даних. Щоб дізнатися більше, читайте документацію SQL Server.

Типи даних в MySQL

Цілочисельні типи даних

Тип даних Опис
BIT(n) Може містити n-бітові значення (n може варіюватися від 1 до 64).
TINYINT Може містити числа в діапазоні від -128 до 127.
SMALLINT Може містити числа в діапазоні від -32,768 до 32,767.
MEDIUMINT Може містити числа в діапазоні від -8,388,608 до 8,388,607.
INT Може містити числа в діапазоні від -2,147,483,648 до 2,147,483,647.
BIGINT Може містити числа в діапазоні від -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807.

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

Тип даних Опис
CHAR(n) Може містити символи фіксованої довжини (n – це фіксована довжина, максимум 8000 символів).
VARCHAR(n) Може містити символи n довжини (n – це змінна довжини, максимум 8000 символів).
BINARY(n) Може містити двійкові рядки фіксованої довжини (n – фіксована довжина).
VARBINARY(n) Може містити двійкові рядки заданої довжини (n – це змінна довжина).
TINYTEXT Може містити до 255 символів.
TEXT(n) Може містити символи розміром до 65,535 байт.
MEDIUMTEXT Може містити до 16,777,215 символів.
LONGTEXT Може містити до 4,294,967,295 символів.
BLOB(n) Може містити великі двійкові об’єкти розміром до 65,535 байт.
MEDIUMBLOB Може містити великі двійкові об’єкти розміром до 16,777,215 байт.
LONGBLOB Може містити великі двійкові об’єкти розміром до 4,294,967,295 байт.

Типи даних Дати та Часу

Тип даних Опис
DATE Може містити дату в форматі РРРР-ММ-ДД і в діапазоні від 1000-01-01 до 9999-12-31.
DATETIME Може містити дату та час в форматі РРРР-ММ-ДД гг:хх:сс.
TIME Може містити лише час в форматі гг:хх:сс та в діапазоні від -838:59:59 до 838:59:59.
YEAR Може містити рік в 4-значному форматі та в діапазоні від 1901 до 2155.
TIMESTAMP Може містити позначку часу від поточного часового поясу до UTC.

Примітка: MySQL підтримує багато інших типів даних. Щоб дізнатись більше, читайте документацію MySQL.

Типи даних в PostgreSQL

Цілочисельні типи даних

Тип даних Опис
SMALLINT Може містити числа в діапазоні від -32,768 до 32,767.
INTEGER Може містити числа в діапазоні від -2,147,483,648 до 2,147,483,647.
BIGINT Може містити числа в діапазоні від -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807.
DECIMAL Може містити числа з 131072 цифр до десяткової крапки і 16383 цифр після десяткової крапки.
SMALLSERIAL Може містити числа, що автоматично збільшуються, від 1 до 32767.
SERIAL Може містити числа, що автоматично збільшуються, від 1 до 2147483647.
BIGSERIAL Може містити цифри, що автоматично збільшуються, від 1 до 9223372036854775807.

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

Тип даних Опис
CHAR(n) Може містити символи фіксованої довжини (n – фіксована довжина).
VARCHAR(n) Може містити символи n довжини (n – це змінна довжини).
TEXT Може містити символи без обмежень.

Типи даних Дати та Часу

Тип даних Опис
TIMESTAMP Може містити дату та час.
DATE Може містити лише дату.
TIME Може містити лише час.

Примітка: PostgreSQL підтримує багато інших типів даних. Щоб дізнатись більше, читайте документацію PostgreSQL.

Типи даних в Oracle

Цілочисельні типи даних

Тип даних Опис
NUMBER Може містити числа.

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

Тип даних Опис
CHAR(n) Може містити символи фіксованої довжини, розміром до 2000 байт (n – фіксована довжина).
VARCHAR(n) Може містити символи n довжини, розміром до 4000 байт (n – це змінна довжини).
LONG Може місити символи розміром до 2 ГБ.

Типи даних Дати та Часу

Тип даних Опис
TIMESTAMP Може містити дату та час.
DATE Може містити лише дату від 1 січня 4712 до н.е. до 31 грудня 9999 н.е.
TIME Може містити лише час.

Примітка: Oracle підтримує багато інших типів даних. Щоб дізнатись більше, читайте документацію Oracle.

Оцінити статтю:

1 Зірка2 Зірки3 Зірки4 Зірки5 Зірок (9 оцінок, середня: 5,00 з 5)
Завантаження...

Коментарів: 1

  1. Станіслав :

    Для SQL Server (на відміну від інших) “n” в CHAR(n) це не кількість символів, а кількість байтів, тобто українська буде займате більше місця за тієї ж кількості символів і ви не будете розуміти чому текст не влазить. Тому краще використовувати NCHAR(n) де n значить кількість байт-пар, що на практиці тотожне кількості символів. Також є відміності між версіями.

    Читайте короче документацію вашої версії серверу.

    І обов’язково дослідіть тему чому розмір значення треба максимально обмежувати, бо це не тільки бізнес-вимоги, а й швидкодія та зайняті ресурси.

Залишити відповідь

Ваш E-mail не буде опублікований. Обов'язкові поля відмічені *