Вход/Регистрация
Понимание SQL
вернуться

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

Шрифт:

<comparison predicate> (предикат сравнения)

Синтаксис

<value expresslon> <relational op> <value expresslon> |

<subquery> <relatlonal op> ::= = | < | > | < | >= | <>

Если либо <value expression>=NULL, либо <comparison predicate >=неизвестно; другими словами, это верно если сравнение верно или невер-но если сравнение неверно.

<relational op> имеет стандартные математические значения для числовых значений; для других типов значений, эти значения определяются конкретной реализацией. Оба <value expression> должны иметь сравнимые типы данных. Если подзапрос<subquery> используется, он должен содержать одно выражение <value expression> в предложении SELECT, чье значение будет заменять второе выражение <value expression> в предикате сравнения<comparision predicate>, каждый раз когда <subquery > действительно выполняется.

<between predicate>

Синтаксис

< value expression > [NOT] BETWEEN < value expression >

AND < value expression >

< between predicate > - A BETWEEN B AND C, имеет такое же значение что и <predicate > - (A >=B AND <=C). <between predicate> для которого A NOT BETWEEN B AND C, имеет такое же значение что и NOT (BETWEEN B AND C). <value expression> может быть выведено с помощью нестандартного запроса <subquery> (*nonstandard* ).

< in prediicate >

Синтаксис

<value expression> [NOT] IN <value list> | <subquery>

Список значений<value list> будет состоять из одного или более перечисленых значений в круглых скобках и отделяемых запятыми, которые имеют сравнимый с <value expression> тип данных. Если используется подзапрос<subquery>, он должен содержать только одно выражение <value expression> в предложении SELECT (возможно и больше, но это уже будет вне стандарта ANSI). Подзапрос<subquery > фактически, выполняется отдельно для каждой строки-кандидата основного запроса, и значения которые он выведет, будут составлять список значений<value list> для этой строки. В любом случае, предикат<in predicate> будет верен если выражение<value expression> представленное в списке значений<value list>, если не указан NOT. Фраза A NOT IN (B, C) является эквивалентом фразы NOT (A IN (B, C)).

< like predicate >

Синтаксис

<charvalue> [NOT] LIKE <pattern> [ESCAPE

<escapechar>]

<charvalue > - это любое *нестандартное* выражение <value expression> алфавитно-цифрового типа. <charvalue > может быть, в сооветствии со стандартом, только определенным столбцом<column spec>. Образец<pattern> состоит из строки<string> которая будет проверена на совпадение с <charvalue>. Символ окончания<escapechar > - это одиночный алфавитно-цифровой символ. Совпадение произойдет, если верны следующие условия :

* Для каждого символа подчеркивания<underscore > в бразце<pattern > которая не предшесивует символу окончания<escapechar>, имеется один соответствующий ему символ <charvalue>.

* Для каждого < percent sign> в образце<pattern> который не предшествует <escapechar>, имеются нули или более соответствующие символы в <charvalue>.

* Для каждого <escapechar > в <pattern > который не предшествует другому <escapechar>, нет никакого соответствующего символа в <charvalue>.

* Для каждого иного символа в <pattern>, один и тот же символ устанавливается у соответствующей отметке в <charvalue>.

Если совпадение произошло, <like predicate > - верен, если не был указан NOT. Фраза NOT LIKE 'текст' - эквивалентна NOT (A LIKE 'текст').

< null predicate >

Синтаксис

<column spec> IS [NOT] NULL

<column spec>=IS NULL, если NULL значение представлено в этом столбце. Это сделает <null predicate > верным если не указан NULL. Фраза <column spec> IS NOT NULL, имеет тот же результат что и NOT (<column spec > IS NULL ).

< quantified predicate >

Синтаксис

<value expression> <relational op>

<quantifier> <subquery>

<quantifier> ::=ANY | ALL | SOME

Предложение SELECT подзапроса<subquery > должно содержать одно и только одно выражение значения<value expression>. Все значения выведенные подзапросом<subquery > составляют набор результатов<result set>. <value expression> сравнивается, используя оператор связи<relational operator>, с каждым членом набора результатов<result set>.

Это сравнение оценивается следующим образом:

* Если <quantifier>=ALL, и каждый член набора результатов<result set> делает это сравнение верным, <quantified predicate > - верен.

* Если <quantifier>=ANY, и имеется по крайней мере один член из набора результатов<result set>, который делает верным это сравнение, то <quantified predicate > является верным.

* Если набор результатов<result set> пуст, то <quantified predicate> верен, если <quantifier>=ALL, и неверен если иначе.

  • Читать дальше
  • 1
  • ...
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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