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

на главную

Жанры

Понимание SQL

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

Шрифт:

* Что может быть выведено в результате следующего запроса?

SELECT *

FROM Orders

WHERE (amt < 1000 OR

NOT (odate=10/03/1990

AND cnum > 2003 ));

* Что может быть выведено в результате следующего запроса?

SELECT *

FROM Orders

WHERE NOT ((odate=10/03/1990 OR snum > 1006)

AND amt >=1500 );

* Как можно проще переписать такой запрос?

SELECT snum, sname, city, comm

FROM Salespeople

WHERE (comm > + .12 OR

comm < .14 );

Глава 5. ИСПОЛЬЗОВАНИЕ

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

В ДОПОЛНЕНИИ К РЕЛЯЦИОННЫМ И БУЛЕВСКИМ операторам обсуждаемым в Главе 4, SQL использует специальные операторы IN, BETWEEN, LIKE, и IS NULL. В этой главе, вы узнаете как их использовать и как реляционные операторы позволяют создавать более сложные и мощные предикаты. Обсуждение оператора IS NULL будет включать отсутствие данных и значение NULL, которое указывает на то: что данные отсутствуют. Вы также узнаете о разновидностях использования оператора NOT применяющегося с этими операторами.

ОПЕРАТОР IN

Оператор IN определяет набор значений в которое данное значение может или не может быть включено. В соответствии с нашей учебной базой данных на которой вы обучаетесь по настоящее временя, если вы хотите найти всех продавцов, которые размещены в Barcelona или в London, вы должны использовать следующий запрос (вывод показывается в Таблице5.1 ):

SELECT *

FROM Salespeople

WHERE city='Barcelona'

OR city='London';

Имеется и более простой способ получить ту же информацию:

SELECT *

FROM Salespeople

WHERE city IN ('Barcelona', 'London' );

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

Как вы можете видеть, IN определяет набор значений с помощью имен членов набора заключеных в круглые скобки и отделенных запятыми. Он затем проверяет различные значения указанного поля пытаясь найти совпадение со значениями из набора. Если это случается, то предикат верен. Когда наборсодержит значения номеров а не символов, одиночные кавычки опускаются. Давайте найдем всех заказчиков относящихся к продавцам имеющих значения snum=1001, 1007, и 1004. Вывод для следующего запроса показан в Таблице 5.3:

SELECT *

FROM Customers

WHERE cnum IN (1001, 1007, 1004 );

SQL Execution Log

SELECT * FROM Salespeople WHERE city=

'Barcelona' OR city='London';

snum

sname

city

comm

1001

Peel

London

0.12

1004

Motika

London

0.11

1007

Rifkin

Barcelona

0.15

Таблица 5.1 Нахождение продавцов в Барселоне и Лондоне

SQL Execution Log

SELECT * FROM Salespeople WHERE city IN

('Barcelona', 'London');

snum

sname

city

comm

1001

Peel

London

0.12

1004

Motika

London

0.11

1007

Rifkin

Barcelona

0.15

Таблица 5.2 SELECT

использует IN

SQL Execution Log

SELECT * FROM Customers WHERE snum IN (1001, 1007, 1004 );

snum

cname

city

rating

snum

2001

Hoffman

London

100

1001

2006

Clemens

London

100

1001

2008

Cisneros

San Jose

300

1007

2007

Pereira

Rome

100

1004

Таблица 5.3: SELECT использует IN с номерами

ОПЕРАТОР BETWEEN

Оператор BETWEEN похож на оператор IN. В отличии от определения по номерам из набора, как это делает IN, BETWEEN определяет диапазон, значения которого должны уменьшаться что делает предикат верным. Вы должны ввести ключевое слово BETWEEN с начальным значением, ключевое AND и конечное значение. В отличие от IN, BETWEEN чувствителен к порядку, и первое значение в предложении должно быть первым по алфавитному или числовому порядку. (Обратите Внимание что, в отличие от Английского языка, SQL не говорит что "значение находится (между)BETWEEN значением и значением|, а просто "значение BETWEEN значение значение|.

Это применимо и к оператору LIKE). Следующий пример будет извлекать из таблицы Продавцов всех продавцов с комиссионными между .10 и .12 (вывод показывается в Таблице 5.4):

SELECT *

FROM Salespeople

WHERE comm BETWEEN .10 AND .12;

Для включенного оператора BETWEEN, значение совпадающее с любым из двух значений границы (в этом случае, .10 и .12 ) заставляет предикат быть верным.

SQL Execution Log

SELECT * FROM Salespeople WHERE comm BETWEEN .10 AND .12;

snum

sname

city

comm

1001

Peel

London

0.12

1004

Motika

London

0.11

1003

Axelrod

New York

0.10

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

Идеальный мир для Социопата 5

Сапфир Олег
5. Социопат
Фантастика:
боевая фантастика
рпг
5.50
рейтинг книги
Идеальный мир для Социопата 5

Столичный доктор

Вязовский Алексей
1. Столичный доктор
Фантастика:
попаданцы
альтернативная история
8.00
рейтинг книги
Столичный доктор

На руинах Мальрока

Каменистый Артем
2. Девятый
Фантастика:
боевая фантастика
9.02
рейтинг книги
На руинах Мальрока

Инцел на службе демоницы 1 и 2: Секса будет много

Блум М.
Инцел на службе демоницы
Фантастика:
фэнтези
5.25
рейтинг книги
Инцел на службе демоницы 1 и 2: Секса будет много

Ночь со зверем

Владимирова Анна
3. Оборотни-медведи
Любовные романы:
любовно-фантастические романы
5.25
рейтинг книги
Ночь со зверем

Провинциал. Книга 1

Лопарев Игорь Викторович
1. Провинциал
Фантастика:
космическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Провинциал. Книга 1

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

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

Оружейникъ

Кулаков Алексей Иванович
2. Александр Агренев
Фантастика:
альтернативная история
9.17
рейтинг книги
Оружейникъ

Газлайтер. Том 9

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

Идеальный мир для Лекаря 19

Сапфир Олег
19. Лекарь
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 19

Боги, пиво и дурак. Том 4

Горина Юлия Николаевна
4. Боги, пиво и дурак
Фантастика:
фэнтези
героическая фантастика
попаданцы
5.00
рейтинг книги
Боги, пиво и дурак. Том 4

Черный Маг Императора 9

Герда Александр
9. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 9

Жена на четверых

Кожина Ксения
Любовные романы:
любовно-фантастические романы
эро литература
5.60
рейтинг книги
Жена на четверых

Энфис 2

Кронос Александр
2. Эрра
Фантастика:
героическая фантастика
рпг
аниме
5.00
рейтинг книги
Энфис 2