Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Выражения и предикаты в SQL.




 

Итак, в рамках поставленной задачи нам необходимо и достаточно знания лишь "классического набора” выражений SQL, а именно - арифметических выражений и предикатов следующего вида:

 

а) Сравнения

 

Аргумент1 Знак_сравнения Аргумент2

 

где знак сравнения - один из символов отношений = (равенство), <>, !=, # (неравенство) и >, >=,<,<=, а также, для символьных строк, == (точное равенство) и [NOT] LIKE (сравнение по маске),

 

Заметьте, что, если для числовых типов и типа "дата" такие сравнения имеют обычный смысл, то для символьных строк имеется ввиду лексикографическое (словарное) сравнение.

 

Предикат сравнения по маске имеет вид

 

Аргумент [NOT] LIKE Маска

 

где Маска - произвольная символьная строка, (возможно) содержащая специальные символы кратной замены % и одиночной замены _. Предикат [NOT] LIKE считается истинным, если маску можно превратить в стоящий слева аргумент подстановкой некоторых слов вместо символа % и одиночных символов - вместо символов _.

 

б) Булевские формулы, как обычно, образуются с помощью операций конъюнкции AND, дизъюнкции OR и отрицания NOT

 

в) "Синтаксический сахар" - группа предикатов, выразимых через булевские комбинации сравнений, но более кратких и привычных по форме (особенно, для англоязычного пользователя)

 

Аргумент1 [NOT] BETWEEN Аргумент2 AND Аргумент3

- краткая форма записи предиката

[NOT] (Аргумент2 £Аргумент1 AND Аргумент1£Аргумент3)

 

Аргумент [NOT] IN (список_значений)

- краткая форма записи предиката

[NOT] (Аргумент=Аргумент1 OR Аргумент£Аргумент2 OR … Аргумент=АргументN)

 

 

г) Предикаты, использующие выборку образуют самый мощный - и самый сложный в освоении аппарат программирования SQL. Мы вернемся к ним в разделе «Вложенные подзапросы».

 

 

Имя_поля Знак_сравнения ALL (команда SELECT)

 

истинно, если сравнение выполняется для стоящего слева значения поля и всех значений, выбранных командой SELECT; при этом предполагается, что последняя выдает список значений - формально, таблицу с единственным полем, совместимым по типу со значением поля, стоящим слева. Условие считается истинным также, если подвыборка пуста.

 

Имя_поля Знак_сравнения ANY | SOME (команда SELECT)

 

истинно, если сравнение выполняется для стоящего слева значения поля и хотя бы одного из значений, выбранных командой SELECT - снова предполагается, что последняя выдает список значений, совместимых по типу со значением поля. Если подвыборка пуста, условие считается ложным.

 

[NOT] EXISTS (команда_SELECT)

 

истинно, если подвыборка (не) пуста, т.е. (не) содержит по крайней мере одну строку.

 

Имя_поля [NOT] IN (команда_SELECT)

 

имеет тот же смысл, что и одноименный предикат IN, рассмотренный выше, с той лишь разницей, что список значений не задается явно, но является результатом подвыборки; истинен, если значение поля совпадает хотя бы с одним значением из (единственного поля) результата выборки.

 

 


Поделиться:

Дата добавления: 2015-01-29; просмотров: 107; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты