Для вибірки записів з таблиць в SQL є оператор SELECT. За допомогою цієї команди здійснюється не тільки операція реляційної алгебри "вибірка" (горизонтальна підмножина), але і попереднє з'єднання (join) двох і більш таблиць. Цей найскладніший і могутній засіб SQL, повний синтаксисоператора SELECT має вигляд:
SELECT [ALL | DISTINCT] <список_вибірки> FROM <ім’я_таблиці> ... [ WHERE <умова> ] [ GROUP <ім’я_поля>... ] [ HAVING <умова> ] [ORDER <ім’я_поля> [ASC | DESC]... ]
Порядок рядків в операторі SELECTповинен строго дотримуватися (наприклад, GROUP повинне завжди передувати ORDER), інакше це приведе до появи помилок.
Цей оператор завжди починається з ключового слова SELECT. В кострукции <список_вибірки> визначається стовпець або стовпці, що включаються в результат. Він може складатися з імен одного або декількох стовпців, або з одного символу * (зірочка), визначаючого всі стовпці. Елементи списку розділяються комами.
Приклад: отримати список всіх викладачів:
SELECT Фио FROM Сессия;
отримати список всіх полів таблиці Сессия:
SELECT * FROM Сессия;
У тому випадку, коли нас цікавлять не всі записи, а тільки ті, котрі задовольняють певній умові, то умову можна вказати після ключового слова WHERE. Наприклад, знайдемо всі предмети, які були здані на оцінку "5":
SELECT Предмет FROM Сессия WHERE Оценка>5;
Допустимий тепер, що нам треба знайти всі предмети, які були здані на оцінку 4-5. Цю умову можна записати у вигляді:
SELECT Предмет FROM Сессия WHERE Оценка>=4 AND Оценка<=5;
Інший варіант цієї команди можна отримати з використанням логічної операції перевірки на входження в інтервал:
SELECT Предмет FROM Сессия WHERE Оценка BETWEEN 4 AND 5;
При використовуванні конструкції NOT BETWEEN знаходяться всі рядки, що не входять у вказаний діапазон.
Ще один варіант цієї команди можна побудувати за допомогою логічної операції перевірки на входження в список:
SELECT Предмет FROM Сессия WHERE Оценка IN (4,5);
Тут ми задали в явному вигляді список значень. Конструкція NOT IN дозволяє знайти рядки, що не задовольняють умовам, перерахованим в списку. Найбільш повно переваги ключового слова IN виявляються у вкладених запитах, також званих під запитами.
Деякі задачі не можна вирішити з використовуванням тільки операторів порівняння. Наприклад, треба знайти прізвища студентів, які почингаються на букву "Б". Для вирішення цієї задачі призначено ключове слово LIKE, його синтаксис має вигляд:
WHERE <ім’я_поля> LIKE <зразок> [ ESCAPE <ключовий_символ> ]
Зразок полягає в лапки і повинен містити шаблон для пошуку. Звичайно в шаблонах використовуються два символи:
· % (знак відсотка) - замінює будь-яку кількість символів
· _ (підкреслення) - замінює одиночний символ.
Спробуємо знайти шуканий web-site:
SELECT Фио FROM Сессия WHERE Фио LIKE 'Б%';
На закінчення помітимо, що при виконанні оператора SELECT результуюче відношення може мати декілька записів з однаковими значеннями всіх полів. Щоб виключити записи, що повторюються, з вибірки використовується ключове слово DISTINCT. Ключове слово ALL указує, що в результат необхідно включати всі рядки.