
Міністерство освіти і науки України
ДЕРЖАВНИЙ УНІВЕРСИТЕТ ТЕЛЕКОМУНІКАЦІЙ
Навчально-науковий інститут заочного і дистанційного навчання
|
|
ЗАТВЕРДЖУЮ |
|
|
Завідуючий ННВЦ |
|
|
_________Т.С. Яковлева |
|
|
“___” __________2014 р. |
|
|
|
|
|
|
І Н С Т Р У К Ц І Я
до лабораторної роботи № 2
на тему: “Cтворення запитів на мові SQL”
з дисципліни: “ Створення та обробка баз даних на ПЕОМ”
для студентів базового напряму “Телекомунікації”
спеціальності “Інформаційні мережі зв’язку”
(гр. ІМЗ-31, ІМЗ-32)
Склала ____________ Кужій Л.І.
Львів-2014
Лабораторна робота № 2
Тема: Cтворення запитів на мові SQL
Мета: Навчитися конструювати запити різних типів на мові SQL: вибирати дані за певними критеріями, перевизначати імена полів, уточнювати поля іменами таблиць.
1 Короткі теоретичні відомості
Мова SQL. Особливість реляційних СУБД полягає у тому, що вони надають множинно-орієнтовану мову маніпулювання базами даних, тобто результатом дії мовного оператора є таблиця, яка містить множину даних. Більшість сучасних реляційних СУБД використовують саме мову SQL.
SQL надає такі можливості:
створювати й видаляти таблиці бази даних, а також змінювати заголовки таблиць;
вставляти, змінювати й видаляти рядки в таблицях;
виконувати пошук даних у багатьох таблицях та впорядковувати результати цього пошуку;
описувати процедури підтримки цілісності;
визначати та змінювати інформацію про захист даних.
Основні конструкції мови, призначені для вибирання даних. Основна конструкція, призначена у мові SQL для вибирання даних, складається з фраз SELECT і FROM. Фраза FROM вказує, з якої таблиці потрібно вибрати дані, а фраза SELECT - які саме атрибути (стовпці) з цієї таблиці мають бути вибрані. Запит
SELECT Назва (поле)
FROM ФАКУЛЬТЕТ (таблиця)
здійснює виведення назв факультетів. Ці дві фрази обов'язково мають бути в будь-якому запиті.
Виведення окремих стовпців. У фразі SELECT можна зазначати список імен стовпців. Передбачається, що результат виведення буде впорядкований за стовпцями відповідно до того, як розташовані імена у фразі:
SELECT Номер, Курс, Кількість
FROM ГРУПА
Виведення всіх стовпців. Якщо необхідно вивести всі стовпці таблиці, то у фразі SELECT використовується символ *:
SELECT *
FROM КАФЕДРА
Неповторювані рядки. Хоча в реляційних відношеннях не має бути повторюваних рядків (дублікатів), у SQL за замовчуванням встановлено, що всі дублікати рядків у таблиці-результаті виводяться. Щоб унаслідок виконання запиту одержати унікальні (неповторювані) значення, потрібно використовувати модифікатор DISTINCT (за замовчуванням застосовується модифікатор ALL). Наприклад, щоб отримати список усіх типів лекцій, і щоб кожен тип виводився лише один раз, потрібно записати:
SELECT DISTINCT Тип
FROM ЛЕКЦІЯ
Без модифікатора DISTINCT ми одержали б список із кількох сотень рядків (його довжина дорівнювала б кількості всіх лекцій). Весь запит можна розмістити в одному рядку.
Перевизначення імен стовпців. Фраза SELECT надає можливість перевизначити імена стовпців кінцевої таблиці. Для цього після імені стовпця вихідної таблиці необхідно зазначити ім'я стовпця кінцевої таблиці. Наприклад, у наведеному запиті перевизначаються імена обох стовпців:
SELECT Назва AS Назва_факультету, Декан AS Декан_факультету
FROM ФАКУЛЬТЕТ
Уточнення імен полів. У фразі SELECT імена стовпців можна уточнювати іменами таблиць. Якщо в поєднуваних таблицях є стовпці, що мають однакові імена, то посилаючись на такий стовпець у запиті, його ім'я потрібно уточнювати іменем таблиці.
SELECT Група.Код_групи, Назва_Групи, Оцінки.Код_групи, ОЦ_Мат
FROM ГРУПА, Оцінки
Умова вибирання. Для запису умови вибирання використовується фраза WHERE. У ній зазначено, якій умові мають відповідати вихідні дані. Алгоритм обробки запиту з фразою WHERE є таким:
вибрати рядок із таблиці;
перевірити його відповідність вказаній умові;
якщо рядок відповідає умові, то вивести значення стовпців, вказаних у фразі SELECT.
Цей запит виводить список усіх професорів вузу:
SELECT Прізвище
FROM ВИКЛАДАЧ
WHERE Посада = "професор"
Вирази, умови та оператори. У мові SQL існує багато різновидів виразів, у яких використовуються дані різних типів — рядки, числа, логічні значення.
Умова — це вираз, що повертає логічне значення — TRUE чи FALSE. Умовні вирази обов'язково використовуються у фразі WHERE, а також можуть застосовуватися в інших фразах, наприклад SELECT. Прикладом умовного виразу є конструкція Посада = <професор>.
Оператори — це конструкції, що використовуються у виразах для означення певних дій над даними. Є кілька типів операторів:
арифметичні, +, -,*,/.
оператори над рядками, Оператор зчеплення рядків ||.
логічні, AN, OR, NOT
теоретико-множинні, UNION, INTERSECT, EXCEPT (або MINUS).
оператори порівняння, >, <, =, <>, >=, <=.
Оператори порівняння, їхнє призначення та приклади наведено в табл. 2.1.
Таблиця 2.1 Оператори порівняння
оператор |
призначення |
Приклад |
= |
Перевірка на рівність |
SELECT * FROM КАФЕДРА WHERE Фонд = 1500 |
!=, <> |
Перевірка на нерівність |
SELECT * FROM КАФЕДРА WHERE Фонд != 1500 |
>, < |
Перевірка, чи одне значення більше або менше іншого |
SELECT * FROM КАФЕДРА WHERE Фонд > 1500 SELECT * FROM КАФЕДРА WHERE Фонд < 1500 |
>=, <= |
Перевірка, чи одне значення не менше або не більше іншого |
SELECT * FROM ФАКУЛЬТЕТ WHERE Фонд >= 1500 SELECT * FROM ФАКУЛЬТЕТ WHERE Фонд <= 1500 |
IN |
Перевірка на належність множині |
SELECT * FROM ВИКЛАДАЧ WHERE Посада IN ("професор"."доцент") SELECT * FROM ВИКЛАДАЧ WHERE Посада IN (SELECT Посада FROM ВИКЛАДАЧ WHERE tel tel="5261815") |
NOT IN |
Еквівалентний !=ALL. Перевірка на неналежність елементу множині |
SELECT * FROM ВИКЛАДАЧ WHERE Посада NOT IN (SELECT Посада FROM ВИКЛАДАЧ WHERE tel =”23456”) |
Уточнення імен стовпців. У фразах SELECT і WHERE імена стовпців можна уточнювати іменами таблиць. Якщо в поєднуваних таблицях є стовпці, що мають однакові імена, то посилаючись на такий стовпець у запиті, його ім'я потрібно уточнювати іменем таблиці.
Стовпці, що обчислюються. У фразі SELECT можна сформувати новий стовпець. У ньому записуватимуться результати обчислення виразу, в якому використовуються значення з інших стовпців таблиць, що з'єднуються. Наведений нижче запит видає дані про всі кафедри факультету інформатики разом з їхніми фондами та інформацією про те, яку частку становить фонд кафедри від загального фонду факультету.
SELECT d.Назва, d.Фонд, (d.Фонд / f.Фонд) * 100
FROM ФАКУЛЬТЕТ f, КАФЕДРА d
WHERE f.F = d.F AND F.Назва = "інформатики"
Використання агрегатних функцій. Агрегатними називаються функції, які обчислюють різні статистичні характеристики. Розглянемо деякі з них:
COUNT – повертає кількість рядків у таблиці
SUM – повертає суму всіх значень у стовпці
AVG – повертає середнє арифметичне всіх значень у стовпці
MAX- повертає найбільше значення у стовпці
MIN - повертає найменше значення у стовпці
Окрім COUNT(*), кожна з цих функцій оперує як аргументом сукупністю значень стовпця певної таблиці та повертає єдине значення.
Приклад запиту: Знайти кількість рядків таблиці Дисципліна
SELECT COUNT(*)
FROM : Дисципліна
Стовпець-аргумент – це стовпець віртуальної таблиці, в якій можуть міститися дані не лише зі стовпця базової таблиці, але і отримані шляхом функціонального перетворення та-або зв’язування символами арифметичних операцій значень з одного або декількох стовпців. Вирази, що визначають стовпець такої таблиці, мають різний рівень складності, але не можуть містити інших агрегатних функцій. Функції можуть входити до складу виразів.