Смекни!
smekni.com

Запити фільтри використання та функціональне призначення (стр. 4 из 4)

SELECT розмови.дата, розмови.місто FROM розмови INNER JOIN телефони ON розмови.номер = телефони.номер WHERE ((телефони.власник)="Петров");

Для тих, хто не вивчав англійський, повідомимо, що слово SELECT означає ВИБРАТИ, FROM — З, INNER JOIN – ВНУТРІШНЄ З'ЄДНАННЯ, ON — у даному випадку ПО, WHERE — де.

Одержавши такий запит, машина розуміє, що їй потрібно з'єднати відносини розмови і телефони за умовою розмови.номер = телефони.номер, вибрати з таблиці, що вийшла, ті рядки, де значення атрибута телефони.власник є “Петров”, а потім видалити всі стовпці, крім стовпців розмови.дата і розмови.місто.

Загальний вид найпростішого варіанта запиту мовою SQL такий:

SELECT атрибут, атрибут, … , атрибут FROM ім'я таблиці [ТИП З'ЄДНАННЯ ім'я таблиці, що приєднується, ON ім'я атрибута першої таблиці, що з'єднується, = ім'я атрибута другої таблиці, що з'єднується, [ім'я наступного атрибута першої таблиці, що з'єднується, = ім'я наступного атрибута другої таблиці, що з'єднується…,ім'я наступного атрибута першої таблиці, що з'єднується, = ім'я наступного атрибута другої таблиці, що з'єднується,]] WHERE (Фільтр);

Взагалі ж, мову SQL легко було б українізувати.

Відзначимо одну особливість. Хоча ми переводимо SELECT як ВИБРАТИ (і, власне кажучи, іншої альтернативи немає), що наводить на думку, що ця деяка дія над таблицями, насправді все це вираження можна розглядати як позначення результату цієї дії. Тому було б природніше почати формулювання запиту словом ВИБІРКА.

Який же звідси випливає висновок? Дуже простій: раз запит на вибірку це одночасно і результат, тобто знову таблиця, те можна після FROM замість імені таблиці писати знову запит. А можна з'єднати кілька таблиць, оскільки з'єднання пари таблиць – це знову таблиця.

От приклад. Нехай у нас мається три таблиці: в одній зазначене, код предмета і його найменування, у другий – код предмета і код учителя, що даний предмет веде, у третьої код учителя, його Прізвище, Ім'я і По батькові. Запит на те, як кличуть учителя, що викладає алгебру може виглядати так:

SELECT Учителя. Ім'я, Учителя. По батькові, Учителя. Прізвище

FROM (Предмети INNER JOIN [Предмет-Вчитель] ON Предмети.Код = [Предмет-Вчитель].[код предмета]) INNER JOIN [Учителя] ON [Предмет-Вчитель].[код учителя] = Учителя.Код

WHERE (((Предмети. Найменування)="алгебра"));

Потрібно відзначити, що в Access запити можна задавати різними способами і зовсім не обов'язково формулювати їх на SQL. Наприклад, ви можете задавати їх на бланку QBE.