Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая работа / bd / базы данных2222.rtf
Скачиваний:
241
Добавлен:
17.02.2014
Размер:
19.41 Mб
Скачать

Условия отбора

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

1. Сравнение. Значение одного выражения сравнивается со значением другого выражения. К нему относятся следующие операторы: =,<>,<,<=,>,>=; Общий формат записи такой:

«выражение1» оператор «выражение2»;

где «выражение1» и «выражение2» - любые допустимые в SQL выражения, например: имя колонки, константа или любые арифметические выражения.

2. Проверка на принадлежность диапазону. Значение выражения проверяется на принадлежность диапазону, заданному двумя другими выражениями. Общий формат записи такой:

«выражение1» BETWEEN «выражение2» AND «выражение3».

Эта проверка полностью эквивалентна сложному условию отбора вида: («выражение1» >= «выражение2») AND («выражение1» <= «выражение3»)

и введена в стандарт SQL для удобства и простоты. Инвертированная форма, т.е. проверка на НЕ принадлежность диапазону, задаётся так:

«выражение1» NOT BETWEEN «выражение2» AND «выражение3».

3. Проверка на членство в множестве. Проверяется, совпадает ли значение выражения с одним из значений заданного множества. Общий формат записи такой:

«выражение» IN («константа1», «константа2»,…, «константаN»);

Это проверка полностью эквивалентна сложному условию отбора вида:

(«выражение» = «константа1») or («выражение» = «константа1») … or («выражение» = «константаN»)

Инвертированная форма, т.е. проверка на НЕ принадлежность множеству задаётся так:

«выражение» NOT IN («константа1», «константа2»,…, «константаN»);

4. Проверка на соответствие шаблону. Проверяется, соответствует ли строковое значение, содержащееся в столбце, определённому шаблону. Общий формат записи такой:

«выражение» LIKE «шаблон» ESCAPE «символ_пропуска»

Шаблон представляет собой строку, в которую может входить один или более подстановочных знаков. Эти знаки интерпретируются особым образом. Например, подстановочный знак «%» заменяет в шаблоне любое количество любых символов, а подстановочный знак «_» заменяет в шаблоне один любой символ. Так, соответствовать шаблону, заданному строкой «Мос%», будут строки «Москва», «Московский» или «Моссовет», а шаблону «Мос_ва» – из вышеперечисленных – только строка «Москва».

Инвертированная форма проверяет соответственно на не соответствие шаблону и записывается так:

«выражение» NOT LIKE «шаблон» ESCAPE «символ_пропуска»

5. Проверка на равенство значению NULL. Проверяется равенство выражения значению NULL. Общий формат записи такой:

«выражение» IS NULL

а инвертированный:

«выражение» IS NOT NULL

Следует отметить, что данная проверка никогда не вернёт значение NULL а только TRUE или FALSE.

Составные или сложные условия отбора

Составными или сложными условиями отбора называются объединённые с помощью операторов булевской логики наборы простых условий. Как мы выяснили, результатом проверки простого условия является одно из трёх возможных значений: TRUE, FALSE или NULL. Над этими значениями также можно произвести действия, только теперь уже при помощи логических операторов OR, AND и NOT. Фактически OR – эквивалент оператора сложения для обычных чисел, AND – оператора умножения, у них обоих по два аргумента. Оператор NOT это логическое отрицание, превращающее TRUE в FALSE и наоборот, аргумент всегда один.

Синтаксическая диаграмма записи сложного условия отбора представлена на рис. 7.

Рис. 7.

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

Как и для обычных операторов сложения и умножения, для логического сложения и логического умножения действуют приоритеты выполнения в выражении. Если с помощью операторов AND, OR или NOT объединяется более двух условий отбора, то в соответствии со стандартом ANSI/ISO оператор NOT имеет наивысший приоритет, затем AND и, наконец, OR.Использование скобок для задания альтернативных приоритетов выполнения действий аналогично обычным математическим операторам.

Соседние файлы в папке bd