Ajutor - de - (DML) sql predicate (partea 1)

Predicate (partea I)

Predicate sunt expresii care iau valoarea de adevăr. Acestea pot fi fie o singură expresie, precum și orice combinație a unui număr nelimitat de expresii construite folosind operatori booleeni ȘI. SAU, sau nu. În plus, aceste combinații pot fi utilizate de către SQL-operatorul IS. și paranteze pentru specificarea ordinea operațiilor.

Predicatul în limba SQL poate fi una dintre cele trei este TRUE (adevarat), FALSE (fals) sau NECUNOSCUTĂ (necunoscute). Cu excepția următoarelor predicate: NULL (nici o valoare), EXISTS (existență), unic (unic) și POTRIVIRE (un meci), care nu poate fi setat la NECUNOSCUT.

Regulile de combinare a celor trei valori de adevăr mai ușor de reținut, ceea ce denotă TRUE ca 1, FALSE ca 0, și NECUNOSCUT atât 1/2 (undeva între adevărat și fals).
  • Și două valori de adevar ofera un minim de aceste valori. De exemplu, adevărat și NECUNOSCUT este încă necunoscut.
  • Sau două valori de adevăr dă maximul acestor valori. De exemplu, FALSE SAU NECUNOSCUT va fi egal cu NECUNOSCUT.
  • valoare de adevăr negație este de 1 minus această valoare de adevăr. De exemplu, nu NECUNOSCUT este încă necunoscut.

Un predicat este o comparație între cele două expresii, conectate printr-un operator de comparare. Există șase operatori tradiționali relaționale :. =>. <.>=. <=. <>.
Tip de date numerice (numerele) sunt comparate în funcție de valoarea lor algebrică.
Aceste STRING tipuri de caractere (șiruri de caractere) sunt comparate în funcție de secvența lor alfabetică. Dacă a1 a2 ... o și b1 b2 ... bn - două secvențe de caractere, primul „mai mic“, în al doilea rând, în cazul în care a1 Tip de date DATETIME (data / ora) sunt comparate în ordine cronologică.
INTERVAL Tip de date (canal de timp) este convertită în tipurile corespunzătoare și apoi se compară valorile numerice ca tipul NUMERIC convențional.

Exemplu. Obțineți informații pe computerele care au o viteză de procesor de cel puțin 500 MHz, iar prețul mai mic de 800 $:

SELECT * de la PC
Unde viteza> = 500 și preț <800;


Interogarea returnează următoarele date:

Între controalele predicat dacă valoarea expresiei de încercare se încadrează în intervalul definit de expresiile de frontieră care leagă cuvântul oficial și. Desigur, ca și pentru expresia comparație predicat în predicatului BETWEEN trebuie să fie tipuri compatibile.

Sintaxa ÎNTRE :: =
<Проверяемое выражение> [NU] ÎNTRE
<Начальное выражение> ȘI <Конечное выражение>

predicat
exp1 ÎNTRE exp2 ȘI exp3
echivalent cu predicatul
exp1> = exp2 AND exp1<=exp3
Un predicat
exp1 NU ÎNTRE exp2 ȘI exp3
echivalent cu predicatul
NU (exp1 ÎNTRE exp2 ȘI exp3)

În cazul în care valoarea Exp1 predicat ÎNTRE exp2 ȘI exp3 este adevărat, în general, aceasta nu înseamnă că valoarea Exp1 predicat ÎNTRE exp3 ȘI exp2 va fi, de asemenea, la TRUE, ca fostul poate fi interpretat ca un predicat
exp1> = exp2 AND exp1<=exp3
iar al doilea ca
exp1> = exp3 AND exp1<=exp2

Exemplu. Găsiți modelul de procesor și viteza calculatoarelor costa de la 400 $ la 600 $:

Selectați modelul, viteza de la PC
UNDE preț între 400 și 600;

IN predicatului determină dacă valoarea expresiei de test se găsește într-un set de valori care sunt fie definite în mod explicit sau obținute prin interogarea secundară tabel. Tabelul sub-interogare este un operator regulat al SELECT, care creează una sau mai multe rânduri pentru o coloană de tip de date compatibile cu valoarea expresiei de test. În cazul în care obiectivul este echivalent cu cel puțin una dintre respectivele valori într-o propoziție în, în valoare de adevăr predicat este egal cu adevărat. În cazul în care pentru fiecare valoare a lui X în propoziția țintă în<>X, o valoare de adevăr este falsă. Dacă subinterogare este executat, iar rezultatul nu conține șir de caractere (tabelul martor), FALSE valoarea predicatul. Atunci când nu a observat, nici una dintre condițiile de mai sus, valoarea este predicatul NECUNOSCUT.

Sintaxa IN :: =
<Проверяемое выражение> [NU] IN (<подзапрос>)
| (<выражение для вычисления значения>. )

Exemplu. Găsiți modelul, viteza procesorului și capacitatea hard disk de computere, care sunt echipate cu hard disk-uri de 10 sau 20 MB:

Selectați modelul, viteza, HD de la PC
UNDE IN hd (10, 20);

Exemplu. Găsiți modelul, viteza procesorului și capacitatea hard disk de computere, care sunt echipate cu hard disk-uri de 10 sau 20 MB și produse de producătorul A:

modelul SELECT, viteza, HD
de la PC
UNDE IN hd (10, 20) ȘI
Modelul IN (model de selectare din produs
UNDE maker = 'A');

Exerciții SELECT (etape de evaluare)