Варіанти індивідуальних завдань



№п/п Запити на вибірку даних з умовою
1. Визначити прізвища, ім’я та по-батькові викладачів математики і фізики
2. Створити запит, який виводить на екран прізвища і імена студентів з іменем Роман або Андрій
3. Створити запит, який виводить прізвища, імена студентів, оцінки з математики і фізики, які рівні 5-ти
4. Створити запит, який виводить на екран прізвища кураторів і назви груп, число студентів яких менше 25
5. Визначити прізвища, імена і по-батькові викладачів фізики
6. Створити запит, який виводить імена і прізвища студентів таблиці Студенти, код яких більший від 5-тих
7. Створити запит, який виводить на екран прізвища і імена студентів з іменами Роман або Ольга
8. Створити запит, який виводить коди і назви груп, число студентів яких більше 21
9. Створити запит, який виводить імена і прізвища студентів таблиці Студенти, код яких менший від трьох
10. Визначити прізвища, імена і по-батькові викладачів хімії і фізики
11. Створити запит, який виводить коди груп і їх назви, число студентів яких менше 21
12. Створити запит, який виводить на екран назви груп і кількість студентів, число яких не рівне 25
13. Створити запит для визначення прізвищ викладачів хімії і фізики

 

Інструмент, обладнання прилади

 

Операційна система Windows 2000, сервер СУБД MySQL, монітор mysql, текстовий редактор, інформаційний портал.

 

Порядок виконання роботи

 

1 Отримати допуск до виконання лабораторної роботи, давши відповіді на контрольні запитання вхідного контролю.

2 Розглянути теоретичні положення лабораторної роботи, а також методичні рекомендації.

3 Записати і виконати прості SELECT-запити до власної бази даних використовуючи усі можливості оператора SELECT.

4 Результати виконання лабораторної роботи записати у звіт по роботі і продемонструвати викладачеві.

5 Оформити звіт по роботі, відповісти на питання вихідного контролю, зробити висновки.

 

Питання вихідного контролю

1 Чим повинен закінчуватися кожен SELECT-запит?

2 Чи є важливою послідовність запису виразів в операторі SELECT?

3 Чи можуть в операторі SELECT бути відсутніми вирази FROM і WHERE?

 

 


Лабораторна робота № 11

 

Тема: Побудова складних запитів засобами мови MYSQL

Мета: Навчитися конструювати запити різних типів на мові SQL:вибирати дані за певними критеріями, перевизначати імена полів, уточнювати поля іменами таблиць. Навчитися формувати обчислювальні поля і застосовувати агрегатні функції, які обчислюють різні статистичні характеристики

Короткі теоретичні відомості

Мова 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).

- оператори порівняння, >, <, =, <>, >=, <=.

Оператори порівняння, їхнє призначення та приклади наведено в табл. 1.

Табл. 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 : Дисципліна

Приклад запиту: Знайти кількість рядків таблиці Дисципліна, код дисципліна яких менший 5

SELECT COUNT(*)

FROM : Дисципліна

WHERE Код_дисципліни<5

Стовпець –аргумент – це стовпець віртуальної таблиці, в якій можуть міститися дані не лише зі стовпця базової таблиці, але і отримані шляхом функціонального перетворення та-або зв’язування символами арифметичних операцій значень з одного або декількох стовпців. Вирази, що визначають стовпець такої таблиці, мають різний рівень складності, але не можуть містити інших агрегатних функцій. Функції можуть входити до складу виразів.

AVG(SUM(…)) не можна

AVG(а+в) можна

SUM( фонд)/COUNT(*) можна

Запит. Визначити кількість студентів груп ІТ-220 і ІТ-210

SELECT Sum(Група.ЧислоСтудентів) AS skmrscnm

FROM Група

where НазваГрупи="ТО-220" OR НазваГрупи="ТО-21"

Запит. Визначити середнє арифметичне кількості студентів груп ІТ-220 і ІТ-210

SELECT AVG (Група.ЧислоСтудентів) AS skmrscnm

FROM Група

where НазваГрупи="ТО-220" OR НазваГрупи="ТО-21"

Приклад запиту. Додати до таблиці ТИМЧАСОВА, що має стовпці Назва_факул, Назва_каф, Прізвище__викл, наявні в базі даних відомості про викладачів, а також про кафедри та факультети, де вони працюють.

INSERT INTO ТИМЧАСОВА (Назва_факул, Назва_каф, Прізаище_викл)

SELECT ФАКУЛЬТЕТ.Назва, КАФЕДРА.Назва, ВИКЛАДАЧ.Прізвище

FROМ ФАКУЛЬТЕТ, КАФЕДРА, ВИКЛАДАЧ

WHERE ФАКУЛЬТЕТ.F=КАФЕДРА.F AND КАФЕДРА.D=ВИКЛАДАЧ.D

Питання вхідного контролю

 

1 Що таке агрегатні функції? Перелічіть їх?

2 Яке призначення функції AVG?

3 В якій фразі формуємо стовпець, що обчислюється?

4 Як знаходиться кількість записів в таблиці?

 

Постановка завдання

 

1 Для бази даних Успішність з чотирьох таблиць: Група, Студенти, Дисципліни, Оцінки ввести по 5-10 базу даних.

2 Створити запити на мові SQL для варіанту, що відповідає порядковому номеру студента в журналі.


Дата добавления: 2018-05-13; просмотров: 256; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!