Реляционный оператор — математический символ, который указывает на определенный тип сравнения между двумя значениями. Вы уже видели, как используются равенства, такие как 2 + 3 = 5 или city = 'London'. Но также имеются другие реляционные операторы. Предположим, что вы хотите видеть всех Продавцов с их комиссионными выше определенного значения. Вы можете использовать тип сравнения "больше чем" (>).
Реляционные операторы, которыми располагает SQL:
=Равно
>Больше чем
<Меньше чем
>=Больше чем или равно
<=Меньше чем или равно
<>Не равно
Эти операторы имеют стандартные значения для числовых значений. Для значения символа, их определение зависит от формата преобразования, ASCII или EBCDIC, который вы используете.
SQL сравнивает символьные значения в терминах основных номеров, как определено в формате преобразования. Даже значение символа, такого как '1', который представляет номер, не обязательно равняется номеру, который он представляет. Вы можете использовать реляционные операторы, чтобы установить алфавитный порядок, например, 'a' < 'n' где 'a' первое в алфавитном порядке, но все это ограничивается с помощью параметра преобразования формата.
И в ASCII и в EBCDIC, символы букв по значению меньше, чем все другие символы, которым они предшествуют в алфавитном порядке и имеют один регистр (верхний или нижний). В ASCII все символы верхнего регистра меньше, чем все символы нижнего регистра, поэтому 'Z' < 'a', а все номера меньше, чем все символы, поэтому '1' < 'Z'. То же относится и к EBCDIC. Чтобы сохранить обсуждение более простым, мы допустим, что вы будете использовать текстовый формат ASCII. Проконсультируйтесь с вашей документацией системы, если вы не уверены, какой формат вы используете, или как он работает.
Значения, сравниваемые здесь, называются скалярными значениями. Скалярные значения производятся скалярными выражениями; 1 + 2 — это скалярное выражение, которое производит скалярное значение 3. Скалярное значение может быть символом или числом, хотя очевидно, что только номера используются с арифметическими операторами, такими как + (плюс) или * (звезда).
Предикаты обычно сравнивают значения скалярных величин, используя или реляционные операторы или специальные операторы SQL чтобы увидеть, верно ли это сравнение. Некоторые операторы SQL описаны в Главе 5.
Предположим, что вы хотите увидеть всех заказчиков с оценкой (rating) выше 200. Так как 200 — это скалярное значение, как и значение в столбце оценки, для их сравнения вы можете использовать реляционный оператор.
SELECT * FROM Customers WHERE rating > 200;
Вывод для этого запроса показывается в Рисунке 4.1.
=============== SQL Execution Log ============ | SELECT * | | FROM Customers | | WHERE rating > 200; | | ============================================= | | snum cname city rating snum | | ----- -------- -------- ----- ------ | | 2004 Crass Berlin 300 1002 | | 2008 Cirneros San Jose 300 1007 | ===============================================
Рисунок 4.1. Использование предиката "больше чем" (>)
Конечно, если бы мы захотели увидеть еще и заказчиков с оценкой, равной 200, мы стали бы использовать предикат