Порядок виконання роботи
Ознайомитись із синтаксисом sql-запитів щодо вибірки та пошуку даних
Реалізувати 10 запитів з допомогою sql-запитів, що відображають всі операції реляційної алгебри
Представити результати запитів у вигляді рисунків (screen-shot).
Оформити звіт по виконанні лабораторної роботи.
Оформлення звіту:
Титульний лист.
Мета роботи.
Порядок виконання.
Таблиці та рисунки.
Висновки.
Контрольні питання
Оператор вибірки.
Оператор умови.
Складні запити. Підзапити.
Використання первинних ключів.
Застосування зовнішніх ключів.
Список рекомендованої літератури
В.В. Пасічник, В.А. Резніченко. Організація баз даних та знань. – К:. Видавнича група BHV, 2006. – 384 с.
К.Дж. Дейт. Введение в системы баз данных. Киев, «Вильямс», 2001;
Д. Ульман, Д. Уиндом. Введение в системы баз данных. Москва, Лори, 2000;
М. Грабер. Введение в SQL. Москва, Лори, 1996.
ЛАБОРАТОРНА РОБОТА № 5
ЗАСТОСУВАННЯ ЗАПИТІВ З МАНІПУЛЮВАННЯ ДАНИМИ НА МОВІ SQL.
Мета роботи: маніпулювання даними з допомогоюsql-запитів.
Короткі теоретичні відомості
Мова йтиме про оператори SQL, що дають змогу маніпулювати даними: INSERT, UPDATE і DELETE.
4.3.1. Додавання рядків до таблиці. Оператор INSERT
Оператор INSERT дає змогу вводити дані до БД. Є два різновиди цього оператора:
INSERT...VALUES
INSERT...SELECT
Оператор INSERT...VALUES
Цей оператор дає можливість додати до таблиці один рядок і має такий формат:
INSERT INTO <ім'я таблиці> (<поле 1> [, <поле 2>]...) VALUES (<значення 1> [. <значення 2>]...)
Виконання цього оператора потребує дотримання певних правил:
типи даних, що вставляються, мають узгоджуватися з типами даних відповідних стовпців;
розміри даних мають відповідати розмірам стовпців;
порядок даних у фразі VALUES має відповідати порядку стовпців у фразі INSERT INTO.
Наведемо кілька прикладів.
Багато СКБД дають змогу означувати стовпці із властивістю UNIQUE. В межах таблиці значення такого стовпця мають бути унікальними. Якщо це обмеження порушується, під час додавання рядків можуть виникнути помилки. Зазначимо, що стовпці із властивістю UNIQUE не можуть містити NULL-значень.
Оператор INSERT...SELECT
Цей оператор дає змогу додати до таблиці множину рядків (результат виконання запиту) і, таким чином, дозволяє копіювати інформацію з однієї чи кількох таблиць до іншої. Часто за допомогою оператора INSERT...SELECT дані копіюються до похідних таблиць, що створюються з метою підвищення продуктивності виконання тих чи інших операцій над базою даних. Оператор має такий формат:
INSERT INTO <ім'я таблиці> (<список полів>) SELECT<список полів> FROM<ім'я таблиці>WHERE <умова пошуку>
Вихідні результати стандартного оператора SELECT є вхідними даними для оператора INSERT. Наведемо приклад.
Для оператора INSERT...SELECT мають виконуватися додаткові правила:
оператор SELECT не може вибирати рядок із таблиці, до якої здійснюється додавання;
кількість стовпців у фразі INSERT INTO має збігатися з кількістю стовпців у фразі SELECT;
типи даних стовпців у фразі INSERT INTO мають збігатися з типами даних стовпців у фразі SELECT.
Оператор UPDATE надає можливість змінювати значення у наявних рядках. Його синтаксис такий:
UPDATE <ін'я таблиці> SET <поле 1> = <вираз 1> [, <поле 2> = <вираз 2>]...
[WHERE <умова пошуку>]
Усі рядки таблиці, які задовольняють задану у фразі WHERE умову, змінюються згідно з фразою SET.
Якщо фразу WHERE не задано, то оновлюються всі рядки.
Оператор DELETE дає змогу видаляти рядки таблиці й має такий синтаксис:
DELETE FROM <ім'я таблиці> [WHERE умова]
Залежно від наявності та змісту фрази WHERE можна видалити один рядок, множину рядків, усі рядки або не видалити жодного.
Назвемо кілька особливостей використання оператора DELETE.
Оператор не дає змоги видаляти окремі поля (використовуйте для цього оператор UPDATE), видаляючи рядок повністю.
Застосування оператора DELETE, як і INSERT та UPDATE, може призвести до порушення цілісності бази даних.
Якщо у фразі WHERE використовується вкладений підзапит, то у фразі FROM цього підзапиту не можна зазначати таблицю, з якої видаляються рядки. Це стосується також операторів INSERT та UPDATE.
Оператор видаляє лише рядки таблиці, а не саму таблицю. Для видалення всієї таблиці слід застосувати оператор DROP TABLE.