Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы языка SQL.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
97 Кб
Скачать
☆

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

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

Преобразование типов (cast)

В SQL имеется возможность преобразовать значение столбца или функции к другому типу для более гибкого использования операций сравнения. Для этого используется функция CAST.

Типы данных могут быть конвертированы в соответствии со следующей таблицей:

Из типа данных

В тип данных

NUMERIC CHAR,

VARCHAR, DATE

CHAR, VARCHAR

NUMERIC, DATE

DATE CHAR,

VARCHAR, DATE

SELECT first_name, last_name, dept_no

FROM employee

WHERE CAST(dept_no AS char(20))

CONTAINING "00"

получить список сотрудников, занятых в отделах, номера которых содержат "00"

FIRST_NAME

LAST_NAME

DEPT_NO

Robert

Nelson

600

Terri

Lee

000

Stewart

Hall

900

Walter

Steadman

900

Mary S.

MacDonald

100

Oliver H.

Bender

000

Kelly

Brown

600

Michael

Yanowski

100