Podmφnka (SQL)

podmφnka ::= booleovsk²_faktor { OR booleovsk²_faktorbooleovsk²_faktor ::= booleovsk²_term { AND booleovsk²_termbooleovsk²_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
    | ( podmφnka )
relaΦnφ_operßtor ::= > | < | <= | >= | = | <>
predikßt_IS ::= v²raz IS [NOT] { TRUE | FALSE | UNKNOWN }

Popis:

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 nßvrhu tabulky 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φ:

1. *,/,DIV a MOD pro nßsobenφ, d∞lenφ, celoΦφselnΘ d∞lenφ a zbytek po d∞lenφ;

2. unßrnφ - , binßrnφ + a - pro sΦφtßnφ a odeΦφtßnφ;

3. relaΦnφ operßtory <,>,=,>=,<=,<>,.=,.=.,~ a predikßty (BETWEEN, LIKE apod.);

4. negace NOT;

5. spojka AND;

5. spojka OR.

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.

Tabulka pravdivostnφch hodnot v t°φhodnotovΘ logice

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. WinBase602 umo₧≥uje pou₧φt v tΘto funkci i relaΦnφ operßtory.

Popis dalÜφch typ∙ predikßt∙ je na nßsledujφcφch strßnkßch:

Odchylky od Intermediate level sm∞rem k Full level nebo k SQL 3

Odchylky od Intermediate level sm∞rem k Entry level