Разработка баз данных в Delphi. 11 Уроков

       

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


К логическим операторам относятся известные операторы 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


Содержание раздела