- •Модуль 1 Тема 1. Вступ до sql. Синтаксис sql. Типи даних.
- •1. Вступ до sql.
- •Функції sql:
- •Роль sql
- •Переваги sql:
- •Синтаксис sql.
- •Типи даних.
- •1.3.1. Команди
- •1.3.2. Імена
- •1.3.3. Типи даних
- •1.3.4. Константи
- •1.3.4.1. Числові константи
- •1 .3.4.2. Літерні рядки
- •1.3.4.3. Константи дати і часу
- •1.3.4.4. Іменовані константи
- •1.3.5. Вирази
- •1.3.6. Вбудовані функції
- •Тема 2. Створення баз даних
- •Мова визначення даних
- •2. Створення бази даних
- •Тема 3. Створення таблиць
- •1. Команда створення таблиці.
- •2. Заборона значення null за допомогою обмеження not null
- •Тема 4. Вставка стрічок з допомогою оператора insert. Вилучення стрічок з допомогою оператора delete, редагування стрічки з допомогою команди update.
- •Вставка рядків за допомогою команди insert.
- •Додавання рядка за допомогою положення стовпця
- •Додавання рядка за допомогою назв стовпців
- •Додавання рядків з однієї таблиці в іншу
- •Зміна рядків за допомогою команди update.
- •Зміна рядків
- •Видалення рядків за допомогою команди delete
- •Видалення рядків
- •Тема 5. Оператор select
- •Оператор select.
- •Обчислювальні стовпчики. Альтернативне ім’я стовпчику.
- •Порівняння значення стовпчика із константою
- •Правила виконання однотабличних запитів на вибірку
- •Тема 6. Комбінування умов з допомогою операторів and, or, not. Порівняння по шаблону. Порівняння з діапазоном. Сортування стрічок з допомогою речення order by.
- •Порівняння значень виразів має наступну синтаксичну діаграму:
- •Тема 7. Створення псевдонімів. З’єднання таблиці із собою. Вибір даних з кількох таблиць
- •1. Створення псевдонімів.
- •2. З’єднання таблиці із собою.
- •3. Просте з’єднання таблиць (з’єднання за рівністю)
- •Запити з використанням відношення „головна – підлегла” таблиці (предок – нащадок)
- •3. Запити на вибірку до трьох і більше таблиць
- •4. Запити на об’єднання
- •Тема 8. Введення обмежень в базах даних
- •1. Види обмежень в базі даних.
- •Основні принципи роботи з обмеженнями
- •Присвоєння назви обмеженню
- •2. Первинний і унікальний ключі.
- •3. Зовнішні ключі.
- •4. Обмеження check
- •5. Вилучення обмежень.
- •Тема 9. Використання збережуваних процедур в базах даних. Використання генераторів ключів у базах даних в InterBase. Використання тригерів у базах даних.
- •1. Визначення збережуваної процедури.
- •1.2. Цикли й оператори розгалуження.
- •2. Створення генераторів.
- •2.1. Індекси.
- •2.2. Обробка виключень і помилок.
- •3. 1.Означення тригера.
- •3.2. Приклад тригера.
- •3.3. Контекстні змінні.
- •Тема 10. Безпека в базах даних
- •1. Користувач InterBase.
- •3. Організація користувачі у групи за допомогою ролей.
- •4. Права. Роздача прав.
- •5. Анулювання прав.
- •Модуль 2 Тема 11. Оператор exists. Сумування і групування даних.
- •1.1. Оператор exists.
- •1.2. Використання exists з співвіднесеними підзапитами.
- •1.3. Комбінація оператора exists і з’єднання.
- •1.4. Використання not exists.
- •1.5. Використання складних підзаписів з оператором exists.
- •2.1. Агрегатні (статистичні) функції
- •2.2. Правила опрацювання значення null агрегатними функціями:
- •2.3.Опрацювання унікальних записів агрегатними функціями
- •2.4. Агрегатні функції і значення null
- •3.1. Групування записів
- •3.2. Секція having – умова відбору груп
- •3.3. Обмеження на умову відбору груп
- •3.4. Значення null і умова відбору груп
- •3.5. Секція having без секції group by
- •Тема 12. З’єднання з базою даних. Використання збережуваних процедур в Delphi
- •1. З’єднання з сервером
- •2. Використання збережуваних процедур в Delphi.
- •Компонент tStoredProc.
- •Тема 13. Використання механізму транзакцій компонента Database. Керування транзакціями
- •Тема 14. Сервер баз даних InterBase і компоненти InterBase Express.
- •1. Сервер баз даних InterBase і компоненти InterBase Express
- •2. Механізм доступу до даних InterBase Express
- •3. Компонент tibDatabase.
- •Тема 15. Виконання запитів за допомогою компонента tibDataSet
- •1. Вибірка даних з таблиці.
- •2. Редагування даних за допомогою візуальних компонентів.
- •3. Програмне редагування даних.
- •Тема 16. Підпорядковані запити в таблицях Механізм master-detail
- •Література
Тема 8. Введення обмежень в базах даних
-
Види обмежень в базі даних.
-
Первинний і унікальний ключі.
-
Зовнішні ключі.
-
Обмеження CHECK.
-
Вилучення обмежень.
1. Види обмежень в базі даних.
Таблиця 8.1. Обмеження
ОБМЕЖЕННЯ |
ОПИС |
NOT NULL |
He дозволяє привласнювати стовпцю значення null |
DEFAULT |
Задає для стовпця значення за замовчуванням |
PRIMARY KEY |
Задає стовпець (стовпці) первинного ключа для таблиці |
FOREIGN KEY |
Задає стовпець (стовпці) повторного ключа для таблиці |
UNIQUE |
He дозволяє додавати в стовпець значення, що повторюються |
CHECK |
Обмежує значення, які можуть додаватися в стовпець, за допомогою логічних виразів |
Основні принципи роботи з обмеженнями
Обмеження дозволяють вказати вимоги до значень в стовпцях (табл. 8.1). Ваша СУБД буде використовувати ці вимоги, щоб автоматично редагувати таблицю. Обмеження бувають двох типів:
• обмеження стовпця є частиною опису стовпця і діє тільки для даного стовпця;
• обмеження таблиці не залежить від обмежень стовпця і може впливати на декілька стовпців в таблиці. Щоб включити в обмеження вимоги для декількох стовпців, слід використовувати обмеження таблиці.
Ви можете вказати декілька обмежень для стовпця або таблиці. Використання обмежень буде залежати від контексту. Наприклад, якщо первинний ключ містить один стовпець, ви можете задати його як обмеження стовпця або таблиці. Якщо первинний ключ включає два стовпці або більш, слід використовувати обмеження таблиці. Якщо ви вкажете назви обмежень, це спростить роботу з ними. Наприклад, ви легко зможете змінити або видалити таке обмеження за допомогою команди ALTER TABLE. Назви обмежень вводити необов'язково, але багато які SQL -програмісти і дизайнери баз даних присвоюють назви всім обмеженням. Ви можете не давати назв обмеженням NOT NULL і DEFAULT, але ми рекомендуємо вказати назви всіх інших обмежень (не дивлячись на те, що в прикладах даної книги ми цього не зробили). Якщо ви не присвоїли назви обмеженню, СУБД зробить це за вас. Подібні назви включають багато символів, і їх дуже непросто використовувати; краще за допомогою команди CONSTRAINT придумайте власну назву обмеженню. Такі назви в попередженнях і повідомленнях про помилки, що служить ще однією причиною для того, щоб самостійно їх присвоювати.
Присвоєння назви обмеженню
Перш ніж вводити опис обмеження, надрукуйте:
CONSTRAINT constraint name
constraint name - це назва обмеження, яка буде використовуватися SQL для його ідентифікації. Такі назви для однієї таблиці повинні бути унікальними.
Обмеження з назвами будуть показані далі в прикладах цього розділу.
MySQL не підтримує пропозицію CONSTRAINT для обмежень стовпців (але ви можете використовувати його для обмежень таблиць).
Існують такі види обмежень в базі даних InterBase:
-
первинний ключ – PRIMARY KEY;
-
унікальний ключ – UNIQUE KEY;
-
зовнішній ключ – FOREIGN KEY – може включати автоматичні тригери ON UPDATE і ON DELETE; перевірки – CHECK.
Обмеження бази даних бувають двох типів – на основі одного поля і на основі декількох полів таблиці. Розглянемо створення обмежень детальніше. Першим в описі загального синтаксису обмежень йде ключове слово [CONSTRAINT constraint_name]. Тут CONSTRAINT означає обмеження, а constraint_name – ім’я цього обмеження (необов’язкове).
За допомогою ключового слова CONSTRAINT можна задавати ім’я створюваному обмеженню і у випадку використання синтаксису обмежень на основі одного поля, і у випадку обмежень на основі декількох полів.
Якщо не вказати ім’я для обмеження, InterBase автоматично генерує його. Однак краще все ж явно назначити ім’я, щоб покращити читабельність схеми бази даних. Призначивши ім’я обмеженню, необхідно задати його тип.