Мова запитів складається з однієї команди SELECT. Вона використовується спільно з безліччю опцій і пропозицій.
Синтаксис найпростішої форми оператора SELECT:
- Імена полів у списку розділяються через кому;
- Для вибірки всіх полів використовується символ підстановки (*);
- Опція ALL (задана за замовчуванням) означає, що результат вибірки буде містити всі записи, включаючи дублюють один одного;
- При використанні опції DISTINCT результат не буде містити дублюючих рядків;
- Якщо імена полів містять пробіл, вони полягають в квадратні дужки.
Умови при вибірки даних задаються за допомогою пропозиції WHERE.
Оператори порівняння: =.>, =, <=. p="">
- BETWEEN ... AND застосовується для відбору записів, в яких значення поля знаходиться всередині заданого діапазону;
- IN застосовується для вибірки записів, в яких значення деякого поля відповідає хоча б одній із значень заданого списку;
- LIKE застосовується для порівняння значення поля зі значенням, заданим за допомогою шаблонів.
- AND - для кожного запису, що включається в результат повинні виконуватися всі задані обмеження;
- OR - запис включається в результуючу вибірку в разі виконання хоча б одного з заданих обмежень;
- При використанні операторів об'єднання кожне логічне вираз полягає в дужки.
Що б не робити зайвих запитів до бази даних, використовуйте змінні ORDER BY і суфікса.
Для впорядкування даних у вибірці використовується пропозицію ORDER BY. синтаксис:
- ASC - по зростанню;
- DESC - по зменшенню;
- Замість імені поля, можна використовувати порядковий номер поля в списку після слова SELECT.
Псевдоніми - змінені імена полів. Застосовуються при завданні обчислюваних полів. Ім'я користувача поміщається після імені поля або після обчислюється пропозиції через ключове поле AS: SELECT [Код товару], Замовлено, Продано, Ціна, Ціна * Продано AS [Сума продажу]
Угруповання записів - об'єднання записів відповідно до значень деякого заданого поля. Пропозиція GROUP BY. Спільно з ним використовуються функції агрегування. У цьому випадку вони застосовуються для обчислення підсумкових значень за окремими групами даних.
Використання обчислюваних полів
На підставі даних таблиці «Продажі» обчисліть для кожного товару суму грошей, отриманий-них за проданий товар (добуток ціни на кількість проданого товару), і суму, на яку замовлено товарів (добуток ціни на кількість замовлений-ного товару), а також різницю між ними:
Задайте псевдонім-ми для обчислюваних полів в попередньому запиті.
У таблиці «Продажі» підрахуйте кількість за-пісей в поле «Продано», мінімальну та максимальну кількість проданих товарів, загальну суму проданих товарів і середнє значення проданих товарів.
Підрахуйте кількість покупок товарів, зроблених кожним з клієнтів.
У попередньому за-просі виберіть тільки тих клієнтів, які зробили за один раз більше 10 покупок, і Упорядкуйте результати вибірки в порядку зростання:
Мова SQL дозволяє отримати дані з декількох таблиць. При цьому виконується операція з'єднання. Способи з'єднання: з'єднання рівності, з'єднання нерівності, зовнішні з'єднання. Для завдання виду з'єднання використовується пропозицію WHERE.
З'єднання рівності проводиться за загальним для декількох таблиць полю. синтаксис:
При використанні зовнішнього з'єднання результат запиту буде містити всі записи однієї з таблиць, навіть в тому випадку, якщо в пов'язаної з нею таблиці відсутні збігаються значення. Реалізується за допомогою оператора OUTER JOIN:
LEFT - ліве зовнішнє з'єднання, RIGHT - праве зовнішнє з'єднання, FULL - повне зовнішнє з'єднання.
Підзапит - запит, поміщений усередині іншого запиту.
- Підзапити повинні полягати в круглі дужки;
- Пропозиція ORDER BY може бути використано тільки в основному запиті;
- Підзапити, які повертають більше одного запису, можуть використовуватися тільки з багатозначними операторами;
- В основному запиті можна використовувати оператор BETWEEN.
Запити, що включають в себе кілька операторів SELECT, називаються складовими. Правила об'єднання запитів:
- кожен із запитів, що входять в об'єднання, повинен повертати однакову кількість полів;
- типи полів, що повертаються в результаті виконання кожного запиту, повинні збігатися.
- при використанні оператора UNION результати виконання окремих запитів об'єднуються, дублюють один одного запису виключаються;
- при використанні оператора UNION ALL в результуючу вибірку включаються дублюючі записи;
Вибрати записи з двох таблиць, використовуючи з'єднання рівності.
Вибрати з таблиці «Клієнти» поля, що містять відомості про імена клі-тів, а з таблиці «Продажі» - поля, в яких містяться відомості про покуп-ках, зроблених клієнтами. Для зв'язування таблиць скористаємося загальним для обох таблиць полем «Код клієнта»:
Доповнити даний запит пропозицією угруповання і полем, що містить функцію агрегування.
Изме-нить розглянутий вище запит таким чином, щоб результати були згруповані по полях «Прізвище», «Ім'я», «По батькові» і для кожного клієнта виводилося сумарна кількість покупок:
Вибрати записи з трьох взаємопов'язаних таблиць.
Включити інформацію про найменування товару з таблиці «Товари»:
Створити ліве і праве зовнішні з'єднання.
Вибрати з таблиці «Товари» список товарів, з таблиці «Продажі» - сумарна кількість проданих товарів:
Створити складний запит, який використовує підзапит.
Вибрати з таблиці «Продажі» інформацію про продажі товару з найменуванням «Delphi 5»: