Головна
Лекції
Завдання
Побажання
Гостьова
Лінки
Лекція №7 Лекція №5  Скачати лекцію

Access 6

Застосування мови SQL в середовищі Access 2002

SQL – це потужна мова програмування, орієнтована на застосування в базах даних. Інколи доцільно звертатись до засобів SQL напряму. За допомогою SQL можна заствити програму виконуватись на сітьовому сервері (а не на станції користувача), тобто з більшою швидкістю. Другий важливий фактор –зручність використання. Мова SQL була створена спеціально для роботи з базами даних. Тому часто простіше написати один вираз SQL замість цілого блоку VBA-коду, який виконуватиме ті ж самі дії.

Використання виразу SELECT

Команда Selectодин з найпопулярніших та гнучких виразів мови SQL. Select повертає набір даних, відібраних на основі критеріїв фільтрації та впорядкованих у відповідності із заданими умовами. В межах команди Select може одночасно виконуватись декілька операцій – фільтрація, групування, сортування та обчислення.

Проста вибірка.

Select СписокПолів From ІмяТаблиці

В якості параметра СписокПолів припустимо застосовувати символ зірочки (*), який вказує, що у вибырку повинны бути включені всі поля таблиці.

Створимо базу даних з двох таблиць:

Музика (код –лічильник, виконавець- text(50), альбом - text(50), формат - text(50), видавець- text(50))

Записи(код –лічильник, музика_код –числовий, назва_треку - text(50), довжина_треку –date/time)

SELECT * FRom Музика

Фільтрація даних за допомогою Where.

Пропозиція Where використовується у тих випадках, коли необхідно обмежити кількість записів, що повертаються запитом. Синтаксис:

SELECT СписокПолів

FROM Ім’яТаблиці

WHERE ІмяПоля Оператор Значення [OR|AND ІмяПоля Оператор Значення…]

Приклад використання команди Select

SELECT * FROM Музика WHERE Виконавець=’Queen’

SELECT * FROM Музика Where Видавець= ‘Elektra’ AND Виконавець= ‘Scorpions’

SELECT * FROM Музика WHERe Виконавець LIKE ’Be*’

SELECT * FROM Музика WHERE Виконавець NOT LIKE ’Be*’

SELECT * FROM Музика WHERE Виконавець Between’Queen’ AND ‘Scorpions’

Оператор IN. Дозволяє задати набір шуканих значень поля таблиці. Синтаксис:

Select СписокПолів

From Ім’яТаблиці

Where ІмяПоля In (Значення1, Значення2,…)

Select * From Музика Where Видавець IN (‘Elektra’,’Polygram’,’Capitol’)

Сортування даних. Конструкція виразу Select дозволяє впорядковувати набори даних, що повертаються, за зменшенням або збільшенням значень полів. Цій меті відповідає Order by, після якого вказується один або кілька виразів виду ІмяПоля[ПорядокСортування], розділених символом коми. В якості параметра ПорядокСортування припустимо використовувати одне із службових слів –ASC або DESC.

SELECT * FROM Музика ORDER BY виконавець DESC

 

Пропозиція Where та вкладені команди SELECT

В якості аргумента Значення пропозиції WHERE може виступати результат виконання вкладеної команди SELECT. Вкладена команда SELECT виступає в ролі правого операнду пропозиції WHERE.

SELECT * FROM Музика WHERE Назва_Альбому IN (SELECT Назва_Треку FROM Треки)

Зовнішній запит має на увазі повернення всіх полів таких записів таблиці Музика, в полі Назва_Альбому, яких міститься будь-яке із значень, отриманих в результаті вкладеного запиту.

SELECT * FROM Музика, Треки WHERE Музика.Код=Треки.Музика_код AND (Музика.Назва_Альбому LIKE Трек.Назва_Треку)

Групування стовпчиків. Пропозиція Group By використовується для групування даних в стовпчиках. Групуючи дані по визначених стовпчиках набору, що повертаються, слід включити в групу або всі стовпчики набору даних, або ті з них, які використовубтьс в якості аргументів групових операцій. Пропозиція Group By застосовується у випадках, коли необхідно отримати тільки один рядок з групи рядків, у визначених стовпчиках яких є ідентичні значення. Наприклад, щоб отримати перелік альбомів по таблиці Треки

SELECT Музика.Код FROM Треки GROUP BY Музика.Код

Наступний запис обчислює кількість записів кожного музичного альбому:

SELECT Музика.Код COUNT (Музика.Код )FROM Треки GROUP BY Музика.Код

Використання пропозиції HAVING. Після пропозиції HAVING вказується логічний вираз, який визначає, які з вже відібраних та згрупованих записів будуть відображатися в результуючому наборі даних. Від пропозиції WHERE відрізняється тим, що записи відбираються вже після групування. Іншими словами пропозиція WHERE використовується для початкового відбору записів у тимчасовий набір даних, а пропозиція HAVING задає, які аззгрупованих записів тимчасового набору потраплять у підсумкову вибірку. Пропозицію HAVING можна використовувати тільки у випадку використання пропозиції GROUP BY, і воно повинно розташовуватись безпосередньо за ним.

SELECT * FROM Музика WHERE Код=

( SELECT CDATE.Код FROM Треки GROUP BY Музика.Код

HAVING CDATE(SUM(Довжина_треку))> CDATE(“0:6:0”)

В результаті виконання запиту буде повернено набір записів таблиці Музика, для кожної з яких існує зовнішній ключ із таблиці Треки та виконується умова підлеглого запиту

Обєднання таблиць. Процес та результат збору таких даних про деякий обєкт, які зберігаються в декількох таблицях, називають обєднанням таблиць. Обєднання відбувається за допомогою оператора JOIN,який працює з двома аргументами –таблицями: першу називають –лівою, а другу – правою. Існує три різновиди конструкції JOIN – INNER JOIN, LEFT JOIN, RIGHT JOIN.

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

SELECT * FROM Музика INNER JOIN Треки ON Музика.Код = Треки.Музика_код

Дана команда повертає всі записи таблиць Музика та Треки, для яких Музика.Код = Треки.Музика_код. Вона рівносильна виразу

SELECT * FROM Музика, Треки WHERE Музика.Код=Треки.Музика_код

Оператор LEFT JOIN застосовується в тих випадках, коли слід повернути всі записи лівої таблиці і тільки ті рядки правої, значення полів якої відповідають даним лівої таблиці. Тому в полях правої таблиці повертаємої множини даних допускаються значення null.

SELECT * FROM Музика LEFT JOIN Треки ON Музика.Код = Треки.Музика_код

В результаті виконання вказаного запиту будуть повернені всі записи таблиці Музика – навіть ті, для яких, в таблиці Треки немає відповідностей. В останньому випадку поля результату, що відносяться до таблиці Треки, залишаться порожніми.

Оператор RIGHT JOIN прямо протилежний оператору LEFT JOIN. При використанні RIGHT JOIN набір даних, що повертається буде містити всі записи правої таблиці та тільки ті рядки ліпої таблиці, для яких є відповідні у правій таблиці.

SELECT * FROM Музика RIGHT JOIN Треки ON Музика.Код = Треки.Музика_код

Результат виконання запиту буде містити всі записи таблиці Треки , включаючи ті , для яких відсутні ключові значення в таблиці Музика.

Обєднання запитів.

Лекція №7 Лекція №5  Скачати лекцію

 

 

Hosted by uCoz