Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Типи даних, оператори і функції в SQL




 

Оператори мови SQL можна умовно розділити на кілька підгруп.

1. Мова визначення даних (Data Defіnіtіon Language - DDL) - використовується для створення і зміни структури об'єктів бази даних (наприклад, для створення і вилучення таблиць). Основні оператори цієї групи приведені в табл. 13.1.

 

Таблиця 13.1. Оператори визначення даних DDL

Оператор Зміст Дія
CREATE TABLE Створити таблицю Створить нову таблицю в БД
DROP TABLE Вилучити таблицю Вилучає таблицю з БД
ALTER TABLE Змінити таблицю Змінює структуру існуючої таблиці чи обмеження цілісності, що задаються для даної таблиці
CREATE VIEW Створити представлення Створить віртуальну таблицю, що відповідає деякому SQL-запиту
ALTER VIEW Змінити представлення Змінює раніше створене представлення
DROP VIEW Вилучити представлення Вилучає раніше створене представлення
CREATE INDEX Створити індекс Створює індекс для деякої таблиці для забезпечення швидкого доступу по атрибутах, що входить в індекс
DROP INDEX Вилучити індекс Вилучає раніше створений індекс

 

2. Мова маніпулювання даними (Data Manіpulatіon Language - DML) - використовується для маніпулювання інформацією, що міститься в об'єктах бази даних. Основні оператори цієї групи приведені в табл. 13.2.

 

Таблиця 13.2. Оператори маніпулювання даними Data Manіpulatіon Language (DMP)

Оператор Зміст Дія
DELETE Вилучити рядок Вилучає один чи кілька рядків, що відповідають умовам фільтрації, з базової таблиці. Застосування оператора не погоджується з принципами підтримки цілісності, тому цей оператор не завжди може бути виконаний коректно, навіть якщо синтаксично він записаний правильно
INSERT   Вставити рядок Вставляє один рядок у базову таблицю. Допустимі модифікації оператора, при яких відразу скільки рядків можуть бути перенесені з однієї таблиці чи запиту в базову таблицю
UPDATE   Обновити рядок Обновляє значення одного чи декількох стовпців в одному чи декількох рядках, що відповідають умовам фільтрації

 

3. Мова запитів (Data Query Language - DQL) - найбільше часто використовувані команди для створення запитів до бази даних. Основний оператор цієї групи приведений у табл. 13.3.

 

Таблиця 13.3. Мова запитів (Data Query Language - DQL).

Оператор   Зміст   Дія
SELECT   Вибрати Оператор, що заміняє всі оператори реляційної алгебри і що дозволяє сформувати результуюче відношення, яке відповідає запиту

 

У мові SQL підтримуються наступні основні типи даних (табл. 13.4.).

 

Таблиця 13.4. Основні типи даних

Позначення даних Опис даних
Числові типи
Цілочислові типи
INTEGER чи INT ціле число, що зберігається в чотирьох байтах. Звичайно до 10 значущих цифр і знак. Діапазон від -2 147 483 648 до 2 147 483 647.
SMALLINT коротке ціле, що зберігається в двох байтах. Звичайно до 5 значущих цифр і знак. Діапазон від -32 768 до 32 767.
Веществені типи з фіксованою крапкою Призначені для точного представлення дробових чисел. Використовується, коли неприпустимі погрішності, неминучі при представленні веществених чисел із плаваючою комою в двійковій формі (наприклад, при збереженні значень грошових величин). По суті це цілочисловий тип у який відображається десяткова крапка.
NUMERIC [(n, m)] точні числа, тут n - загальна кількість цифр у числі, m - кількість цифр ліворуч від десяткової крапки.
DECIMAL (p, q) чи DEC(p, q) десяткове число, що має p цифр (0 < p < 16) і знак; за допомогою q задається число цифр праворуч від десяткової крапки (q < p, якщо q = 0, воно може бути опущене).
Веществені типи з плаваючою крапкою Використовуються для інженерних і наукових розрахунків. Коли такі числа заносяться в БД, вони перетворяться в двійкову форму з плаваючою крапкою. При цьому утвориться незначна погрішність, якою звичайно зневажають. У деяких випадках це неприпустимо, наприклад, при підсумовуванні великої кількості значень загальна погрішність результату може бути істотною. Тому типи з плаваючою крапкою не використовують для грошових величин.  
FLOAT(p) число великої точності з плаваючою крапкою p число байтів, яке резервується для збереження числа. Визначається конкретною СУБД.
REAL веществений тип чисел, що відповідає числам із плаваючою крапкою, меншої точності, чим FLOAT.
DOUBLE подвійне число з плаваючою крапкою, більше, ніж REAL.
Строкові типи
Символьні рядки фіксованої довжини.
CHARACTER(n) чи CHAR (n) символьний рядок фіксованої довжини з n символів (0 < n < 256). При завданні даного типу під кожне значення завжди відводиться n символів, якщо реальне значення займає менше ніж n символів, то СУБД автоматично доповнює відсутні символи пробілами. Якщо реальне значення більше чим n символів, то зайві символи обрізуються. Тому не слід використовувати цей тип для рядків, довжина яких може сильно варіюватися, це приведе до невиправданої витрати зовнішньої пам'яті.
Символьні рядки перемінної довжини.
VARCHAR(n) символьний рядок перемінної довжини, що не перевищує n символів (n > 0 і різне в різних СУБД, але не менше 4096). Незалежно від того, який розмір рядка зазначений в оголошенні, поле буде займати стільки місця, скільки необхідно для збереження занесеної у нього інформації;
Типи для представлення дати і часу
DATE дата у форматі, що визначається спеціальною командою (за замовчуванням mm/dd/yy); поля дати можуть містити тільки реальні дати. Наприклад не можна вказати 18 місяць чи 37 число.
TIME час у форматі, що визначається спеціальною командою, (за замовчуванням hh.mm.ss);
TIMESTAMP комбінація дати і часу;
INTERVAL зберігає проміжок часу між двома датами чи між двома моментами часу;
Грошовий тип
MONEY гроші у форматі, що визначає символ грошової одиниці ($, руб,...) і його розташування (суфікс чи префікс), точність дробової частини й умова для показу грошового значення.
Двійкові рядки Використовуються рідко, наприклад для створення двійкових масок.
BIT(n) рядок бітів постійної довжини, де n - довжина рядка в байтах.
BIT VARYING(n) рядок бітів перемінної довжини де n - максимальна довжина рядка в байтах.

 

