Скачиваний:
25
Добавлен:
01.04.2014
Размер:
761.34 Кб
Скачать

38 Понимание sql

______________________________________________________________________

ГЛ. 4

=============== 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;

ИСПОЛЬЗОВАНИЕ РЕЛЯЦИОННЫХ И БУЛЕВЫХ ОПЕРАТОРОВ

ЧТОБЫ СОЗДАВАТЬ БОЛЕЕ СЛОЖНЫЕ ПРЕДИКАТЫ 39

______________________________________________________________________

Вывод для этого запроса показан на Рисунке 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