В этом учебном пособии вы узнаете, как использовать условие AND в SQL Server (Transact-SQL) с синтаксисом и примерами.
Описание
Условие SQL Server (Transact-SQL) AND (также называемое оператором AND) используется для проверки двух или более условий в операторе SELECT, INSERT, UPDATE или DELETE.
Синтаксис
Синтаксис условия AND в SQL Server (Transact-SQL):
...
AND condition_n;
Параметры или аргументы
condition1, condition2 ... condition_n - все условия, которые должны быть выполнены.
Примечание
- Условие SQL Server AND позволяет протестировать 2 или более условий.
- Условие SQL Server AND требует, чтобы все условия (то есть: condition1, condition2, condition_n) были выполнены для записи, которая должна быть включена в результирующий набор.
Пример с оператором SELECT
Первый запрос SQL Server AND содержит SELECT с двумя условиями.
Например:
1 2 3 4 |
SELECT * FROM employees WHERE last_name = 'Голубков' AND employee_id < 200; |
Этот пример SQL Server AND вернет всех employees, у которых last_name 'Голубков', и employee_id меньше 200. Поскольку в операторе SELECT используется *, то все поля из таблицы employee появятся в наборе результатов.
Пример - JOINING Tables
Наш следующий пример SQL Server AND показывает, как условие AND можно использовать для объединения нескольких таблиц в операторе SELECT.
Например:
1 2 3 4 |
SELECT employees.employee_id, contacts.last_name FROM employees, contacts WHERE employees.employee_id = contacts.contact_id AND employees.first_name = 'Дарья'; |
Хотя вышеупомянутый SQL работает отлично, вы бы более традиционно записывали этот SQL следующим образом, используя INNER JOIN.
Например:
1 2 3 4 5 |
SELECT employees.employee_id, contacts.last_name FROM employees INNER JOIN contacts ON employees.employee_id = contacts.contact_id WHERE employees.first_name = 'Дарья'; |
Этот пример SQL Server AND будет возвращать все строки, где first_name в таблице employees - это 'Дарья'. Таблицы employees и contacts объединяются в employee_id из таблицы employee и contact_id из таблицы contacts. Вы заметите, что все поля имеют префикс имен таблиц (например: contacts.last_name). Это необходимо для устранения какой-либо двусмысленности в отношении того, к какой области относятся ссылки; поскольку одно и то же имя поля может существовать как в employees, так и в таблице contacts.
В этом случае в результирующем наборе будут отображаться только поля employee_id и last_name (как указано в первой части оператора SELECT).
Пример оператора INSERT
Следующий пример SQL Server AND демонстрирует, как условие AND может использоваться в операторе INSERT.
Например:
1 2 3 4 5 6 |
INSERT INTO contacts (contact_id, last_name, first_name) SELECT employee_id, last_name, first_name FROM employees WHERE first_name = 'Валентина' AND employee_id >= 500; |
Этот пример SQL Server AND будет вставляться в таблицу contacts, все записи employee_id, last_name и first_name из таблицы employees, где first_name - 'Валентина', а employee_id - больше или равно 500.
Пример оператора UPDATE
Этот пример SQL Server AND показывает, как условие AND можно использовать в операторе UPDATE.
Например:
1 2 3 4 |
UPDATE employees SET last_name = 'Акопян' WHERE last_name = 'TBD' AND employee_id < 400; |
Этот пример SQL Server AND будет обновлять все значения last_name в таблице employee в 'Акопян', где last_name – 'Петров’, а employee_id - менее 400.
Пример оператора DELETE
Наконец, этот последний пример SQL Server AND демонстрирует, как условие AND может использоваться в операторе DELETE.
Например:
1 2 3 |
DELETE FROM employees WHERE first_name = 'Федор' AND last_name = 'Зубов'; |
Этот пример SQL Server условия AND удалит все записи из таблицы employees, чье first_name является 'Федор', а last_name - 'Зубов'.