НОУ ІНТУІТ, Лекція, Визначення структури даних
Типи даних мови SQL, визначені стандартом
Дані - це сукупна інформація, що зберігається в базі даних у вигляді одного з різних типів. За допомогою типів даних встановлюються основні правила для даних , що містяться в конкретному стовпці таблиці, у тому числі розмір пам'яті, що виділяється для них.
У мові SQL є шість скалярних типів даних, визначених стандартом. Їх короткий опис наведено в таблиці.
| Символьний | CHAR VARCHAR |
| Бітовий | BIT BIT VARYING |
| Точні числа | NUMERIC DECIMAL INTEGER SMALLINT |
| Округлені числа | FLOAT REAL DOUBLE PRECISION |
| Дата час | DATE TIME TIMESTAMP |
| Інтервал | INTERVAL |
Символьні дані
Символьні дані складаються з послідовності символів, що входять до певного творцями СУБД набір символів. Оскільки набори символів специфічні для різних діалектів мови SQL, перелік символів, які можуть входити до складу значень даних символьного типу, також залежить від конкретної реалізації. Найчастіше використовуються набори символів ASCII та EBCDIC. Для визначення даних символьного типу використовується такий формат:
При визначенні стовпця із символьним типом даних параметр довжина застосовується для вказівки максимальної кількості символів, які можуть бути поміщені в цей стовпець (за замовчуванням приймається значення 1). Символьний рядок може бути визначений як такий, що має фіксовану або змінну (VARYING) довжину. Якщо рядок визначено з фіксованою довжиною значень, то при введенні до неї меншої кількостісимволів значення доповнюється до вказаної довжини пробілами, що додаються праворуч. Якщо рядок визначено зі змінною довжиною значень, то при введенні в неї меншої кількості символів у базі даних буде збережено лише введені символи, що дозволить досягти певної економії зовнішньої пам'яті.
Бітові дані
Бітовий тип даних використовується визначення бітових рядків, тобто. послідовності двійкових цифр (бітів), кожна з яких може мати значення або 0 або 1 . Дані бітового типу визначаються за допомогою наступного формату:
Точні числа
Тип точних числових даних застосовується визначення чисел, які мають точне уявлення, тобто. числа складаються з цифр, необов'язкової десяткової точки та необов'язкового символу знака. Дані точного числового типу визначаються точністю та довжиною дробової частини. Точність задає загальну кількість значних десяткових цифр числа, до якого входить довжина як цілої частини, і дробової, але не враховуючи самої десяткової точки. Масштаб вказує кількість дрібних десяткових розрядів числа.
Типи NUMERIC та DECIMAL призначені для зберігання чисел у десятковому форматі. За замовчуванням довжина дробової частини дорівнює нулю, а точність, що приймається за умовчанням, залежить від реалізації. Тип INTEGER ( INT ) використовується зберігання великих позитивних чи негативних цілих чисел. Тип SMALLINT – зберігання невеликих позитивних чи негативних цілих чисел; у цьому випадку витрата зовнішньої пам'яті суттєво скорочується.
Округлені числа
Тип округлених чисел застосовується для опису даних, які не можна точно уявити на комп'ютері, зокрема дійсних чисел. Округлені числа або числа з точкою, що плаває, подаються в науковій нотації, при якій число записуєтьсяза допомогою мантиси, помноженої на певний ступінь десяти (порядок), наприклад: 10Е3 +5.2Е6 -0.2Е-4 . Для визначення даних речового типу використовується формат:
Параметр точність задає кількість значних цифр мантиси. Точність типів REAL та DOUBLE PRECISION залежить від конкретної реалізації.
дата та час
Тип даних "дата/час" використовується визначення моментів часу з деякою встановленої точністю. Стандарт SQL підтримує такий формат:
Тип даних DATE використовується для зберігання календарних дат, що включають поля YEAR (рік), MONTH (місяць) та DAY (день). Тип даних TIME – для зберігання позначок часу, що включають поля HOUR (годинник), MINUTE (хвилини) та SECOND (секунди). Тип даних TIMESTAMP – для спільного зберігання дати та часу. Параметр точність задає кількість дрібних десяткових знаків, що визначають точність збереження значення в полі SECOND . Якщо цей параметр опускається, за промовчанням його значення для стовпців типу TIME приймається рівним нулю (тобто зберігаються цілі секунди), тоді як для полів типу TIMESTAMP він приймається рівним 6 . Наявність ключового слова WITH TIME ZONE визначає використання полів TIMEZONE HOUR та TIMEZONE MINUTE , тим самим задаються година та хвилини зсуву зонального часу по відношенню до універсального координатного часу (Гринвічського часу).
Дані типу INTERVAL використовуються для подання періодів часу.
Поняття домену
Домен – це набір допустимих значень одного чи кількох атрибутів. Якщо в таблиці бази даних або в декількох таблицях присутні стовпці, що володіють одними і тими ж характеристиками, можна описати тип такого стовпця і його поведінку через домен , а потім поставити у відповідність кожному з стовпців ім'я домену .Домен визначає всі потенційні значення, які можуть бути надані атрибуту.
Стандарт SQL дозволяє визначити домен за допомогою наступного оператора:
Кожному домену, що створюється, надається ім'я, тип даних , значення за замовчуванням і набір допустимих значень. Слід зазначити, що формат оператора є неповним. Тепер під час створення таблиці можна вказати замість типу даних ім'я домену.
Видалення доменів з бази даних виконується за допомогою оператора:
У разі вказівки ключового слова CASCADE будь-які стовпці таблиць, створені з використанням домену, що видаляється, будуть автоматично змінені і описані як містять дані того типу, який був зазначений у визначенні домену, що видаляється.
Альтернативою доменам у середовищі SQL Server є типи даних користувача .