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

Використання замінників імен таблиць

Доволі незручно декілька раз набирати імена таблиць в одній команді - імена можуть бути довгими і повторюватися багато раз в реченнях SELECT, WHERE, ORDER BY. Щоб уникнути цього, можна використовувати тимчасові синоніми (чи замінники) імен таблиць, які задаються в команді FROM і діють тільки в даній команді.

Замінники імен таблиць (які також називаються табличними мітками) слід також задавати в реченні SELECT. Це підвищує ефективність виконання запиту, спрощуючи його ............. дію.

Попередній приклад можна записати в наступному вигляді.

SELECT a Head CITY, в name

FROM PROVINCE a, REGION в

WHERE а. id, в. PROVINCE_ID;

Замінники можуть мати довжину до 30 символів, але чим вони коротші, тим краще. Якщо задаються замінники імен таблиць в реченні FROM, то в реченні SELECT в якості префікса і імен стовбців повинен стояти власне цей замінник, а не ім’я таблиці.

Композиція (добуток)

Коли умову з’єднання задано ...................., або вона взагалі відсутня, то результатом з’єднання буде добуток двох таблиць. Коли кожна стрічка однієї таблиці з’єднується з кожною стрічкою другої таблиці і всі отримані результати поміщаються в таблицю результатів.

З’єднання не по рівності.

З’єднання таблиць можна проводити і не по рівності. Це відбувається в тих випадках, коли значення поля однієї таблиці однієї таблиці потрапляє в діапазон значень іншої. В нашому випадку з’єднання може відбуватися на базі оператора BETWEEN, або..>=....and<=.

Правила для з’єднання таблиць

Щоб з’єднати три таблиці необхідно задати дві умови з’єднання. Для того, щоб з’єднанти чотири таблиці необхідно задати як мінімум три з’єднуючі умови.

Загальне правило просте:

Кількість з’єднуючтих таблиць мінус один = мінімальне число умов з’єднання.

Це правило може не працювати, якщо у вашій таблиці є ...................

(який складається з декількох полів) первинний ключ (PRIMARY NEY), однозначно індетифікуючий кожен запис.

Загальний синтаксис команди SELECT, який містить умови з’єднання таблиць.

SELECT [DISTING] {[таблиця]. * |вираз [замінник], .......}.

FROM таблиця [замінник],.......

[WHERE умова з’єднання]

[AND умова настрічки]

[Or умова настрічки ]

[GROUP BY {вираз, стовбець Y, ....}]

[HAVING критерій відбору груп]

[ORDER BY {вираз/стовбець}[asc/desl] ]

Вправа до лр №4

1. Знайти мінімальну і максимальну дати введення даних в таблицю REGION.

2. Визначити мінімальну і максимальну дати введення інформації в таблицю REGION по кожній з областей.

3. визначити скільки міст є в області, яка задається при виконанні команди. В якості результату видати тільки цифру.

4. Знайти області, в яких кількість міст і назви яких починаються на букву ‘С’ перевищує 5.

5. перевірити чи дійсно всі міста Дніпетровської області мають унікальний код.

6. Виведіть назву компанії, область і місто, її розташування для всіх компаній з датою регістрації і після 01/01/96 і 15/01/97.

7. Видати кількість підприємств у місті CKOLE, Львівської області.

8. видати кількість підприємств по районах Львівської області без міста Львова.

Відповіді до вправ лр №4

1. SELECT MIN (IN_DATE), MAX (IN_DATE)

FROM REGION;

2. SELECT MIN (IN_DATE), MAX (IN_DATE)

FROM REGION;

GROUP BY DROVINCE_NAME;

3. SELECT COUNT (NAME)

FROM REGION;

WHERE PROVINCE_NAME = ‘& ANYNAME’;

4. SELECT PROVINCE_NAME, COUNT(NAME)

FROM REGION;

WHERE NAME LIKE ‘С%’

GROUPBY DROVINCE_NAME

HAVING COUNT(NAME) >5

5. SELECT COUNT (NAME)

FROM REGION;

WHERE PROVINCE_NAME = ‘ДНЕПРОПЕТРОВСКАЯ’

GROUP BY ID

HAVING COUNT (*) >1;

6. SELECT а NAME, в. NAME, с. NAME

FROM B. INFOa, PROVINCEb,REGIONc

WHERE PROVINCE= b. і d

AND PROVINCE = c. PROVINCE_ID

AND REGION = c. ID

AND DATE REG BETWEEN ‘01/01/96’

AND ‘15/01/96’

7. SELECT (а name), в. name

FROM B_INFOa, REGIONb

WHERE PROVINCE= b. і d

AND PROVINCE = c. PROVINCE_ID

AND b. name = ‘СКОЛЕ’

8. SELECT в. name, COUNT(*)

FROM B_INFO REGION

WHERE PROVINCE= b. PROVINCE_ID

AND REGION = b. ID

AND b. PROVINCE_NAME = ‘ ЛЬВОВСКАЯ’

GROUP BY b. PROVINCE_NAME , b. NAME

ORDER BY b. NAME;

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