Практическое руководство. Включение и исключение строк
Чтобы ограничить число строк, возвращаемых запросом SELECT, создают условия поиска или критерии фильтрации.В языке SQL условия поиска появляются в предложении операторов WHERE или, если запрос статистический, в предложении HAVING.
Примечание |
---|
Можно также использовать условия поиска, чтобы задать, какие строки будут изменены запросами обновления, вставки результатов и значений, удаления или создания таблиц. |
При выполнении запроса ядро СУБД проверяет и применяет условия поиска к каждой строке таблиц, где осуществляется поиск.Если строка соответствует условиям, она включается в запрос.Например, условие поиска всех сотрудников в определенном регионе может быть таким:
region = 'UK'
Чтобы задать критерий включения строки в результат, можно применять несколько условий поиска.Например, следующий критерий состоит из двух условий поиска.Запрос включает строку в результирующий набор только в том случае, если она удовлетворяет обоим условиям.
region = 'UK' AND product_line = 'Housewares'
Эти условия можно комбинировать с помощью ключевых слов AND и OR.В предыдущем примере использовался AND.В следующем критерии, напротив, используется OR.Результирующий набор будет включать в себя все строки, удовлетворяющие любому из условий поиска или обоим:
region = 'UK' OR product_line = 'Housewares'
Можно даже комбинировать условия поиска по одному столбцу.Например, следующий критерий сочетает два условия поиска по столбцу region:
region = 'UK' OR region = 'US'
Дополнительные сведения о сочетании условий поиска см. в следующих подразделах:
Обозначения для условий комбинированного поиска в области критериев
Практическое руководство. Определение несколько условий поиска для одного столбца
Практическое руководство. Определение несколько условий поиска для нескольких столбцов
Практическое руководство. Объединение условий с приоритетом оператора AND
Практическое руководство. Соединение условий с приоритетом оператора OR
Примеры
Несколько примеров запросов с использованием различных операторов и критериев фильтрации строк.
Литерал Текстовое, численное, логическое значение или значение даты.В следующем примере литерал используется для поиска всех сотрудников, работающих в Великобритании:
WHERE region = 'UK'
Ссылка на столбец Сравнение значений одного столбца со значениями в другом.В следующем примере в таблице products ищутся все строки, где стоимость производства ниже стоимости доставки:
WHERE prod_cost < ship_cost
Функция Ссылка на функцию, которую ядро СУБД может разрешить для вычисления значения, использующегося в поиске.Это может быть функция, определенная сервером базы данных, или определяемая пользователем функция, возвращающая скалярное значение.В следующем примере ищутся все заказы, сделанные сегодня (функция GETDATE( ) возвращает текущую дату):
WHERE order_date = GETDATE()
NULL В следующем примере в таблице authors ищутся все авторы, имя которых сохранено:
WHERE au_fname IS NOT NULL
Вычисление Результат вычисления, в котором могут участвовать литералы, ссылки на столбцы и другие выражения.В следующем примере в таблице products ищутся все строки, где розничная цена в два раза превышает стоимость производства:
WHERE sales_price > (prod_cost * 2)