- •Модуль 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
- •Література
2. Заборона значення null за допомогою обмеження not null
Від здатності стовпця приймати значення null залежить, чи можуть рядки містити NULL, тобто чи обов'язково вводити значення в цих рядках чи ні.
Коротко:
-
значення null є маркером, який повідомляє, що значення не було введено;
-
значення null відображає значення, якого немає, яке невідомо або яке непридатний. Значення null в стовпці price свідчить про те, що ціна невідома або не була вказана, а не про те, що товар не має ціни або що ціна рівна нулю;
-
значення null - не те ж саме, що (0), порожнє поле або пропуск (' ');
-
значення null не відноситься ні до одного типу даних і може бути вставлене в будь-який стовпець, який це допускає;
-
в командах SQL слово NULL указує на значення null.
При установці обмеження на значення null слід ураховувати наступні чинники:
• обмеження на значення null завжди є обмеженням стовпця, а не таблиці
• ви задаєте обмеження на значення null за допомогою ключових слів NULL або NOT
NULL в позначенні стовпця в команді CREATE TABLE;
• бажано уникати дозволу значення null, оскільки це ускладнює запити;
• заборона значення null в стовпці може допомогти зберегти цілісність даних, оскільки при їх введенні обов'язково вказувати значення. СУБД не буде вставляти або змінювати рядок, якщо стовпець (для якого заборонено значення null) містить NULL;
• деякі обмеження (наприклад, PRIMARY KEY) не можуть використовуватися в стовпцях, для яких дозволено значення null;
• значення null впливає на обмеження повторних ключів за допомогою обмеження FOREIGN KEY;
• якщо ви додали рядок за допомогою команди INSERT, але не вказали значення стовпця, який допускає значення null, ваша СУБД вставить NULL (за умови, що немає обмеження DEFAULT).
• ви можете ввести NULL безпосередньо в стовпці, для якого дозволено значення null, причому незалежно від того, який тип даних або значення за умовчанням вказаний для цього стовпця;
• якщо ви не вкажете NULL або NOT NULL, no умовчанню значення null буде дозволено.
Контрольні питання:
-
Яка команда створює таблицю?
-
Що слід вказати при створенні таблиці?
-
Яка структура команди CREATE TABLE?
-
Що виконує команда обмеження NOT NULL?
Тема 4. Вставка стрічок з допомогою оператора insert. Вилучення стрічок з допомогою оператора delete, редагування стрічки з допомогою команди update.
-
Вставка стрічок з допомогою оператора INSERT.
-
Вилучення стрічок з допомогою оператора DELETE
-
Редагування стрічки з допомогою команди UPDATE.
-
Вставка рядків за допомогою команди insert.
Команда INSERT додає нові рядки в таблицю. Використовують цю команду, щоб:
• додати рядок за допомогою положення стовпців в таблиці (INSERT VALUES);
• додати рядок за допомогою назв стовпців (INSERT VALUES);
• додати рядки з однієї таблиці в іншу (INSERT SELECT).
Перерахуємо важливі параметри команди INSERT:
• при додаванні рядків за допомогою положення в таблиці ви додаєте значення в новий рядок в тій же послідовності, в якій вони з'являються в таблиці. При вставці рядка в стовпець ви задаєте назву стовпця, в який додаєте значення для нового рядка.
Слід завжди додавати рядки за допомогою назв стовпців. При цьому ваш запит буде працювати і в тому випадку, якщо хтось змінить порядок стовпців в таблиці або додасть нові стовпці;
• за допомогою команди INSERT VALUES ви указуєте точні значення, які повинні бути вставлені в таблицю. За допомогою команди INSERT SELECT ви вибираєте рядки з іншої таблиці, які бажаєте помістити в поточну;
• INSERT VALUES додає в таблицю один рядок, INSERT SELECT - будь-яку кількість рядків;
• кожне додане значення повинне бути того ж типу (або мати нагоду для конвертації), що і інші дані в стовпці;
• щоб зберегти систему посилань, вставлений зовнішній ключ повинен містити або NULL, або значення існуючого ключа з первинного або унікального посилання повторного ключа.;
• додане значення не може відмінити обмеження;
• жоден вираз не повинен приводити до арифметичної помилки (наприклад, переповнюванню або розподілу на нуль);
• пам'ятайте, що порядок рядків в таблиці не має значення і що ви не можете управляти розташуванням рядків, тому нові рядки можуть з'явитися і будь-якому місці таблиці.