Sql (типи даних): таблиця
У сучасному світі налічується велика кількість засобів і технологій, призначених для зберігання інформації. Одним з найбільш поширених способів є бази даних, для роботи з якими використовуються різні системи управління. Даний спосіб зберігання передбачає, що всі дані чітко структуровані і занесені в спеціальні таблиці. Вони, в свою чергу, складаються з стовпців-атрибутів певного типу даних.
Тип даних - що це?
Сьогодні існує кілька визначень, які пояснюють поняття терміна «тип даних». Однак кожне з них має один загальний зміст. Тому тип даних можна умовно позначити як групу даних, яка характеризується її значеннями (символьними, числовими і т.д.), а також операціями, що застосовуються до досліджуваних значень.
Сфера застосування типів даних багатогранна. Вони використовуються не тільки для зберігання інформації, але також і в програмуванні для вирішення різних завдань. При проектуванні програм широко поширена практика розробки і використання власних типів даних з певним набором операцій. Однак в основі призначених для користувача завжди лежать базові типи даних. SQL-стандарт також грунтується на використанні найбільш поширених базових типів, але з рядом певних доповнень.
Класифікація типів даних
Угруповання даних по їх типу виникла давно і була викликана необхідністю структурування інформації для більш зручної обробки. В даний час основу існуючих типів даних утворюють два: символьний і числовий.
Відео: SQL таблиці. Типи даних, як обмеження рівня шпальти чи правила підтримки цілісності даних
На їх базі була розроблена сучасна класифікація, що включає в себе покажчики, логічний, цілочисельний, числовий з плаваючою точкою і строковий типи даних. SQL-класифікація повністю охоплює все вищеперелічене. Однак для деяких сучасних СУБД існують додаткові надбудови. До них відносяться Oracle і MySQL.
Базові типи даних
Що використовуються при створенні атрибутів таблиць, що відповідають стандартам мови SQL, типи даних підрозділяються на 4 класи:
- строкові значення;
- дробу;
- целочіселенние значення;
- дату й час.
Строковий тип даних
Перша група значень дозволяє зберігати будь-які дані, представлені у вигляді символів.
Це можуть бути спеціальні символи, цифри і букви, які в своїй сукупності будуть оброблятися як рядки в будь-якому запиті SQL. Типи даних, таблиця з перерахуванням яких представлена нижче, утворюють першу групу.
CHAR (size) | Використовується для зберігання рядків. Параметр в дужках дозволяє фіксувати довжину збереженої рядки. Максимальний розмір в байтах, який можна задати для рядка, - 255. |
VARCHAR (size) | Аналогічно до попереднього типу дозволяє зберігати рядки довжиною до 255 символів. Однак відмінність від CHAR в тому, що для зберігання значення даного типу виділяється необхідна кількість пам`яті. Тобто для рядка, що складається з 5-ти символів, буде потрібно 6 байт пам`яті. У першому ж випадку пам`ять для значення буде виділена згідно із зазначеним параметром. |
TINY ТЕХТ | Використовується для зберігання строкових даних розміром до 255 символів. |
ТЕХТ | Використовується для зберігання текстової інформації, розмір якої не перевищує 65 535 букв. |
BLOB | Розглянутий тип даних аналогічний типу ТЕХТ і дозволяє зберігати в базі текстову інформацію, обсяг якої може досягати 65 535 знаків. Але на практиці використовується для зберігання звукових даних, малюнків, електронної документації та ін. |
MEDIUM ТЕХТ | Був розроблений на базі типу ТЕХТ, але дозволяє зберігати більше даних за рахунок збільшеного розміру до 16 777 215 літер або символів. |
MEDIUM BLOB | Використовується для збереження в базі електронних документів, розмір яких не перевищує позначку в 16 777 215 знаків. |
LONG ТЕХТ | Функціонально аналогічний попереднім типам, але зі збільшеним об`ємом пам`яті до 4 гігабайт. |
LONG BLOB | Дозволяє поміщати в базу дані великих обсягів (4 294 967 295 символу). |
ENUM (a, b, c, etc.) | Спеціальний тип даних, що використовується для завдання списку можливих значень. Дозволяє вказати 65535 значень. Рядки розглянутого типу можуть приймати єдине значення з зазначених в множині. У разі, коли буде відбуватися додавання значень, які не присутні в заданому списку, в таблицю будуть записані порожні значення. |
SET | Задає безліч допустимих значень. На відміну від попереднього типу, використовується для утримання 64 параметрів, які можуть бути проініціалізовані будь-яким або декількома елементами з заданих аргументів. |
Таблиця дрібних типів даних
Дробові SQL типи даних використовуються для зберігання чисел з плаваючою точкою. На практиці, як правило, задають різні фінансові показники. Залежно від необхідної точності застосовують один з трьох представлених:
FLOAT (size, d) | Дозволяє містити дробові числа, про яку йдеться точності d. |
DOUBLE (size, d) | Використовується для зберігання дрібних чисел з двійкової точністю. |
DECIMAL (size, d) | Зберігання дрібних значень у вигляді рядків. |
Наприклад, в банківських розрахунках точність дробової частини досягає значення в 8-м або 10-ть знаків. Перші два типи не можуть бути задіяні в цій галузі.
Зберігання фінансових показників у вигляді рядків значно полегшує вирішення багатьох завдань. Однак при вирішенні фінансових питань або проведенні різних операцій SQL перетворення типів даних має величезне значення. Розробники повинні обов`язково враховувати тип зберігання і способи обробки, щоб дані завжди залишалися незмінними.
Цілочисельний тип даних
Цілі числа - окрема група чисел, що утворює один з основних класів. Цілочисельні SQL типи даних грунтуються на використанні базового типу INTEGER з деяким розширенням його властивостей.
INT (size) | Зберігання цілочисельних значень, що утворюють діапазон [-231- 231-1] Відео: How to Alter Table in SQL Server by using Alter Statement - SQL Server / TSQL Tutorial Part 35 |
TINYINT (size) | Служить для зберігання чисел в діапазоні від -128 до 127 |
SMALLINT (size) | Характеризується збільшеним діапазоном збережених значень в розмірі від -32 768 до 32 767 |
MEDIUMINT (size) | Використовується для зберігання чисел розмірністю від -223 до 223-1 |
BIGINT (size) | Охоплює діапазон цілочисельних значень, починаючи з -263 і закінчуючи 263-1 |
Вибравши правильний тип даних, можна значно заощадити пам`ять і зменшити витрати серверного часу, коли виконуються необхідні SQL-запити. Типи даних, а точніше їх діапазон, визначають кількість необхідного місця для зберігання.
Тому розробникам баз даних важливо пам`ятати, що використання великих діапазонів для атрибутів спричиняє збільшення витрат на пам`ять. Необхідно чітко аналізувати змогу оцінити потреби і виявляти випадки, де відомий приблизний діапазон і визначено умови використання чисел зі знаком. Якщо діапазон використовуваних аргументів невеликий, а все числа будуть позитивними, то буде коректніше використовувати беззнаковий тип, що утворюється атрибутом UNSIGNED.
Типи даних дати і часу
При вивченні основ SQL типи даних дати і часу представляють особливий інтерес.
Використання нижчезазначених типів надає додаткові переваги при розробці систем, робота яких залежить від часових показників.
DATE | Головне призначення - зберігання дати в форматі РІК-МІСЯЦЬ-ДЕНЬ (&ldquo-РРРР-MM-ДД&rdquo- або "уууу-mm-dd" ). Зазвичай значення розділені через «-», проте як роздільник може бути задіяний будь-який символ, крім цифр. |
TIME | Дозволяє заносити в клітинку таблиці тимчасові значення. Всі значення задаються форматом «hh: mm: ss» |
DATETIME | Об`єднує функції попередніх двох типів. Формат зберігання представлений таким чином: «уууу-mm-dd hh: mm: ss». |
TIMESTAMP | Зберігає дату і час, що обчислюється кількістю секунд, що пройшли починаючи з півночі 1.01.1970 року і до заданого значення. |
YEAR (M) | Використовується для зберігання річних значень в двох-або чотиризначному форматі. |
Що ще необхідно знати?
Всі ці типи даних детально систематизовані компанією Microsoft. SQL типи даних нею розроблені більш детально.
Наприклад, фірмою детально розписаний, який обсяг пам`яті в байтах виділяється при використанні кожного типу. Вивчивши наявну інформацію, розробникам простіше проектувати структуру таблиць і всієї бази виходячи з апаратних можливостей сервера.
Спеціальний покажчик - NULL
Іноді при заповненні бази даних виникає ситуація, коли при додаванні запису в таблицю необхідність вносити інформацію в усі стовпці відсутня. Для цього застосовується спеціальний покажчик порожнього значення - NULL, який як допоміжний засіб використовує мову SQL. Типи даних стовпців, які не обов`язково повинні бути заповнені, при створенні таблиць вказуються з оператором, що дозволяє включення порожніх значень. В іншому випадку оператор NULL з додатковою приставкою NOT може бути задіяний для вказівки обов`язкового заповнення всіх значень.
покажчик NULL не має типу, а просто вказує на порожнє значення в таблицях баз даних. Тому він може бути скомбінованим з будь-яким з перерахованих вище типів.