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

Оператор переіменування

SELECT <атрибут> AS <назва колонки>

FROM <таблиця>

Приклад 3

SELECT ТАБНОМ AS Табельний номер,прізвище, м'я,по батькові

FROM КАДРИ

Одержимо внаслідок виконання запиту таблицю ТАБНОМ:

ТАБНОМ

Табельний номер

Прізвище

Ім'я

По батькові

2004

Романов

Анатолій

Миколайович

2009

Волков

Сергій

Іванович

2015

Алферова

Зоя

Василівна

3610

Купріянов

Валерій

Іванович

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

SELECT <перелік атрибутів> (AS)| *>

FROM <таблиця>

WHERE <текст порівняння: <,<=,<>,=...>

Приклад 4

SELECT*

FROM КАДРИ

WHERE табельний номер <2015

Результатом виконання запиту буде таблиця :

Цех

Табельний номер

Прізвище

Ім'я

Побатькові

Стать

Рік народження

Оклад

1

2004

Романов

Анатолій

Миколайович

ч

1942

800.00

2

2009

Волков

Сергій

Іванович

ч

1937

700.00

Тепер розглянемо математичні вирази.

SELECT табельний номер, прізвище,ім'я,оклад/25

FROM КАДРИ

Одержимо:

КАДРИ

Табельний номер

Прізвище

Ім'я

2004

2009

2015

3610

Романов

Волков

Алферова

Купріянов

Анатолій

Сергій

Зоя

Валерій

32.00

28.00

30.00

24.00

Ми розраховували середньоденні заробітки, враховуючи, що місяць має 25 робочих днів. Зауважимо, що стовпець із розрахованими значеннями середньоденних заробітків не матиме назви. Щоб назвати новостворюваний стовпець, необхідно використати таку конструкцію запиту:

SELECT табельний номер, прізвище,ім'я, оклад/25 АS середньоденний заробіток

FROM КАДРИ

WHERE оклад /25<30.00

Результатом виконання запиту буде таблиця :

Табельний номер

Прізвище

Ім'я

Середньоденний заробіток

2009

3610

Волков

Купріянов

Сергій

Валерій

28.00

24.00

Треба зауважити, що не можна використовувати ім'я змінної в окремому реченні.

Запит входу (in) можна сконструювати так:

SELECT прізвище

FROM КАДРИ

WHERE Рік народження IN (¢1941¢,¢1942¢)

Одержимо такий результат:

ПРІЗВИЩЕ

Романов

Алферова

Купріянов

Мовою SQL можна конструювати запит з операціями агрегування, до яких відносяться СОUNT (підрахунок),Max, Min, SUM (сума)… для таблиць або для деяких підгруп таблиці.

Конструкція запиту з операціями агрегування така:

SELECT [операція агрегування] (<атрибут>)

FROM <таблиці>

WHERE ** немає груп

Зауважимо,що

СОUNT (атрибут)- обчислює кількість рядків, що містять (атрибут)

СОUNT (*) – обчислює всі рядки (включаючи нулі).

Приклад 5

SELECT SUM (Оклад)

FROM КАДРИ

Одержимо:

2850.00

Але не можна одночасно вибрати агрегати та одиничні значення. Наступна конструкція запиту є недопустимою:

SELECT табельний номер, прізвище, SUM (Оклад)

FROM КАДРИ

Важливою мовою структурованих запитів SQL є конструкція GROUP BY (групувати за):

SELECT <перелік [ атрибут½операція агрегування (<атрибут>)]>

FROM <перелік таблиці (ь)>

[WHERE<умови>]

GROUP BY <перелік атрибутів>

Приклад 6. Нехай є база даних ПОСТАЧАЛЬНИКИ:

Дата поставки

Назва

Ціна за одиницю товару

Кількість поставки

Сума поставки

постачальника

товару

7.11.XX

АТ “Оріон”

відеомагнітофон

800.00

5

4000.00

7.11.XX

АТ “Оріон”

відеоплеєр

600.00

3

1800.00

8.11.XX

ЗАТ “Карпати”

Стіл М100

350.00

2

700.00

9.11.XX

ЗАТ “Карпати”

Стіл М100

350.00

10

3500.00

9.11.XX

АТ “Турбо”

aвтомобіль Lanos

40000.00

2

80000.00

10.11.XX

АТ “Оріон”

відеоплеєр

600.00

2

1200.00

Задано запит для агрегування за групами “Назва постачальника, назва товару” з підрахунком суми поставки по кожній назві товару.

SELECT назва постачальника, назва товару, SUM (Сума поставки)

FROM ПОСТАЧАЛЬНИКИ

GROUP BY назва постачальника, назва товару

Результат запиту буде таким:

Назва

постачальника

товару

АТ “Оріон”

відеомагнітофон

4000.00

АТ “Оріон”

відеоплеєр

3000.00

ЗАТ “Карпати”

Стіл М100

4200.00

АТ “Турбо”

aвтомобіль Lanos

80000.00

І, нарешті, розглянемо конструкцію запиту HAVING (маємо). У загальному випадку такий запит мовою SQL можна записати так:

SELECT<перелік [атрибут½операція агрегування (<атрибут>)]>

FROM <перелік таблиці (ь)>

[ WHERE < умови>]

GROUP BY <перелік атрибутів >

HAVING < умову за групами>

Приклад 7. Необхідно одержати інформацію про поставки товарів однієї назви на суму більшу, ніж 3000.00 грн., в розрізі постачальників (крім постачальника ЗАТ “Карпати”).

Запит до бази даних ПОСТАЧАЛЬНИКИ буде таким:

SELECT назва постачальника, назва товару, SUM (Сума поставки)

FROM ПОСТАЧАЛЬНИКИ

GROUP BY назва постачальника, назва товару

HAVING назва постачальника <> ¢ЗАТ Карпати¢

AND SUM (сума поставки) > 3000.00

Результат запиту буде таким:

Назва

постачальника

товару

АТ “Оріон”

відеомагнітофон

4000.00

АТ “Турбо”

aвтомобіль Lanos

80000.00

Абсолютно неправильною буде конструкція запиту типу:

SELECT назва постачальника, назва товару, SUM (Сума поставки)

FROM ПОСТАЧАЛЬНИКИ

GROUP BY назва постачальника, назва товару

HAVING дата поставки <> ¢8.11.XX¢ ,

оскільки, як вже зазначалося раніше, не можна використовувати ім'я змінної в окремому реченні.

Наведені нами конструкції запитів не охоплюють всього діапазону можливостей мови структурованих запитів SQL, які є значно потужнішими і ширшими, але дають певну уяву про SQL як універсальний інструмент спрощення процедур пошуку даних в БД.

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