4. Команди створення бази даних і визначення таблиць.
5. Створення таблиць за допомогою обмежень SQL -92
Методичні рекомендації
1. При описі синтаксису SQL використовуються наступні домовленості:
· SQL є мовою з необумовленими формами (free-form language): кількість слів в одному рядку і місця розривів рядків не обмежується; довгі і складні інструкції розбиваються на кілька рядків, що виділяються відступом.
· Оператори SQL зазвичай вимагають наявності термінаторів (termіnator), що ініціюють виконання оператора в системі управління базами даних. Різні SQL використовують різні термінатори, найбільш розповсюдженими є крапка з комою ( ; ) і слово go.
2. Узгодження і іменах.У кожного об'єкта в базі даних є унікальне ім'я. Імена використовуються в операторах SQL і вказують, над яким об'єктом бази даних оператор повинен виконати дію. У стандарті ANSІ/ІSO визначено, що імена є у таблиць, стовпців і користувачів.
У відповідності зі стандартом ANSІ/ІSO, у SQL імена повинні містити від 1 до 18 символів, починатися з букви і не містити пробіли чи спеціальні символи пунктуації. У стандарті SQL2 максимальне число символів в імені збільшене до 128. На практиці, однак, у різних СУБД дозволене використання в іменах таблиць спеціальних символів, які в різних базах даних можуть бути різними.
Якщо в операторі зазначене ім'я таблиці, SQL припускає, що відбувається звертання до однієї з власних таблиць користувача. Маючи відповідний дозвіл, можна звертатися до таблиць, власниками яких є інші користувачі, за допомогою повного імені таблиці. Повне ім'я складається з імені власника таблиці і власне її імені, розділених крапкою (.). Наприклад, повне ім'я таблиці BІRTHDAYS, власником якої є користувач по імені SAM, має наступний вид:
SAM.BІRTHDAYS
Повне ім'я таблиці можна використовувати замість простого імені таблиці у всіх операторах SQL.
Якщо в операторі задається ім'я стовпця, SQL сам визначає, у якій із зазначених у цьому ж операторі таблиць міститься даний стовпець. Однак якщо в оператор потрібно включити два стовпці з різних таблиць, але з однаковими іменами, необхідно вказати повні імена стовпців, що однозначно визначають їхнє місцезнаходження. Повне ім'я стовпця складається з імені таблиці, що містить стовпець, і імені стовпця (простого імені), розділених крапкою (.). Наприклад, повне ім'я стовпця SALES з таблиці SALESREPS має наступний вид:
SALESREPS.SALES
Якщо стовпець знаходиться в таблиці, власником якої є інший користувач, то в повному імені стовпця слід використовувати повне ім'я таблиці. Наприклад, повне ім'я стовпця BІRTH_DATE у таблиці BІRTHDAYS, власником якої є користувач SAM, має наступний вид:
SAM.BІRTHDAYS.BІRTH_DATE.
3. У стандарті ANSІ/ІSO визначені типи даних, які можна використовувати для подання інформації в реляційній базі даних.
Табл.1.
Типи даних, що є в стандарті SQL.
Тип даних
Опис
CHAR(довжина)
Рядки символів постійної довжини
СНАRАСТЕR(довжина)
VARCHAR(довжина)
Рядки символів змінної довжини
CHAR VARYING(довжина)
CHARACTER VARYING(довжина)
NCHAR(довжина)
Рядки локалізованих символів постійної довжини
NATIONAL СНАR(довжина)
NATIONAL CHARACTER(довжина)
NCHAR VARYING(довжина)
Рядки локалізованих символів змінної довжини
NATIONAL CHAR VARYING(довжина)
NATIONAL CHARACTER VARYING(довжина)
INTEGER
Цілі числа
INT
SMALLINT
Маленькі цілі числа
BIT(довжина)
Рядки бітів постійної довжини
BIT VARYING(довжина)
Рядки бітів змінної довжини
NUMERIC(точність, степінь)
Масштабовані цілі (десяткові) числа
DECIMAL(точність, степінь)
DEC(точність, степінь)
FLOAT (точність)
Числа з плаваючою крапкою
REAL
Числа з плаваючою крапкою низької точності
DOUBLE PRECISION
Числа з плаваючою крапкою високої точності
DATE
Календарна дата
TIME(точність)
Час
TIMESTAMP(точність)
Дата і час
INTERVAL
Часовий інтервал
Цілі та десяткові константив операторах SQL представляються у вигляді звичайних десяткових чисел. Константи з плаваючою комою визначаються за допомогою символу Е и мають такий же формат, як і в більшості мов програмування. 1.5Е3
У відповідності зі стандартом ANSІ/ІSO, рядкові константи в SQL представляються в одинарних лапках:
'Jones John J.' 'New York' 'Western'
Якщо необхідно включити в рядкову константу одинарні лапки, замість них слід написати дві одинарних лапки: 'І can''t'.
У реляційних СУБД календарні дати, час та інтервали часу представляються у вигляді рядкових констант.
Крім користувальницьких констант, у SQL існують спеціальні символьні константи, що повертають значення, які були збережені в самій СУБД.
Табл.2.
Символьні константи SQL.
Константа
Опис
USER
Ім’я користувача
CURRENT DATE
Поточна дата (DB2, SQL/DS, SQLBase)
CURRENT TIME
Поточний час дня (DB2, SQL/DS, SQLBase)
CURRENT TIMESTAMP
Поточні дата і час (DB2, SQL/DS)
CURRENT TIMEZONE
Інтервал часу, який визначає різницю між поточним часовим поясом та часом за Гринвічем
Вирази в SQL використовуються для виконання операцій над значеннями, що зчитуються з бази даних чи використовуються для пошуку в базі даних. Наприклад:
SELECT cіty, target, sales, (sales/target) * 100 FROM offіces
В стандарт SQL2 увійшли найбільш кориснівбудовані функції з різних реалізацій СУБД. В загальному випадку вбудовану функцію дозволяється використовувати в будь-якому місці оператора SQL, в якому можна використовувати константу того ж типу даних.