Більшість СУБД підтримують додаткові типи даних, що не визначені в стандарті. Практично всі СУБД підтримують тип даних для представлення неструктурованого тексту великого обсягу. Цей тип аналогічний типу MEMO у настільних СУБД. Називаються ці типи по-різному, наприклад у ORACLE цей тип називається LONG, у SYBASE і MS SQL Server - TEXT.

Специфіка реалізації окремих типів даних істотно впливає на результати запитів до БД. Особливо це стосується реалізації типів даних DATE і TІMESTAMP. Тому додатки на різних платформах можуть працювати по-різному через розходження в інтерпретації типів даних.

В операціях SQL можуть використовуватися константи.

Для числових типів даних визначені константи у виді послідовності цифр із необов'язковим завданням знака числа і десятковою крапкою. Тобто правильними будуть константи: 612.716 +551.702

Константи з плаваючою комою задаються шляхом завдання мантиси і порядку, розділені символом Е, наприклад: 2.9Е-4 -134.235Е7 0.54267Е18.

Строкові константи повинні бути укладені в одинарні лапки: 'Кремінь В. А.'

У деяких реалізаціях, наприклад MS SQL Server і Іnformіx, припустимі подвійні лапки у строкових константах: "Київ"

В операторах SQL використовуються вираження з застосуванням знаків арифметичних операцій додавання (+), вирахування (-), множення (*) і розподілу (/). У деяких СУБД операція розподілу (/) інтерпретується як розподіл націло, тому можна одержати результат, що не відповідає традиційної інтерпретації вираження.

У стандарт SQL2 включені операції додавання і вирахування над датами. У більшості СУБД визначена операція конкатенації над строковими даними, позначається вона, на жаль, по-різному. Так, наприклад, для DB2 операція конкатенації позначається подвійною вертикальною рискою, у MS SQL Server - знаком додавання (+), тому два вираження, створені в різних СУБД, еквівалентні:

'Прізвище' || 'Ім'я ' || ' По батькові' 'Прізвище' + 'Ім'я ' + ' По батькові'

У SQL уведений ряд стандартних убудованих функцій (табл. 13.5.).

Таблиця 13.5. Стандартні убудовані функції.

Позначення функції Опис функції
BIT_LENGTH(<рядок>) кількість бітів у рядку
CAST(<значення> AS <тип даних>) значення, що перетворене в заданий тип даних
CHAR_LENGTH(<рядок>) довжина рядка символів
CONVERT(<рядок> USING <функція>) рядок, що перетворений відповідно до зазначеної функції
CURRENT_DATE поточна дата
CURRENT_TIME(<точність>) поточний час із зазначеною точністю
CURRENT_TIMESTAMP(<точність>) поточні дата і час із зазначеною точністю
LOWER(<рядок>) рядок, що перетворений до нижнього регістру
OCTED_LENGTH(<рядок>) число байтів у рядку символів
POSITION(<перший рядок> IN <другий рядок>) позиція, з якої починається входження першого рядка в другий
SUBSTRING(<рядок> FROM n FOR <довжина>) частина рядка, що починається з n -го символу і яка має зазначену довжину
TRANSLATE(<рядок> USING <функція>) рядок, що перетворений з використанням зазначеної функції
TRIM(BOTH <символ> FROM <рядок>) рядок, у якого вилучені всі перші і останні символи.
TRIM(LEADING <символ> FROM <рядок>) рядок, у якому вилучені всі перші зазначені символи.
TRIM(TRAILING <символ> FROM <рядок>) рядок, у якому вилучені останні зазначені символи.
UPPER(<рядок>) рядок, перетворений до верхнього регістра.

 

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

Нижче буде розглянуто практичне застосування мови SQL. Хоча стандарт SQL92 припускає його використання у всіх сучасних СУБД, практично це не виконується. Це обумовлено тим, що виробники комерційних СУБД із ціллю підвищення конкурентноздатності виходять за рамки стандарту. У більшості випадків використовуються діалекти SQL, що відрізняються від SQL92. Наприклад, у Access це Jet SQL, а в Mіcrosoft SQL Server - Transact SQL. Отже, вивчення стандартної мови SQL92 можливо тільки теоретично. Тут же вирішується задача практичного вивчення основних положень SQL. Причому всі приведені в лекції приклади можна відтворити на домашньому комп'ютері в середовищі Access 2002 і вище.

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...