
- •Модуль 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
[(column1, column2..... columnN)]
select_statement;
table- ця назва таблиці, в яку ви додаєте рядок; column1, column2..., columnN- список назв стовпців в ній; select statement- будь-яка команда SELECT, що прочитує рядки даних, які повинні бути додані в таблицю.
-
pub id
pub.name
city
state
country
P05
This is Pizza? Press
New York
NY
USA
P06
This is Beer? Press
Toronto
ON
Canada
P07
This is Irany? Press
London
NULL
United Kindom
P08
This is Fame? Press
Los Angeles
CA
USA
Кількість стовпців в результаті виконання команди select statement повинне відповідати кількості стовпців в table або списку стовпців. СУБД ігнорує назви стовпців при виконанні команди selееt statement і замість них використовує положення в стовпці. Для першого стовпця в table або column1 використовується перший стовпець select statement в процесі виконання і т.д. Пропущеному стовпцю задається значення за умовчанням або NULL.
Команда-приклад додасть в table декілька рядків.
В решті прикладів цього розділу використовується таблиця new publishers, яку ми створили, щоб показати, як працює команда INSERT SELECT. Таблиця new publishers має ту ж структуру, що і publishers, і використовується тільки як джерела нових рядків, але не змінюється в результаті виконання команди INSERT.
Лістинг 4.5. додає рядки з інформацією про видання Лос-Анджелеса з таблиці nеw publishers в publishers. Ми пропустили список стовпців, тому СУБД буде використовувати положення стовпців в таблиці publishers для додавання значень. Команда лістинга 4.5 додасть в publishers один рядок. Лістинг 4.6 додає рядки з інформацією про неамериканські видання з таблиці new publishers в publishers. Назви стовпців в пунктах INSERT і SELECT тут однакові, проте це необов'язково, оскільки СУБД ігнорує назви стовпців, лічені командою SELECT, і використовує їх положення. Ця команда додасть в publishers два рядки. Речення SELECT може рахувати порожній результат (нуль рядків). Лістинг 4.7 додає рядки з інформацією про видання XXX з таблиці new publishers в publishers. Ми можемо використовувати SELECT* замість списку назв стовпців, оскільки new publishers і publishers мають однакову структуру. Команда з лістинга 4.7 не додасть в publishers жодні рядки, оскільки видавництва з назвою XXX в таблиці new publishers немає.
Лістинг 4.5. Додамо, з рядки з інформацією про видання Лос-Анджелеса з таблиці new publishers в publishers.
INSERT INTO publishers
SELECT
Pub_id,
Pub_name,
City,
State,
country
FROM new publishers
WHERE city = 'Los Angeles';
Лістинг 4.6. Додати рядки з інформацією про неамериканські видання з таблиці new publishers в publishers.
INSERT INTO publishers
(
pub_id,
pub_name,
city,
state,
country)
SELECT
Pub_id,
Pub_name,
City,
state,
country
FROM new publishers
WHERE country <> 'USA';
Лістинг 4.7. Додати рядки з інформацією про видання XXX з таблиці new publishers в publishers.
INSERT INTO publishers(
Pub_id,
Pub_name,
city,
state,
country)
SELECT *
FROM new publishers
WHERE pub name = 'XXX';
В SQL ключове слово INTO є опцією для команди insert. Microsoft Access, Oracle і PostgreSQL обов'язково вимагають введення INTO.
Процес додавання рядків в таблицю і перший раз називається заповненням таблиці.
Ви можете використовувати команду SELECT INTO, щоб створити нову таблицю і заповнити її рядками, які поверне команда SELECT.
Якщо ви бажаєте бути особливо уважними при додаванні рядків, можете перевірити команду INSERT за допомогою тимчасової таблиці.
Ви також можете додавати рядки з ними допомогою представлень
Якщо ви застосовуєте транзакції, скористайтеся командою COMMIT після команди INSERT, щоб зробити зміни постійними.
Якщо table1 і table2 мають однакову структуру, можете вставити всі рядки з table2 в table1 Для цього введіть:
INSERT INTO table1
SELECT * FROM table2;