Введення в типи даних SQL

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

Ми б широко класифікували типи даних SQL, а потім вивчали різні типи та приклади під цими категоріями.

Примітка - Не всі системи управління базами даних підтримують усі типи даних. Наприклад, Oracle не підтримує DateTime. Ці характеристики наведені разом з описом типу даних у статті. Радимо пам’ятати про це під час проектування бази даних. Так само існує багато інших типів даних, характерних для будь-якої конкретної системи управління базами даних. Наприклад, MS SQL має тип даних про гроші. Такі типи не є загальними і виходять за межі цієї статті.

Типи даних SQL

1. Бінарний

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

Бінарний (розмір): Зберігає двійкові байтові рядки довжини стовпців, визначені параметром розміру. Розмір стовпця фіксується. Якщо розмір визначено як 10 байт, а збережені дані - 5 байт, решта 5 байт все ще зайняті в пам'яті стовпцем. Ці решти байтів з нульовим розташуванням праворуч більшості парсерів SQL. Максимально можливий розмір - 8000 байт.

Varbinary (size): Зберігає бінарні байтові рядки довжини стовпців, визначені параметром size. Розмір стовпця не фіксований. Якщо розмір визначено як 10 байт, а збережені дані - 5 байт, стовпець займає лише 5 байт у пам'яті. Максимально можливий розмір - 8000 байт.

Varbinary (max): Вказівка ​​ключового слова max у параметрі size збільшує максимально можливий розмір до 2 ГБ та виділяє змінний розмір стовпцям на основі збережених даних. Цей тип даних не підтримується MySQL.

Приклад:

create table BinaryDataTypes (col_binary BINARY(5), col_varbinary VARBINARY(5));
insert into BinaryDataTypes values (101, 121);
select * from BinaryDataTypes;

insert into BinaryDataTypes values (12345, 123456);
insert into BinaryDataTypes values (123456, 123456);

Помилка виникає через те, що ми визначали розмір стовпців лише 5 байт.

2. Персонаж / Рядок

Ці типи даних зберігають або один символ, або ряд символів, утворюючи рядок. Сюди входять символи, цифри та спеціальні символи. Характер символів (одиниць), однак, обмежений лише символами, які не є Unicode.

Char (size): Зберігає символьні рядки фіксованої довжини довжини, визначеної параметром size. Розмір розміру стовпця працює аналогічно типу BINARY. Типовий розмір - 1 символ. Максимум - 255 у більшості систем управління базами даних.

Varchar (розмір): зберігає рядки символів змінної довжини. Однак довжина, вказана параметром size, визначає максимальну довжину стовпця. Максимально можлива довжина - 65535 символів.

Varchar (max): Вказівка ​​ключового слова max у параметрі size збільшує максимально можливий розмір до 2 ГБ та виділяє змінний розмір стовпцям на основі збережених даних. Цей тип даних не підтримується MySQL.

Текст: MySQL підтримує тип текстових даних замість varchar (max). Текст також збільшує максимально можливий розмір до 2 Гб.

Приклад:

create table CharacterDataTypes (col_char CHAR(300));

create table CharacterDataTypes (col_char CHAR(20), col_varchar VARCHAR(20), col_text TEXT);
insert into CharacterDataTypes values ('Hello World', 'How you doing?', 'This is an incredibly longer text to demonstrate the data type text in MySQL. The data type text makes it possible to store 2GB of data in a column. That\'s equal to 2*1024*1024*1024 = over 2.14 billion characters. Whoa!');

3. Символ / рядок Unicode

Ці типи даних зберігають або окремий, або рядок символів Unicode.

Nchar (розмір): Це схоже на тип даних char та підтримує символи Unicode. Однак максимальний ліміт знижується до 4000 байт.

Nvarchar (розмір): Це схоже на тип даних nvarchar і підтримує символи Unicode. Однак максимальний ліміт знижується до 4000 байт.

Nvarchar (max): Вказівка ​​ключового слова max у параметрі розміру збільшує максимально можливий розмір до 1 ГБ та виділяє змінний розмір стовпцям на основі збережених даних. Цей тип даних не підтримується MySQL.

Ntext: MySQL підтримує тип даних ntext замість nvarchar (max). Ntext також збільшує максимально можливий розмір до 1 Гб.

Приклад:

create table UnicodeCharacterDataTypes (col_unicode_char NCHAR(200));
insert into UnicodeCharacterDataTypes values ('局层局层');
select * from UnicodeCharacterDataTypes;

4. Числові

