- •Модуль 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
- •Література
Додавання рядка за допомогою положення стовпця
Введіть:
INSERT INTO table
VALUES(value1, value2..... valueN);
table - це назва таблиці, в kotру ви додаєте рядок, value1, value2. valueN - це список буквених позначень або виразів, який задає значення для всіх стовпців в новому рядку.
Кількість значень повинна відповідати кількості стовпців в table, а значення повинні бути вказані в тій же послідовності, що і стовпці. СУБД вставляє кожне значення в стовпець який співпадає з положенням значення в table, value1 додається в перший стовпець нового рядка, value2 - в другий стовпець і т.д.
Команда-приклад додасть в таблицю oдну рядок.
Лістинг 4.1. Команда INSERT додасть в таблицю authors новий рядок, вставивши значення в тому порядку, в якому йдуть стовпці в списку.
INSERT INTO authors
VALUES(
'А08',
'Michael',
'Polk',
'512-953-1231',
'4028 Guadalupe St',
'Austin',
'TX',
'78701');
Додавання рядка за допомогою назв стовпців
Введіть:
INSERT INTO table
(column1, column2 ..., columnN)
VALUES(value1, value2..., valueN);
table - це назва таблиці, в яку ви додаєте рядок; column1, column2., columnN - список назв стовпців в table; value1, value2..., valueN - список буквених позначень або виразів, які задають значення для вказаних стовпців в новому рядку.
Кількість значень повинна відповідати кількості стовпців в списку, а значення повинні бути вказані в тій же послідовності, що і назви стовпців. СУБД вставляє кожне значення в списку, використовуючи відповідні значення в списку. Значення value1 додається в стовпець column1 нового рядка, значення value2- в стовпець column2 і т.д. Пропущеному стовпцю привласнюється значення за умовчанням або NULL.
Команда-приклад додасть в таблицю один рядок. Простіше всього вказувати назви стовпців в тому ж порядку, в якому вони приведені в таблиці.
Лістинг 4.2. Команда INSERT додасть в таблицю authors новий рядок, вставивши значення в тому порядку, в якому йдуть стовпці в списку.
INSERT INTO authors(
au id,
au_fname ,
au_lname,
phone ,
address,
city ,
state,
zip)
VALUES(
'A09',
'Іrene',
'Bell',
'415-225-4689' ,
'810 Throckmorton Ave',
'Mill Valley',
'CA',
'9494V);
Але ви можете перерахувати їх в довільному порядку.
Лістинг 4.3. Вам необов'язково вказувати, назви стовпців в тому ж порядку, в якому вони йдуть в таблиці. В даному прикладі ми змінили порядок назв стовпців і відповідних значень.
INSERT INTO authors(
Zip,
Phone,
Address,
Au_lname,
Au_fname,
state,
au id,
city)
VALUES(
'60614',
'312-998-0020',
'1937 N. Clark Sт',
'Weston',
'Dianne',
'ІL',
'A10',
'Chicago');
У будь-якому випадку значення в реченні VALUES повинні відповідати послідовності, в якій ви вказали назви стовпців.
Якщо ви бажаєте вказати значення тільки для певних стовпців, можете пропустити деякі стовпці.
Лістинг 4.4. Ми додали рядок для нового автора, але пропустили стовпці і значення для адреси автора. СУБД автоматично додала в пропущені стовпці NULL.
INSERT INTO authors(
Au_id ,
Au_fname,
Au_lname,
phone)
VALUES(
'А11',
'Max',
'Allard',
'212-502-0955');
Якщо ви пропустите стовпець, СУБД повинна сама вказати для нього значення на підставі назви стовпця. СУБД додасть значення за умовчанням (якщо воно було задано) або NULL (якщо можливо). Якщо ви пропустите стовпець, який не має значення за умовчанням і в який не можна додати NULL, СУБД видасть повідомлення про помилку і не додасть новий рядок.