МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Лабораторна робота №4
з дисципліни " Організація баз даних "
на тему " Будинок депутатів "
Львів – 2014
Тема роботи: Створення запитів до бази даних в режимі SQL.
Мета роботи: Навчитися писати запити до бази даних мовою SQL. Познайомитися із запитами модифікації бази даних.
Завдання:
Написати мовою SQL запити до створених у першій лабораторній роботі таблиць бази даних OpenOffice.org Base. Запити мають мати певний зміст з вибраної предметної галузі (наприклад, запит для визначення найкращого студента за певний проміжок часу або запит для підрахунку рейтингу студенів і т.п.).
Мінімальна кількість SELECT запитів – 5.
Запити не мають бути однотипними.
Використання у запитах наступних ключових слів: AS, SUM, COUNT, GROUP BY, HAVING, DISTINCT, IS EMPTY, LIKE, BETWEEN, IN, OUTER JOIN, оператори =, <>, >, <, >=, <=.
Додатково розробити запити модифікації бази даних по кожному з наступних ключових слів: CREATE TABLE, INSERT INTO, DROP, DELETE, UPDATE, APPEND.
Хід роботи
Запити використовуються для вибору та маніпулювання даними. Запити можуть об’єднувати дані з багатьох таблиць та надавати доступ до цих даних формам і звітам. Для створення запитів в базі даних OpenOffice.org Base необхідно відкрити вікно запитів (Queries window). Для цього необхідно натиснути на “Queries” кнопку у вікні бази даних.
Рис. 1. Вікно запитів.
Створення запиту в режимі SQL
Коли ви створюєте запит в режимі SQL вам необхідно:
Відкрити вікно запитів (Query window). Для цього необхідно натиснути на “Queries” кнопку у вікні бази даних.
Вибрати задачу Create Query in SQL View.
Написати запит на мові SQL.
Запустити запит на виконання. Для цього треба натиснути F5
Рис. 1. Простий запит на мові SQL.
Якщо необхідно лише вивести тільки окремі поля, запит вибору набуде вигляду на рис. 2. Для сортування вибраних даних на мові SQL можна застосувати ключове слово ORDER BY (рис. 3).
Рис. 2. Запит вибірки коду замовлення прізвища ім’я та номеру угоди клієнтів.
Рис. 3. Запит вибірки з сортуванням по прізвищу.
В запитах можуть використовуватися агрегуючі функції, наприклад, SUM, COUNT та інші. Приклад такого запиту, що визначає кількість однофамільців показано на рис. 4-5.
SELECT "Ім'я" AS "Ім'я" FROM "Продавці (Співробітники)" Where "Ім'я" > 'олег'
SELECT COUNT( "Номер_угоди" ) FROM "Клієнт (Замовник)"
SELECT sum( "Номер_угоди" ) FROM "Клієнт (Замовник)"
SELECT "Номер_угоди", MAX( "Код_замовника" ) FROM "Клієнт (Замовник)" GROUP BY "Номер_угоди";
SELECT "Номер_угоди", MAX( "Код_замовника" ) FROM "Клієнт (Замовник)" GROUP BY "Номер_угоди" HAVING "Номер_угоди" >= '4';
SELECT DISTINCT "Номер_угоди" FROM "Клієнт (Замовник)"
SELECT * FROM "Клієнт (Замовник)" WHERE "По-батькові" IS NULL
SELECT * FROM "Клієнт (Замовник)" WHERE "Ім'я" LIKE 'В%'
SELECT * FROM "Клієнт (Замовник)" WHERE "Номер_угоди" BETWEEN 2 AND 3
SELECT * FROM "Клієнт (Замовник)" WHERE "Прізвище " IN ('Мороз', 'Сапрон')
SELECT "Продавці (Співробітники)".*, "Мережа магазинів (Бриг)"."Код_Магазину" FROM "Продавці (Співробітники)", "Мережа магазинів (Бриг)" WHERE "Продавці (Співробітники)"."Магазин" = "Мережа магазинів (Бриг)"."Код_Магазину"
Можливі наступні запити модифікації бази даних: CREATE TABLE, INSERT INTO, UPDATE, DELETE, DROP.
CREATE TABLE t1 ("r1" integer, "r2" NUMERIC, "r3" DATE)
INSERT INTO " Продавці (Співробітники)" ("Прізвище", "Ім'я","По-батькові") VALUES ('Вітренко','Наталя','Володимирівна')
DROP TABLE "T1"
DELETE FROM " Продавці (Співробітники)" WHERE "Прізвище" = 'Вітренко'
Висновок: на даній лабораторній роботі я навчилась писати запити до бази даних мовою SQL. Також під час виконання даної лабораторної роботи мною було створено 12 не однотипних запитів із використанням наступних ключових слів - AS, SUM, COUNT, GROUP BY, HAVING, DISTINCT, IS EMPTY, LIKE, BETWEEN, IN, OUTER JOIN, CREATE TABLE, INSERT INTO, DROP, DELETE, UPDATE.