Простейшие запросы практически не применимы на практике, поскольку “вытаскивают” абсолютно все записи из указанной таблицы, а таковых может быть сотни тысяч. СУБД может просто отказаться выполнять такой запрос, да и оперативной памяти на машине клиента может элементарно не хватить. Что делать с результатами таких запросов, даже если они выполняются корректно, не всегда понятно, хотя, для некоторых форм отчета пойдет. Для того чтобы наложить ограничения на отбор нужных вам записей, в SQL используется ключевое слово WHERE. Приведенный ниже запрос отбирает только сотрудников со стажем работы менее 5 лет.
SELECT S_NAME, S_EXPERIENCE FROM D_STAFF WHERE S_EXPERIENCE < 5
Использование простого критерия отбора записей.
Шаг 3. SQL запрос с составным критерием отбора
Для чего нужны составные критерии отбора записей, объяснять, я думаю, не нужно. Для того же, для чего и запросы с простыми критериями. Условия объединяются с использованием логических операций конъюнкции и дизъюнкции (операторы “И” (AND) и “ИЛИ” (OR)), а группируются с помощью скобок. Следующий запрос вернет записи о сотрудниках со стажем менее 5 лет и с дополнительным ограничением на занимаемую ими должность.
SELECT S_NAME, S_EXPERIENCE, S_POSITION FROM D_STAFF WHERE D_STAFF.S_POSITION <10 OR D_STAFF.S_POSITION >20) AND D_STAFF.S_EXPERIENCE <5
Использование сложного критерия отбора записей.
Шаг 4. Оператор BETWEEN
Оператор BETWEEN упрощает синтаксис описания критериев, задающих интервал допустимых значений. Вместо приведенного ниже BETWEEN 3 AND 7 можно было бы написать D_STAFF.S_EXPERIENCE >=3 AND D_STAFF.S_EXPERIENCE <=7. Первый вариант способствует наглядности запроса – это раз, поиск на стороне СУБД может выполняться по отдельному алгоритму, специально оптимизированному для подобного вида ограничений – это два.
SELECT S_NAME, S_EXPERIENCE, S_POSITION FROM D_STAFF WHERE (D_STAFF.S_POSITION <10 OR D_STAFF.S_POSITION >20) AND D_STAFF.S_EXPERIENCE BETWEEN 3 AND 7
Использование оператора BETWEEN.
Шаг 5. Оператор LIKE
Этот замечательный оператор позволяет накладывать ограничения на значения текстовых полей с использованием шаблонов. Синтаксис пояснять не буду, думаю, что из примера и так все ясно. Осуществляем поиск сотрудников, с Ф.И.О. начинающегося на “С”, в середине должно встречаться “Вал” и заканчиваться все должно на “ич”. В некоторых СУБД ключевое слово LIKE можно также использовать со значениями даты и времени.
SELECT S_NAME FROM D_STAFF WHERE S_NAME LIKE 'С%' AND S_NAME LIKE '%Вал%' AND S_NAME LIKE '%ич'
или
SELECT S_NAME FROM D_STAFF WHERE S_NAME LIKE 'С%Вал%ич'
Использование оператора LIKE.
Дата: 2019-03-05, просмотров: 252.