Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD / Labs / Russian / Lab4R-SELECTBasicFeatures.doc
Скачиваний:
39
Добавлен:
20.02.2016
Размер:
346.62 Кб
Скачать

Операторы сравнения

Операторы сравнения сравнивают одно выражение с другим. Результатом сравнения может быть TRUE, FALSE или UNKNOWN. Для получения дополнительной информации относительно условий см. Приложение А лабораторной работы 2. Далее в таблице приводятся операторы сравнения SQL.

Оператор

Назначение

Пример

=

Проверка на равенство

SELECT * FROM DEPARTMENT

WHERE Fund = 15000;

!=, ^=, <>, ¬=

Проверка на неравенство.

SELECT * FROM DEPARTMENT

WHERE Fund != 15000;

>, <

Проверка на "больше" и "меньше"

SELECT * FROM FACULTY SELECT * FROM FACULTY

WHERE Fund > 1500; WHERE Fund < 1500;

>=, <=

Проверка на "больше или равно" и "меньше или равно"

SELECT * FROM FACULTY SELECT * FROM FACULTY

WHERE Fund >= 1500; WHERE Fund <= 1500;

IN

Проверка на "вхождение элемента во множество ". Эквивалентно "= ANY"

SELECT Name, Post FROM TEACHER WHERE UPPER(Post) IN

('PROFESSOR', 'ASSISTANT');

NOT IN

Эквивалентно !=ALL. Дает FALSE хотя бы один элемент множества равен NULL

SELECT * FROM FACULTY

WHERE Fund NOT IN

(SELECT Fund FROM FACULTY WHERE Building IN ('3','5')};

ANY, SOME

Сравнивает значение с каждым значение в списке или возвращаемым запросом. Им должен предшествовать один из символов =, !=, >, <, <=, >=. Дает FALSE , если запрос не возвращает строк.

SELECT * FROM TEACHER

WHERE Salary = ANY

(SELECT Salary FROM TEACHER

WHERE UPPER(Post) = 'PROFESSOR');

ALL

Сравнивает значение с каждым значение в списке или возвращаемым запросом. Ему должен предшествовать один из символов =, !=, >, <, <=, >=. Дает TRUE, если запрос не возвращает строк.

SELECT * FROM TEACHER

WHERE Salary >= ALL (350, 400, 420);

[NOT] BETWEEN x AND y

[НЕ] больше или равно x и меньше или равно y.

SELECT * FROM TEACHER

WHERE Salary BETWEEN 350 AND 420;

EXISTS

TRUE, если подзапрос возвращает хотя бы одну строку. Это унарный оператор.

SELECT Name FROM TEACHER

WHERE EXISTS

(SELECT * FROM LECTURE

WHERE LECTURE.TchNo=TEACHER. TchNo);

x [NOT] LIKE y [ESCAPE ‘z’]

TRUE, если x [не] соответствут шаблону y. В шаблоне y, символ "%" соответствует произвольной строке ноль или более символов за исключением. Символ "_" соответст­вует одному произвольному символу. Если символу (%) или (_) предшествует escape-символ, то он воспринимается буквально.

SELECT Name FROM TEACHER

WHERE UPPER(Name) LIKE 'ИВ%';

IS [NOT] NULL

Проверка на null. Это единственный оператор, который делает проверку на null.

SELECT Name, Tel

FROM TEACHER

WHERE Commission IS NULL;

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

Логический оператор выдает логическое значение на основании логических значений его операнодов. Далее приводится таблица логических операторов.

Оператор

Назначение

Пример

NOT

Унарный оператор. Возвращает TRUE, если условие равно FALSE. Возвращает FALSE , если условие TRUE. Если условие UNKNOWN, то возвращает UNKNOWN.

SELECT * FROM TEACHER

WHERE NOT (Salary BETWEEN 450 AND 500);

AND

Бинарный оператор. Возвращает TRUE, если оба операнда TRUE. Возвращает FALSE, если хотя бы один операнд FALSE. В противном случае возвращает UNKNOWN.

SELECT * FROM TEACHER

WHERE Hiredate < TO_DATE('01-JAN-2000', 'DD-MMM-YYYY') AND Salary > 500;

OR

Бинарный оператор. Возвращает TRUE, если хотя бы один из операндов TRUE. Возвращает FALSE, если оба операнда FALSE. В противном случае возвращает UNKNOWN.

SELECT *

FROM TEACHER

WHERE UPPER(Post)='ASSISTANT' AND

Salary > 500;

Логические операторы имеют следующую истинностную таблицу:

AND

TRUE

FALSE

UNKNOWN

OR

TRUE

FALSE

UNKNOWN

NOT

TRUE

TRUE

FALSE

UNKNOWN

TRUE

TRUE

TRUE

UNKNOWN

TRUE

FALSE

FALSE

FALSE

FALSE

UNKNOWN

FALSE

TRUE

FALSE

UNKNOWN

FALSE

TRUE

UNKNOWN

UNKNOWN

UNKNOWN

UNKNOWN

UNKNOWN

UNKNOWN

UNKNOWN

UNKNOWN

UNKNOWN

UNKNOWN

Соседние файлы в папке Russian