Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
!!ЛЕКЦІЇ_від_23.04.2013.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
436.46 Кб
Скачать

Лекція 13. Особливі конструкції команди select

План лекції

  1. Речення WHERE

  2. Речення GROUP BY

  3. Речення HAVING

  4. Речення ORDER BY

1. Речення where

Указує, на які записи з таблиць, перелічених у реченні FROM. Синтаксис:

SELECT список_полів FROM вираз_таблиці WHERE критерії

Оператор SELECT, який містить речення WHERE, складається з таких частин:

Частина

Опис

список_полів

Назва поля або полів, які потрібно отримати разом із псевдонімами полів, предикатами вибору (ALL, DISTINCT, DISTINCTROW або TOP) або іншими параметрами оператора SELECT.

вираз_таблиці

Ім’я таблиці або таблиць, із яких отримано дані.

критерії

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

Речення WHERE може містити до 40 виразів, зв’язаних логічними операторами, наприклад, І та АБО.

Під час введення назви поля, яка містить пробіл або знаки пунктуації, слід виділити назву квадратними дужками ([ ]). Наприклад, таблиця відомостей про клієнта може містити відомості про певних клієнтів:

SELECT [Customer’s Favorite Restarant]

Під час указання аргумента критерії літерали дати мають бути у форматі США, навіть за умови використання версії ядра бази даних Microsoft Access, відмінної від США. Наприклад, 10 травня 1996 р. в Україні записується 10.05.96, а в США — 5/10/96. Переконайтеся, що літерал дати виділено символами номера (#), як показано у прикладах, наведених нижче.

Щоб знайти записи, датовані 10 травня 1996 р. в українській базі даних, слід використати такий SQL-оператор:

SELECT * FROM Orders WHERE ShippedDate = #5/10/96#;

Можна також використати функцію DateValue, яка залежить від міжнародних параметрів, встановлених у Microsoft Windows®. Наприклад, цей код використовується для США:

SELECT * FROM Orders WHERE ShippedDate = DateValue('5/10/96');

А цей код використовується в Україні:

SELECT * FROM Orders WHERE ShippedDate = DateValue('10.5.1996');

2. Речення group by

Об'єднує записи з однаковими значеннями у визначеному списку полів в один запис. Зведене значення створюється для кожного запису, якщо оператор містить агрегатну функцію SQL, наприклад, Sum або Count.

Синтаксис

SELECT список_полів FROM таблиця WHERE критерії [GROUP BY список_полів_групи]

Оператор SELECT, який містить речення GROUP BY, складається з таких частин:

Частина

Опис

список_полів

Ім'я поля або полів, які потрібно отримати разом із будь-якими псевдонімами полів, агрегатними функціями SQL, предикатами вибору (ALL, DISTINCT, DISTINCTROW або TOP) або іншими параметрами оператора SELECT.

таблиця

Ім'я таблиці, з якої завантажуються записи.

критерії

Критерії вибору. Якщо оператор містить речення WHERE, після застосування його умов до записів обробник баз даних Microsoft Access згрупує значення.

список_полів_групи

Імена полів (не більше 10), які використовуються для групування записів. Порядок імен полів у списку_полів_групи визначає рівні групування — від найвищого до найнижчого.

Речення GROUP BY не є обов'язковим.

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

Значення Null у полях GROUP BY групуються та не пропускаються. Однак, значення Null не обчислюються жодною агрегатною функцією SQL.

Речення WHERE використовується для виключення рядків, які не потрібно групувати, а речення HAVING використовується для фільтрування записів після їх групування.

Усі поля у списку полів SELECT мають міститися в реченні GROUP BY або бути аргументами агрегатної функції SQL.