|
![]() | Výrazy | ![]() | Jazyk SQL a jeho implementace | Dotazy | ![]() |
podmínka ::= booleovský_faktor { OR booleovský_faktor }…
booleovský_faktor ::= booleovský_term { AND booleovský_term }…
booleovský_term ::= [ NOT ] predikát
predikát ::= výraz relační_operátor výraz
| predikát_IS
| zobecněné_porovnání
| predikát_BETWEEN
| predikát_IN
| predikát_EXISTS
| predikát_UNIQUE
| predikát_LIKE
| predikát_IS_NULL
| predikát Fulltext
| privil_predikáty
| ( podmínka )
relační_operátor ::= > | < | <= | >= | = | <>
predikát_IS ::= výraz IS [NOT] { TRUE | FALSE | UNKNOWN }
Popis:
Podmínkou rozumíme takový obecný výraz, který nabývá hodnot TRUE, FALSE nebo UNKNOWN.
Podmínka se používá při vyhodnocování podmíněného výrazu CASE, klauzule WHERE a klauzule HAVING specifikace dotazu, klauzule CHECK v integritním omezení nebo specifikace JOINu, v příkazech UPDATE a DELETE, v definici triggeru nebo při vyhodnocení řídicích příkazů IF, CASE, WHILE a REPEAT.
Priorita operátorů v podmínkách je následující:
Podmínka může nabývat tří hodnot: TRUE, FALSE nebo UNKNOWN. Hodnota UNKNOWN je ekvivalentní hodnotě NULL.
Operátor OR provádí disjunkci pravdivostních hodnot. Jeho výsledek je TRUE, pokud alespoň jeden operand má hodnotu TRUE, výsledek je FALSE, pokud oba operandy jsou FALSE, jinak je výsledek UNKNOWN.
Operátor AND provádí konjunkci pravdivostních hodnot. Jeho výsledek je TRUE, pokud oba operandy mají hodnotu TRUE, výsledek je FALSE, pokud alespoň jeden operand je FALSE, jinak je výsledek UNKNOWN.
Operátor NOT provádí negaci pravdivostních hodnot, negace TRUE je FALSE, negace FALSE je TRUE, negace UNKNOWN je UNKNOWN.
a | b | a AND b | a OR b | NOT a |
TRUE | TRUE | TRUE | TRUE | FALSE |
TRUE | FALSE | FALSE | TRUE | FALSE |
TRUE | UNKNOWN | UNKNOWN | TRUE | FALSE |
FALSE | TRUE | FALSE | TRUE | TRUE |
FALSE | FALSE | FALSE | FALSE | TRUE |
FALSE | UNKNOWN | FALSE | UNKNOWN | TRUE |
UNKNOWN | TRUE | UNKNOWN | TRUE | UNKNOWN |
UNKNOWN | FALSE | FALSE | UNKNOWN | UNKNOWN |
UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
Porovnání hodnot dvou výrazů pomocí relačních operátorů předpokládá, že oba výrazy jsou číselného typu, typu znakový řetězec, typu binární řetězec nebo typu DATE, TIME nebo TIMESTAMP.
Predikát IS předpokládá, že v něm obsažený výraz je booleovského typu, a porovnává jej s booleovskou konstantou.
... WHERE zaplaceno IS NOT TRUEvybere záznamy, které mají ve sloupci
zaplaceno
hodnotu FALSE nebo NULL.
Popis dalších typů predikátů je na následujících stránkách:
Seznam subsekcí:
![]() | Výrazy | ![]() | Jazyk SQL a jeho implementace | Dotazy | ![]() |