Главная » Информационные системы » Управление данными » 29. ЛОГИЧЕСКИЕ ОПЕРАЦИИ ЯЗЫКА SQL

29. ЛОГИЧЕСКИЕ ОПЕРАЦИИ ЯЗЫКА SQL

Логические операторы

К логическим операторам относятся известные операторы AND, OR, NOT, позволяющие выполнять различные логические действия: логическое умножение (AND, пересечение условий), логическое сложение (OR, объединение условий), логическое отрицание (NOT, отрицание условий). В наших примерах мы уже применяли оператор AND. Использование этих операторов позволяет гибко настроить условия отбора записей.

Оператор AND означает, что общий предикат будет истинным только тогда, когда условия, связанные по AND, будут истинны.

Оператор OR означает, что общий предикат будет истинным, когда хотя бы одно из условий, связанных по OR, будет истинным.

Оператор NOT означает, что общий предикат будет истинным, когда условие, перед которым стоит этот оператор, будет ложным.

В одном предикате логические операторы выполняются в следующем порядке: сначала выполняется оператор NOT, затем - AND и только после этого - оператор OR. Для изменения порядка выполнения операторов разрешается использовать скобки.

SELECT first_name, last_name, dept_no,
job_code, salary
FROM employee
WHERE dept_no = 622
OR job_code = Eng
AND salary <= 40000
ORDER BY last_name

получить список служащих, занятых в отделе 622 или на должности инженер с зарплатой не выше 40000

FIRST_NAME LAST_NAME DEPT_NO JOB_CODE SALARY
Jennifer M. Burbank 622 Eng 53167.50
Phil Forest 622 Mngr 75060.00
T.J. Green 621 Eng 36000.00
Mark Guckenheimer 622 Eng 32000.00
John Montgomery 672 Eng 35000.00
Bill Parker 623 Eng 35000.00
Willie Stansbury 120 Eng 39224.06

SELECT first_name, last_name, dept_no,
job_code, salary
FROM employee
WHERE (dept_no = 622
OR job_code = Eng)
AND salary <= 40000
ORDER BY last_name

получить список служащих, занятых в отделе 622 или на должности инженер, зарплата которых не выше 40000

FIRST_NAME LAST_NAME DEPT_NO JOB_CODE SALARY
T.J. Green 621 Eng 36000.00
Mark Guckenheimer 622 Eng 32000.00
John Montgomery 672 Eng 35000.00
Bill Parker 623 Eng 35000.00
Willie Stansbury 120 Eng 39224.06


Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.

Поделиться

Дисциплины