Если в предложении WHERE скобки поставить так, как это показано в примере 2.11, то запрос будет иметь совсем другой смысл.
Пример 2.11. Вывод данных о договорах сотрудника 155, заключенных 15.03.2018, или обо всех договорах, заключенных 02.11.219
SELECT * FROM Orders
WHERE (salesman_id = 155) AND (order_date = ′ 15.03.2018 ′)
OR (order_date = ′ 02.11.2019 ′);
Специальные операторы
Для формирования условий выбора можно использовать специальные операторы, представленные в таблице 2.1.
Таблица 2.1. Специальные операторы
Рассмотрим примеры запросов, использующих специальные операторы.
Оператор LIKE
Оператор LIKE используется для работы со строками. Он проверяет, совпадает ли часть строки с заданным шаблоном. Для создания шаблонов в операторе LIKE используются следующие символы:
– символ подчеркивания _ обозначает один символ;
– символ процента % обозначает несколько символов.
Синтаксис:
{имя столбца} LIKE ′ шаблон ′
Пример 2.12. Вывод данных о сотрудниках, имена которых начинаются на букву L
SELECT employee_id, first_name, last_name, department_id
FROM Employees
WHERE first_name LIKE ′ L% ′;
Пример 2.13. Вывод имен сотрудников, вторым символом которых является буква а
SELECT DISTINCT first_name
FROM Employees
WHERE first_name LIKE ′ _a% ′;
Пример 2.14. Вывод имен сотрудников, которые состоят из четырех символов, начинаются на букву J и заканчиваются буквой n
SELECT DISTINCT first_name
FROM Employees
WHERE first_name LIKE ′ J__n ′;
Для поиска в строке символов _ и % при построении шаблона используется опция ESCAPE /. Символ, который в шаблоне будет располагаться после /, будет рассматриваться как символ поиска. Вместо символа / можно использовать и другие символы, например!.
Пример 2.15. Вывести имя и адрес клиентов, столбец address которых содержит символ /
SELECT c_name, address
FROM Customers
WHERE address LIKE ′ %//% ′ ESCAPE ′ / ′;
Оператор BETWEEN
Оператор BETWEEN используется для того, чтобы результат запроса содержал только те строки, в которых значение проверяемого столбца находится в заданном диапазоне.
Синтаксис:
{имя столбца} BETWEEN V_MIN AND V_MAX
V_MIN – нижняя граница диапазона;
V_MAX – верхняя граница диапазона
Оператор BETWEEN осуществляет поиск среди всех значений диапазона, включая границы. Оператор BETWEEN эквивалентен двум операциям сравнения, объединенным логическим оператором AND.