Числові типи даних підтримують цілі числа та дійсні / дробові / десяткові числа.

Біт / Буль / Булевий: Ці типи даних зберігають лише два значення - 0 і 1. 0 позначає помилкові, а 1 - істинні. Трохи підтримується більшість баз даних. Деякі розширені бази даних також підтримують bool та boolean.

INT: Зберігає додатні та від’ємні цілі числа розміром до 4 байт. Це означає, що значення повинно бути в діапазоні (-2147483648, 2147483647). Визначення ключового слова без підпису обмежує стовпець зберігати лише позитивні значення в діапазоні (0, 4294967295).

TINYINT: Зберігає натуральні чи негативні цілі числа розміром до 1 Байт. Це означає, що значення повинно бути в діапазоні (-128, 127). Визначення ключового слова без підпису обмежує стовпець зберігати лише позитивні значення в діапазоні (0, 255).

Smallint: зберігає додатні та від’ємні цілі числа розміром до 2 байт. Це означає, що значення повинно бути в діапазоні (-32768, 32767). Визначення ключового слова без підпису обмежує стовпець зберігати лише позитивні значення в діапазоні (0, 65535).

Bigint: Зберігає додатні та від’ємні цілі числа розміром до 8 байт. Це означає, що значення повинно бути в діапазоні (-2 63, 2 63 -1). Визначення ключового слова без підпису обмежує стовпчик зберігати лише позитивні значення в діапазоні (0, 2 64 -1).

Десяткові (розмір, D): зберігає фіксовану точку. Розмір параметра вказує загальну кількість цифр, тоді як d визначає кількість цифр після десяткової крапки. Значення за замовчуванням для розміру та d - 10 та 0 відповідно.

Поплавок (розмір, D) / подвійний (розмір, D): зберігає число з плаваючою комою. Float використовується для менших чисел розміром до 4 байт. Подвійні магазини більшої кількості. Однак подвійний підтримується не всіма базами даних.

Знання поза навчальних програм - Різниця між числами фіксованої точки і плаваючою комою полягає в тому, що десяткова крапка фіксується в одному і плаває в іншому. Фіксована точка означає, що кількість цифр фіксується після і перед десятковою точкою. З плаваючою комою означає, що кількість цифр до і після десяткової крапки може змінюватись відносно значення цифр у числі.

Приклад:

create table NumericDataTypes (col_tinyint_u TINYINT UNSIGNED, col_smallint SMALLINT, col_int INT, col_bigint BIGINT UNSIGNED, col_decimal DECIMAL(5, 2), col_float FLOAT);
insert into NumericDataTypes values (255, -32768, 1234567890, (POWER(2, 63)-1), 987.65, 987.65);

5. Дата та час

  1. Дата: Зберігає дані у форматі РРРР-ММ-DD, обмежений від 1000-01-01 до 9999-12-31.
  2. Час: Зберігає час у форматі hh: mm: ss.
  3. DateTime: зберігає і дату, і час.
  4. TimeStamp: Часова позначка використовується для позначення часової позначки кожного разу, коли рядок вводиться або оновлюється в таблиці. Зазвичай це робиться за допомогою ключових слів DEFAULT CURRENT_TIMESTAMP та ON UPDATE CURRENT_TIMESTAMP.

Приклад:

create table DateTimeDataTypes (col_date DATE, col_time TIME, col_datetime DATETIME, col_ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
insert into DateTimeDataTypes(col_date, col_time, col_datetime) values (CURDATE(), '08:50:41', NOW());

6. Різні типи даних SQL

  • CLOB: CLOB означає символи великих об'єктів. Вони можуть містити дані символів до 2 Гб. Хоча MySQL не підтримується. MySQL використовує Text для досягнення того ж.
  • BLOB: BLOB розшифровується як двійкові великі об'єкти. Вони використовуються для зберігання двійкових об'єктів розміром до 2 Гб. Зазвичай зображення перетворюються у бінарні об'єкти та зберігаються у стовпцях BLOB.
  • XML: використовується для зберігання XML-даних.
  • JSON: використовується для зберігання даних JSON. Не підтримується MySQL.

Висновок - типи даних SQL

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

Рекомендовані статті

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

  1. Типи даних PostgreSQL
  2. Типи OLAP
  3. Типи шкідливих програм
  4. Запит SQL WHERE
  5. PHP Ключові слова
  6. C ++ Ключові слова
  7. Топ-3 типи даних PHP з прикладами
  8. Приклади впровадження заяви INSERT