Отбор строк (предложение WHERE)
Примеры простейших запросов на выборку.
Предложение FROM.
В предложении FROM указываются источники данных для получения результата запроса, перечисленные через запятую. В качестве источника данных может быть указано имя таблицы/запроса базы данных или (в круглых скобках) другой запрос SELECT (так называемый вложенный запрос; вложенные запросы будут рассмотрены позже).
Для рассмотрения примеров запросов будем использовать схему данных для предметной области «Телефонная книга» (подробно разбиралась на лабораторных и практических занятиях).
Пример 1. Вывести коды и названия мелодий.
SELECT ID, NAZV
FROM MELODII
Пример 2. Вывести информацию о контактах (код, имя, возраст).
SELECT ID, NAME1, VOZRAST
FROM KONTAKTY
Пример 3. Для каждого вызова вывести фразу типа: “Стоимость звонка 1 равна 3,50р.”.
SELECT 'Стоимость звонка ', ID, ' равна ', STOIM
FROM VYZOVY
Пример 4. Вывести код, длительность и стоимость звонка в долларах (по курсу 30 руб./$).
SELECT ID, DLIT, STOIM/30 AS DOLLARS
FROM VYZOVY
Пример 5. Вывести полную информацию о группах контактов.
SELECT *
FROM GRUPPY
Пример 6. Вывести полную информацию о вызовах, а также стоимость минуты каждого вызова.
SELECT *, STOIM/DLIT*60 AS TARIF
FROM VYZOVY
Пример 7. Вывести коды (ID) мелодий, которые уже использовались (были назначены хотя бы одному контакту).
Неправильно:
SELECT MEL_ID
FROM KONTAKTY
Правильно:
SELECT DISTINCT MEL_ID
FROM KONTAKTY
Приведенные выше примеры запросов выбирали информацию из всех строк таблицы. Однако чаще требуется выбрать данные только из тех строк, которые удовлетворяют определенным условиям. Для этой цели служит предложение WHERE, которое исключает строки, не удовлетворяющие заданным в нем условиям. В результаты запроса попадут только те строки, для которых условие отбора вернет True(Истина).
Условие отбора строк в предложении WHERE может быть простым или составным.
Можно выделить пять основных типов простых условий отбора строк.
Примечание. Во многих из таких условий можно добавлять слово NOT, что будет приводить к противоположному по смыслу результату.
Синтаксис:
<выражение1> <операция сравнения> <выражение2>
Операции сравнения: = (равно), <> (не равно), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно).
Пример 8. Вывести имена контактов, чей возраст больше 20.
SELECT NAME1
FROM KONTAKTY
WHERE VOZRAST>20
Пример 9. Вывести полную информацию о звонках, стоимость которых рассчитывалась исходя из тарифа 1.2 руб/мин.
SELECT *
FROM VYZOVY
WHERE STOIM=DLIT/60*1.2