Всі запити в SQL конструюються на базі однієї команди - SELECT. Її можна розширювати для виконання складних обробок.
SELECT name1, name2, ... - список стовпців, які подаються в результаті
FROM Table name; пов'язані
Перенесення на інший рядок нічого не змінює в команді.
Якщо поміняти місцями порядок слів, то в такому порядку виходить результат.
Усунення надмірності даних
Припустимо, SELECT вибирає один стовпець з таблиці. У ньому можуть бути повторювані значення, які не потрібні в результаті запиту. Якщо в запит
Якщо додати аргумент DISTINCT. то
SELECT DISTINCT snum
Виключить дублюються значення з результату.
Протилежним аргументом є ALL - він включає всі значення (за замовчуванням - ALL).
Визначення вибірки - пропозиція WHERE
Пропозиція WHERE команди SELECT дозволяє визначити предикат, умова, яке може бути або істинним, або хибним для кожного рядка. Команди витягує тільки ті, для яких предикат має значення "істина".
Припустимо, потрібно дізнатися імена всіх продавців в London:
SELECT sname, city
FROM Sales people
WHERE city = 'London';
Зауважимо, що стовпець city включається, в результат за рахунок появи в реченні SELECT, а не в WHERE.
Приклад на числове поле:
SELECT * FROM Customers
WHERE rating = 100;
Зрозуміло, що застосування WHERE не виключає DISTINCT і навпаки.
Допустимі і інші оператори:
'А' <’n’ означает, что ‘а’ предшествует ‘n’ в алфавитном порядке.
Булеві оператори: AND, OR, NOT
Приклад: SELECT * FROM Customers
WHERE city = 'London'
AND rating> 200;
SELECT * FROM Customers
WHERE city = 'London'
OR NOT rating> 200;
Або записи у яких місто Лондон, або якщо rating не більш 200.
NOT повинен передувати булеву висловом, значення якого він повинен змінити (але не перед оператором порівняння rating NOT> 200). SQL застосовує NOT тільки до того висловом, яке безпосередньо слідує за ним. Якщо потрібно охопити більше, то ставляться круглі дужки:
... WHERE NOT (city = 'London' OR rating> 200);
Простежимо логіку в навмисно ускладненому прикладі:
Спосіб оцінки складного виразу наступний: оцінити булево вираз, що має найбільшу глибину входження в круглі дужки, скомбінувати результати в одне логічне вираз, а потім зв'язати його значення зі значенням виразів, що мають меншу глибину входження в дужки.
Розглянемо наведений приклад:
Найбільша глибина входження у предиката: