- •Кременчук 2010 Розповсюдження і тиражування без офіційного дозволу Кременчуцького університету економіки інформаційних технологій і управління та авторів заборонено.
- •1 Мета та завдання дисципліни
- •2 Методичні вказівки до виконання лабораторних робіт
- •3 Завдання до лабораторніх робіт
- •3.1 Лабораторна робота № 1
- •1 Теоретичні відомості
- •2 Хід роботи
- •2.1 Створення бази даних
- •2.2 Реєстрація бази даних
- •2.3 Підключення до бази даних
- •2.4 Видалення бази даних
- •2.5 Отримання метаданих
- •2.6 Резервне копіювання і відновлення
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.2 Лабораторна робота № 2
- •1 Теоретичні відомості
- •1.1 Типи даних InterBase
- •2 Хід роботи
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.3 Лабораторна робота № 3
- •1 Теоретичні відомості
- •1.1 Таблиці (Tables)
- •1.2 Індекси
- •2 Хід роботи
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.4 Лабораторна робота № 4
- •1 Теоретичні відомості
- •1.2 Обмеження первинного ключа (Primary key)
- •1.2 Обмеження унікальності (Unique)
- •1.3 Обмеження зовнішнього ключа (Foreign keys)
- •1.4 Контрольні обмеження (Checks)
- •2 Хід роботи
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.5 Лабораторна робота №5.
- •1 Теоретичні відомості
- •1.1 Генератори (Generators)
- •1.2 Бізнес-правила
- •1.3 Тригери (Triggers)
- •2. Хід роботи
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.6 Лабораторна робота №6
- •1 Теоретичні відомості
- •1.1 Додавання нових даних
- •1.2 Видалення існуючих даних
- •1.3 Оновлення існуючих даних
- •2. Хід роботи
- •3. Завдання
- •4. Звіт про виконання роботи
- •5. Контрольні питання
- •3.7 Лабораторна робота №7
- •1 Теоретичні відомості
- •2. Хід роботи
- •3. Завдання
- •4. Звіт про виконання роботи
- •5. Контрольні питання
- •3.8 Лабораторна робота №8
- •1 Теоретичні відомості
- •1.1 Представлення (Views)
- •1.2 Представлення, що модифікуються
- •2 Хід роботи
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.9 Лабораторна робота №9
- •1 Теоретичні відомості
- •1.1 Процедури, що зберігаються (Procedures)
- •1.2 Види процедур, що зберігаються, в InterBase
- •2 Хід роботи
- •3 Завдання
- •4. Звіт про виконання роботи
- •5. Контрольні питання
- •3.10 Лабораторна робота №10
- •1 Теоретичні відомості
- •2 Компоненти доступу до даних
- •3 Хід роботи
- •4. Звіт про виконання роботи
- •5. Контрольні питання
- •3.11 Лабораторна робота №11
- •1 Теоретичні відомості
- •1.2 Компонент tibsql
- •2. Порядок виконання
- •3. Звіт про виконання роботи
- •4. Контрольні питання
- •Перелік рекомендованої літератури
4. Звіт про виконання роботи
Звіт повинен містити опис і результати роботи, що представляються в наступній послідовності:
1. Друк сценарію створення бази даних з коментарями, які повинні містити відомості про автора, дату створення, всіх виконуваних діях і пояснення до введених уручну операторів зміни даних.
2. Зведення про кількість введених в кожну таблицю тестових даних.
3. Перелік файлів, отриманих при виконанні лабораторної роботи з вказівкою їх імен, місця розташування, дати зміни і розмірів (сценарій, база даних, резервна копія бази даних, файл із звітом).
5. Контрольні питання
1. Що таке DML?
2. Які бувають різновиду оператора вставки нових даних?
3. Як видалити з таблиці відразу всі рядки?
4. Як видалити з таблиці лише деякі рядки?
5. Як змінити всі рядки таблиці?
6. Як змінити лише деякі рядки?
7. Написати синтаксис оператора вставки даних.
8. Написати синтаксис оператора видалення даних.
9. Написати синтаксис оператора оновлення даних.
10. Навести приклади операторів INSERT, DELETE, UPDATE.
11. Як додати дані в декілька таблиць?
12. Як видалити дані з декількох таблиць?
13. Як змінити дані в декількох таблицях?
14. Як заборонити зменшувати значення якого-небудь поля, але вирішити його збільшувати?
15. Як дозволити вносити зміни в базу даних лише в певні дні тижня?
16. Як дозволити вносити зміни лише певним користувачам?
3.7 Лабораторна робота №7
Тема роботи: Вибірка даних
Мета роботи: Вивчити оператор вибору даних з таблиць, який використовується в реляційних СУБД. Отримати навики роботи з оператором SELECT в програмі "IB Expert".
1 Теоретичні відомості
У SQL є єдиний оператор, який призначений для вибірки даних з бази даних. Як і оператори INSERT, DELETE і UPDATE він відноситься до підмножини DML.
Нижче приведений майже повний синтаксис оператора SELECT.
SELECT [DISTINCT | ALL]
{* | <величина> [, <величина> ...]}
[INTO : Змінна [, :Змінна ...]]
FROM <tableref> [, <tableref> ...]
[WHERE <умова пошуку>]
[GROUP BY Колонка [, Колонка ...]]
[HAVING <умова пошуку>]
[UNION [ALL] <select_expr>]
[ORDER BY <список сортування>];
<величина> = {Колонка | : Змінна | <константа> | <вираження>
| <функція> | udf ([<величина> [, <величина> ...]]) | NULL | USER}
[AS Псевдонім]
<константа> = Число | 'Рядок'
<вираження> = SQL вираження, що повертає одиничне значення
<функція> =
COUNT (* | [ALL] <величина> | DISTINCT <величина>)
| SUM ([ALL] <величина> | DISTINCT <величина>)
| AVG ([ALL] <величина> | DISTINCT <величина>)
| MAX ([ALL] <величина> | DISTINCT <величина>)
| MIN ([ALL] <величина> | DISTINCT <величина>)
| CAST(<величина> AS <тип даних>)
| UPPER(<величина>)
| GEN_ID(Імя_Генератора, <величина>)
<tableref> = {<joined_table> | table | view
| procedure[(<величина> [, <величина> ...])]} [Псевдонім]
<joined_table> = <tableref> <join_type> JOIN <tableref>
ON <умова пошуку> | (<joined_table>)
<join_type> = [INNER] | {LEFT | RIGHT | FULL } [OUTER]
<умова пошуку> =
<величина> <оператор порівняння>
{<величина> | (<select_one>)}
| <величина> [NOT] BETWEEN <величина> AND <величина>
| <величина> [NOT] LIKE <величина>
| <величина> [NOT] IN
(<величина> [, <величина> ...] | <select_list>)
| <величина> IS [NOT] NULL
|<величина> {>= | <=} <величина>
| <величина> [NOT] {= | < | >} <величина>
| {ALL | SOME | ANY} (<select_list>)
| EXISTS (<select_expr>)
| SINGULAR (<select_expr>)
| <величина> [NOT] CONTAINING <величина>
| <величина> [NOT] STARTING [WITH] <величина>
| (<умова пошуку>)
| NOT <умова пошуку>
| <умова пошуку> OR <умова пошуку>
| <умова пошуку> AND <умова пошуку>
<оператор порівняння> = {= | < | > | <= | >= | !< | !> | <> | !=}
<select_one> = оператор SELECT, що вибирає одну колонку та повертає рівно одне значення
<select_list> = оператор SELECT, що вибирає одну колонку, та повертає нуль або багато значень
<select_expr> = оператор SELECT, що вибирає декілька величин та повертає нуль або багато значень
<список сортування> =
{Колонка | Номер}
[ASC | DESC]
[, <список сортування> ...]
Деякі параметри, що входять в цього оператора, описані в таблиці. 1
Як видно з синтаксису оператора SELECT, обов'язковими є лише слово SELECT з переліком видаваних колонок і слово FROM.
Приклад простого оператора SELECT:
Видати перелік всіх службовців:
SELECT * FROM Employee;
Таблиця 1 - Опис параметрів оператора SELECT
Параметр
|
Опис
|
DISTINCT | ALL
|
DISTINCT – запобігає дублюванню даних, які витягуватимуть. ALL (за умовчанням) – приведе до витягання всіх даних |
{* | <величина> [, <величина> ...]}
|
Зірочка (*) означає, що треба витягувати всі колонки з вказаних таблиць. <величина> [, <величина> ...] – витягує список вказаних колонок, змінних або виразів |
INTO :Змінна [, :Змінна ...]
|
Використовується лише в тригерах і процедурах, що зберігаються, для операторів SELECT, що повертають не більш за один рядок. Вказується список змінних, в які витягуються величини |
FROM <tableref> [, <tableref> ...]
|
Вказує список таблиць, переглядів і процедур, що зберігаються, з яких витягуються дані. Список може включати з'єднання і з'єднання можуть бути вкладеними |
table |
Ім'я що існує в базі даних таблиці |
view |
Ім'я що існує базі даних перегляду |
procedure
|
Ім'я існуючої процедури, що зберігається, призначеної для використання в операторові SELECT |
Псевдонім
|
Коротке альтернативне ім'я для таблиці, перегляду або колонки. Після опису в <tableref>, псевдонім може використовуватися для заслань на таблицю або перегляд |
join_type |
Задає типа з'єднання, яке може бути внутрішнім або зовнішнім |
Нижче приведено декілька спрощених варіантів синтаксису оператора SELECT, що допомагають навчитися складати прості запити.
Спрощений синтаксис внутрішнього з'єднання (стандарт SQL-92):
SELECT Колонка [, Колонка ...] | *
FROM <tableref_left> [INNER] JOIN <tableref_right>
[ON <умова пошуку>]
[WHERE <умова пошуку>];
Спрощений синтаксис зовнішнього з'єднання:
SELECT Колонка [, Колонка ...] | *
FROM <tableref_left>
{LEFT | RIGHT | FULL} [OUTER] JOIN
<tableref_right>
[ON <умова пошуку>]
[WHERE <умова пошуку>];
Спрощений синтаксис використання підзапиту:
SELECT [DISTINCT] Колонка [, Колонка ...]
FROM <tableref> [, <tableref> ...]
WHERE
{expression {[NOT] IN | <оператор порівняння>}
| [NOT] EXISTS
}
(SELECT [DISTINCT] Колонка [, Колонка ...]
FROM <tableref> [, <tableref> ...]
WHERE <умова пошуку>
);
