Чтение онлайн

на главную - закладки

Жанры

Понимание SQL

Грубер Мартин

Шрифт:

Значения сравниваемые здесь называются - скалярными значениями. Скалярные значения производяться скалярными выражениями; 1 + 2 - это скалярное выражение которое производит скалярное значение 3. Скалярное значение может быть символом или числом, хотя очевидно что только номера используются с арифметическими операторами, такими как +(плюс) или *(звезда).

Предикаты обычно сравнивают значения скалярных величин, используя или реляционные операторы или специальные операторы SQL чтобы увидеть верно ли это сравнение. Некоторые операторы SQL описаны в Главе 5.

Предположим что вы хотите увидеть всех заказчиков с оценкой(rating) выше 200. Так как 200 - это скалярное значение, как и значение в столбце оценки, для их сравнения вы можете использовать реляционный оператор.

SELECT *

FROM Customers

WHERE rating > 200;

Вывод

для этого запроса показывается в Таблице 4.1.

Конечно, если бы мы захотели увидеть еще и заказчиков с оценкой равной 200, мы стали бы использовать предикат

rating >=200

БУЛЕВЫ ОПЕРАТОРЫ

Основные Булевы операторы также распознаются в SQL. Выражения Буля - являются или верными или неверными, подобно предикатам. Булевы операторы связывают одно или более верных/неверных значений и производят едиственное верное/или/неверное значение. Стандартными операторами Буля распознаваемыми в SQL являются:

AND, OR, и NOT.

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: Использование больше чем (>)

Существуют другие, более сложные, операторы Буля (типа "исключенный или"), но они могут быть сформированы из этих трех простых операторов - AND, OR, NOT.

Как вы можете понять, Булева верня / неверная логика - основана на цифровой компьютерной операции; и фактически, весь SQL( или любой другой язык ) может быть сведен до уровня Булевой логики.

Операторы Буля и как они работают

* AND берет два Буля (в форме A AND B) как аргументы и оценивает их по отношению к истине, верны ли они оба.

* OR берет два Буля (в форме A OR B) как аргументы и оценивает на правильность, верен ли один из них.

* NOT берет одиночный Булев (в форме NOT A) как аргументы и заменяет его значение с неверного на верное или верное на неверное.

Связывая предикаты с операторами Буля, вы можете значительно увеличить их возможности. Предположим вы хотите видеть всех заказчиков в San Jose которые имеют оценку(рейтинг) выше 200:

SELECT *

FROM Customers

WHERE city=" San Jose'

AND rating > 200;

Вывод для этого запроса показан на Таблице 4.2. Имеется только один заказчик который удовлетворяет этому условию.

Если вы же используете OR вы получите всех заказчиков которые находились в San Jose или(OR) которые имели оценку выше 200.

SQL Execution Log

SELECT * FROM Customers WHERE city='San Jose' AND rating > 200;

сnum

cname

city

rating

snum

2008

Cirneros

San Jose

300

1007

Таблица 4.2: SELECT

использующий AND

SELECT *

FROM Customers

WHERE city=" San Jose'

OR rating > 200;

Вывод для этого запроса показывается в Таблице 4.3.

NOT может использоваться для инвертирования значений Буля. Имеется пример запроса с NOT:

SELECT *

FROM Customers

WHERE city=" San Jose'

OR NOT rating > 200;

Вывод этого запроса показывается в Таблице 4.4.

SQL Execution Log

SELECT * FROM Customers WHERE city='San Jose' OR rating > 200;

сnum

cname

city

rating

snum

2003

Liu

San Jose

200

1002

2004

Grass

Berlin

300

1002

2008

Cirneros

San Jose

300

1007

Рисунок 4.3: SELECT использующий OR

SQL Execution Log

SELECT * FROM Customers WHERE city='San Jose' OR NOT rating > 200;

сnum

cname

city

rating

snum

2001

Hoffman

London

100

1001

2002

Giovanni

Rome

200

1003

2003

Liu

San Jose

200

1002

2006

Clemens

London

100

1001

2008

Cirneros

San Jose

300

1007

2007

Pereira

Rome

100

1004

Поделиться:
Популярные книги

Древесный маг Орловского княжества 6

Павлов Игорь Васильевич
6. Орловское княжество
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Древесный маг Орловского княжества 6

Адвокат Империи 8

Карелин Сергей Витальевич
8. Адвокат империи
Фантастика:
городское фэнтези
альтернативная история
аниме
дорама
фантастика: прочее
попаданцы
5.00
рейтинг книги
Адвокат Империи 8

Варяг

Мазин Александр Владимирович
1. Варяг
Фантастика:
альтернативная история
9.10
рейтинг книги
Варяг

Хозяин Стужи 4

Петров Максим Николаевич
4. Злой Лед
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Хозяин Стужи 4

Воронцов. Перезагрузка. Книга 2

Тарасов Ник
2. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
Воронцов. Перезагрузка. Книга 2

Вперед в прошлое 2

Ратманов Денис
2. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 2

Глэрд IX: Легионы во Тьме

Владимиров Денис
9. Глэрд
Фантастика:
боевая фантастика
попаданцы
фэнтези
5.00
рейтинг книги
Глэрд IX: Легионы во Тьме

Содержанка. Книга 2

Вечная Ольга
6. Порочная власть
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Содержанка. Книга 2

Наследие Маозари 9

Панежин Евгений
9. Наследие Маозари
Фантастика:
попаданцы
постапокалипсис
рпг
сказочная фантастика
6.25
рейтинг книги
Наследие Маозари 9

На границе империй. Том 10. Часть 9

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 9

Кодекс Охотника. Книга XXIX

Винокуров Юрий
29. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XXIX

На Берлин!

Дорничев Дмитрий
2. Моё пространственное убежище
Фантастика:
фэнтези
боевая фантастика
рпг
постапокалипсис
5.56
рейтинг книги
На Берлин!

Крепость над бездной

Лисина Александра
4. Гибрид
Фантастика:
боевая фантастика
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Крепость над бездной

Бояръ-Аниме. Газлайтер. Том 30

Володин Григорий Григорьевич
30. История Телепата
Фантастика:
альтернативная история
аниме
фэнтези
5.00
рейтинг книги
Бояръ-Аниме. Газлайтер. Том 30