- •Модуль 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
- •Література
-
Видалення рядків за допомогою команди delete
Команда DELETE видаляє рядки з таблиці. Ви можете використовувати цю команду, щоб видаляти:
• всі рядки в таблиці;
• окремі рядки в таблиці.
Щоб видалити рядки, потрібно вказати:
• рядки в якій таблиці слід видалити;
• умова пошуку для знаходження рядків, що видаляються (опціонально).
Перерахуємо важливі параметри команди DELETE:
• на відміну від команд INSERT і UPDATE, ця команда не вимагає введення назв стовпців, оскільки видаляє рядки цілком;
• видаляє рядки з таблиці, але не видаляє саму таблицю. Навіть якщо ви приберете з таблиці всі рядки, сама таблиця залишиться. Якщо ви бажаєте видалити таблицю (разом зі всіма даними, індексами і т.д.), зверніться до допомоги команди DROP TABLE;
• використовує (опціонально) речення WHERE, щоб визначити, які саме рядки слід видалити. Якщо ви не вкажете умову пошуку, команда DELETE видалить всі рядки в таблиці;
• може бути небезпечна, тому що ви можете випадково пропустити речення WHERE (і видалити всі рядки) або неправильно вказати умову пошуку для WHERE (і видалити не ті рядки). Перед запуском команди DELETE рекомендуємо запустити команду SELECT з такою ж пропозицією WHERE. Команда SELECT відобразить всі рядки, які будуть видалені СУБД при запуску команди DELETE. Щоб відобразити тільки кількість таких рядків, користуйтеся командою SELECT COUNT (*);
• щоб зберегти посилальну цілісність, СУБД дозволяє вказати дію, яка буде виконуватися автоматично за допомогою команди DELETE при видаленні рядків, на які вказує повторний ключ;
• жоден вираз не повинен приводити до арифметичної помилки (наприклад, переповнюванню або ділення на нуль);
• пригадайте, що порядок рядків в таблиці не має значення і що ви не можете управляти розташуванням рядків, тому їх видалення може довільним чином змінити розташування інших рядків в таблиці.
Видалення рядків
Введіть:
DELETE FROM table
[WHERE search_ condition];
table - це назва таблиці, з якої ви будете видаляти рядки. search condition задає умови, які повинні дотримуватися для рядків, що видаляються. Цими умовами можуть бути умови WHERE (оператори порівняння, LIKE, BETWEEN, IN і IS NULL) або умови запиту (оператори порівняння, IN, ALL, ANY і EXISTS) в комбінації з AND, OR і NOT. Якщо ви опустите речення WHERE, будуть видалені всі рядки в таблиці.
Лістинг 4.14 видаляє всі рядки в royalties. Відсутність речення WHERE повідомляє СУБД, що слід видалити всі рядки. Команда, представлена в цьому лістингу, видаляє 13 рядків.
В лістингу 4.15 пропозиція WHERE повідомляє СУБД, що з таблиці authors слід видалити всіх авторів з прізвищем Халл (Hull). Команда цього лістинга видаляє два рядки.
Ви можете використовувати дані з однієї таблиці, щоб видалити дані в іншій таблиці. Лістинг 4.16 використовує підзапит, щоб видалити з title authors всі книги, випущені виданнями Р01 і Р04. Ця команда видаляє 12 рядків.
Лістинг 4.14. Видалити всі рядки в royalties.
DELETE FROM royalties;
title id advance royalty rate
______ _______ __________
Результат виконання лістинга 4.14
Лістинг 4.15. Видалити з authors всіх авторів з прізвищем Халл.
DELETE FROM authors
WHERE au_lname = 'Hull';
Лістинг 4.16. Видалити з title authors всі книги, випущені виданнями Р01 і Р04.
DELETE FROM title authors
WHERE title ld IN
(SELECT title id
FROM titles
WHERE pub id IN ('РО1,'Р04'));
Якщо ви бажаєте бути особливо уважними при видаленні рядків, можете перевірити команду DELETE за допомогою тимчасової копії таблиці.
Ви також можете видаляти рядки за допомогою представлень.
Якщо ви застосовуєте транзакції, скористайтеся командою COMMIT після команди DELETE, щоб зробити зміни постійними. TRUNCATE TABLE table; table - це таблиця, яку ви бажаєте змінити.
Контрольні питання:
-
Що виконує команда INSERT?
-
Які параметри команди INSERT?
-
Яка структура команди INSERT для додавання рядків з допомогою положення стовпців в таблиці?
-
Яка структура команди INSERT для додавання рядків з допомогою назв стовпців?
-
Яка структура команди INSERT для додавання рядків з однієї таблиці в іншу?
-
Що виконує команда UPDATE?
-
Які параметри команди UPDATE?
-
Яка структура команди UPDATE?
-
Що виконує команда DELETE?
-
Які параметри команди DELETE?
-
Яка структура команди DELETE?