Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KONSPEKT_OPORN_14_.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
291.33 Кб
Скачать

2. Засоби пошуку даних

Вибирання даних. Основна конструкція для вибирання даних, складається з фраз SELECT і FROM. Фраза FROM вказує, з якої таблиці потрібно вибрати дані, а фраза SELECT - які саме атрибути (стовпці) з цієї таблиці мають бути вибрані. Запит

SELECT Назва (поле)

FROM ФАКУЛЬТЕТ (таблиця)

здійснює виведення назв факультетів. Ці дві фрази обов'язково мають бути в будь-якому запиті.

Виведення окремих стовпців. У фразі SELECT можна зазначати список імен стовпців. Передбачається, що результат виведення буде впорядкований за стовпцями відповідно до того, як розташовані імена у фразі:

SELECT Номер, Курс, Кількість

FROM ГРУПА

Виведення всіх стовпців. Якщо необхідно вивести всі стовпці таблиці, то у фразі SELECT використовується символ *:

SELECT *

FROM КАФЕДРА

Неповторювані рядки. У SQL за замовчуванням встановлено, що всі дублікати рядків у таблиці-результаті виводяться. Щоб внаслідок виконання запиту одержати унікальні (неповторювані) значення, потрібно використовувати модифікатор DISTINCT (за замовчуванням застосовується модифікатор ALL). Наприклад, щоб отримати список усіх типів лекцій, і щоб кожен тип виводився лише один раз, потрібно записати:

SELECT DISTINCT Тип (лекції)

FROM ЛЕКЦІЯ

Без модифікатора DISTINCT ми одержали б список із кількох сотень рядків (його довжина дорівнювала б кількості всіх лекцій). Весь запит можна розмістити в одному рядку.

Перевизначення імен стовпців. Фраза SELECT надає можливість перевизначити імена стовпців кінцевої таблиці. Для цього після імені стовпця вихідної таблиці необхідно зазначити ім'я стовпця кінцевої таблиці (з використанням необов'язкової фрази AS). Наприклад, у наведеному запиті перевизначаються імена обох стовпців:

SELECT Назва AS Назва_факультету, Декан AS Декан_факультету

FROM ФАКУЛЬТЕТ

3. Умови вибирання даних

Умова вибирання. Для умови вибирання запису використовується фраза WHERE. У ній зазначено, якій умові мають відповідати вихідні дані. Алгоритм обробки запиту з фразою WHERE:

  • вибрати рядок із таблиці;

  • перевірити його відповідність вказаній умові;

  • якщо рядок відповідає умові, то вивести значення стовпців, вказаних у фразі SELECT.

Цей запит виводить список усіх професорів вузу:

SELECT Прізвище

FROM ВИКЛАДАЧ

WHERE Посада = "професор"

4. Вирази, умови та оператори

У мові SQL існує багато різновидів виразів, у яких використовуються дані різних типів — рядки, числа, логічні значення.

Умова — це вираз, що повертає логічне значення — TRUE чи FALSE. Умовні вирази обов'язково використовуються у фразі WHERE. Прикладом умовного виразу є конструкція Посада = <професор>.

Оператори — це конструкції, що використовуються у виразах для означення певних дій над даними. Є кілька типів операторів:

  • арифметичні, +, -,*,/.

  • оператори над рядками, Оператор зчеплення рядків ||.

  • логічні, AND, 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

Перевірка на належність множині

1. SELECT *

FROM ВИКЛАДАЧ

WHERE Посада IN ("професор","доцент")

2. SELECT *

FROM ВИКЛАДАЧ

WHERE Посада IN

(SELECT Посада FROM ВИКЛАДАЧ WHERE Тел ="5261815")

NOT IN

Еквівалентний !=ALL. Перевірка на неналежність елементу множині

1. SELECT *

FROM ВИКЛАДАЧ

WHERE Посада NOT IN

(SELECT Посада FROM ВИКЛАДАЧ WHERE Тел =”23456”)

ANY,SOME

Використовуються разом із предикатом =, !=, >,<,>=<<= Перевіряють, чи істинний цей предикат хоча б для одного елементу множини, заданої у правій частині

оператора, відносно елементу, заданого в лівій частині

SELECT *

FROM ФАКУЛЬТЕТ

WHERE Фонд = ANY

(SELECT Фонд

FROM ФАКУЛЬТЕТ

WHERE Корпус = 7)

ALL

Використовується разом з предикатом =, ! ~ >, <, <= або >=. Перевіряє, чи істинний цей Предикат для всіх елементів МНОЖИНИ, заданої у правій частиш оператора, відносно елементу заданого в лівій частині

SELECT *

FROM ФАКУЛЬТЕТ

WHERE Фонд >= ALL(1400,3000)

EXISTS

Повертає TRUE, якщо підзапит, до якого застосовується оператор, містить хоча б один рядок

SELECT Назва FROM Факультет

WHERE EXISTS (SELECT * FROM Кафедра WHERE Кафедра.#F = Факультет. #F)

IS

Перевірка на рівність значенню NULL

SELECT Назва FROM Кафедра

WHERE Фонд IS NULL

Розглянемо на прикладах використання цих операторів.

Запит . 1. Визначити назву групи, де кількість студентів становить від 20 до 25 осіб, а також прізвища кураторів, які їм відповідають.

Таблиця ГРУПА

Кодгрупи

НаваГрупи

ЧислоСтудентів

Куратор

Лічильник

Текстовий, 5

Числовий

Текстовий, 30

SELECT НазваГрупи, Куратор

FROM

WHERE ЧислоСтудентів >= 20 AND ЧислоСтудентів <= 25

Запит 2. Визначити прізвища викладачів математики або фізики

Таблиця Дисципліни

КодДисципліни

НазваДисципліни

ПрізВикладача

ІмяПобатькові

Лічильник

Текстовий, 10

Текстовий, 15

Текстовий, 20

SELECT ПрізВикладача

FROM Дисципліни

WHERE НазваДисципліни= “математика” OR НазваДисципліни= “фізика”

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]