Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Принадлежность множеству




Оператор IN используется для сравнения некоторого значения со списком заданных значений, при этом проверяется, соответствует ли результат вычисления выражения одному из значений в предоставленном списке. При помощи оператора IN может быть достигнут тот же результат, что и в случае применения оператора OR, однако оператор IN выполняется быстрее.

Пример. Вывести список клиентов из Москвы или из Самары

SELECT Фамилия, ГородКлиента

FROM Клиент

WHERE ГородКлиента IN (‘Москва’, ‘Самара’)

 

NOT IN используется для отбора любых значений, кроме тех, которые указаны в представленном списке.

Пример. Вывести список клиентов, проживающих не в Москве и не в Самаре.

SELECT Фамилия, ГородКлиента

FROM Клиент

WHERE ГородКлиента

Not IN (‘Москва’,’Самара’)

 

Соответствие шаблону

С помощью оператора LIKE можно выполнять сравнение выражения с заданным шаблоном, в котором допускается использование символов-заменителей:

· Символ % – вместо этого символа может быть подставлено любое количество произвольных символов.

· Символ _ заменяет один символ строки.

· [] – вместо символа строки будет подставлен один из возможных символов, указанный в этих ограничителях.

· [^] – вместо соответствующего символа строки будут подставлены все символы, кроме указанных в ограничителях.

Пример. Найти клиентов, у которых в номере телефона вторая цифра – 4.

 

SELECT Клиент.Фамилия, Клиент.Телефон

FROM Клиент

WHERE Клиент.Телефон Like ‘_4%’

Пример. Найти клиентов, у которых в номере телефона вторая цифра – 2 или 4.

SELECT Клиент.Фамилия, Клиент.Телефон

FROM Клиент

WHERE Клиент.Телефон Like ‘_[24]%’

Пример. Найти клиентов, у которых в номере телефона вторая цифра 2, 3 или 4.

SELECT Клиент.Фамилия, Клиент.Телефон

FROM Клиент

WHERE Клиент.Телефон Like ‘_[2-4]%’

Пример. Найти клиентов, у которых в фамилии встречается слог "ро".

SELECT Клиент.Фамилия

FROM Клиент

WHERE Клиент.Фамилия Like ‘%ро%’

Пример. Найти фамилии, начинающиеся на буквы вне диапазона от A до M:

SELECT au_lname FROM authors

WHERE au_lname LIKE ‘[^A-M]%’

 

Значение NULL

Неопределенное значение интерпретируется в реляционной модели как значение, неизвестное на данный момент времени. NULL – это не то же самое, что знак пробела (пробел – допустимый символ) или ноль (0 – допустимое число). NULL отличается и от строки нулевой длины (пустой строки). Это значение при появлении дополнительной информации в любой момент времени может быть заменено на некоторое конкретное значение.

Оператор IS NULL используется для сравнения текущего значения с NULL – специальным значением, указывающим на отсутствие любого значения.

При сравнении неопределенных значений не действуют стандартные правила сравнения: одно неопределенное значение никогда не считается равным другому неопределенному значению. Для выявления равенства значения некоторого атрибута неопределенному применяют специальные стандартные предикаты:

 

< имя атрибута >IS NULL и < имя атрибута > IS NOT NULL.

 

Если в данном кортеже (в данной строке) указанный атрибут имеет неопределенное значение, то предикат IS NULL принимает значение "Истина" (TRUE), а предикат IS NOT NULL — "Ложь" (FALSE), в противном случае предикат IS NULL принимает значение "Ложь", а предикат IS NOT NULL принимает значение "Истина".

Введение Null-значений вызвало необходимость модификации классической двузначной логики и превращения ее в трехзначную. Все логические операции, производимые с неопределенными значениями, подчиняются этой логике в соответствии с заданной таблицей истинности:

 

A B Not A A B A B
TRUE TRUE FALSE TRUE TRUE
TRUE FALSE FALSE FALSE TRUE
TRUE Null FALSE Null TRUE
FALSE TRUE TRUE FALSE TRUE
FALSE FALSE TRUE FALSE FALSE
FALSE Null TRUE FALSE Null
Null TRUE Null Null TRUE
Null FALSE Null FALSE Null
Null Null Null Null Null

 

В условиях поиска могут быть использованы все рассмотренные выше предикаты.

 

Пример. Найти сотрудников, у которых нет телефона (поле Телефон не содержит никакого значения).

SELECT Фамилия, Телефон

FROM Клиент

WHERE Телефон Is Null

IS NOT NULL используется для проверки присутствия значения в поле.

Пример. Выборка сотрудников, у которых есть телефон (поле Телефон содержит какое-либо значение).

SELECT Клиент.Фамилия, Клиент.Телефон

FROM Клиент

WHERE Клиент.Телефон Is Not Null

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...