Sql - blog-ul de exploatare a datelor Michael flonova
Vom continua să se familiarizeze cu SQL și în această secțiune vom învăța câțiva operatori care pot fi utilizate pentru a îmbunătăți căutarea de informații necesare. Astăzi va fi operatorii IN, între acestea, este NULL. De asemenea, ne vom uita la modele.
Să începem cu operatorul IN. În principiu, este posibil să se creeze interogări fără ea, dar simplifică codul SQL și făcându-l mai vizibil. Imediat uita-te la un exemplu:
În această interogare, vom selecta toate înregistrările în care același nume Andrew sau Ivan sau Bob sau Schwartz. Această solicitare este pe deplin de lucru, dar imaginați-vă că este necesar să se transfere 20 sau mai multe nume. În acest caz, cererea se va umfla ca un glob.
Aceasta rezolvă problema operatorului IN, care vă permite să specificați o listă de valori cu care să facă comparații. Lista este dată în paranteze, separate prin virgulă. Iată cum ar arăta aceeași interogare ca și cu operatorul IN:
O astfel de solicitare este de a scrie mult mai ușor, și este nevoie de mai puțin spațiu. Dacă examinăm cu atenție două cererea anterioară, este posibil fără explicațiile mele să înțeleagă ceea ce face ca operatorul IN. În acest caz, va afișa toate înregistrările în care câmpul numele are una dintre valorile enumerate în paranteze după virgulă. În paranteze după ce operatorul IN enumerăm valorile valide, separate prin virgule, care este necesară pentru a face o comparație.
Dacă utilizați un câmp numeric, ghilimelele trebuie să fie eliminate. De exemplu, următoarea interogare selectează toate înregistrările în care câmpul „idPosition“ este egală cu una dintre următoarele valori 1,2,3,4,5:
Împreună cu operatorul IN și tuturor operatorilor ulterioare puteți utiliza în condiții de siguranță operatori booleeni, cum ar fi în următoarea interogare, solicităm tuturor, altele decât cele enumerate în clauza IN linii:
Această interogare selectează toate înregistrările în care câmpul „idPosition“ nu 1, 2, 3, 4, 5. Că nu există deja nici un operator boolean NU poate nu este. Cu aceasta, vom schimba rezultatul comparației la opusul.
Numerele din paranteze pot fi în orice ordine, dar nu sunt în zadar a ales numerele care vin în succesiune. Vreau doar o tranziție lină către următorul exemplu - utilizarea operatorului între acestea. Sensul acestei afirmații este că vă permite să selectați toate înregistrările care conțin specificate valori de câmp într-un anumit interval. De exemplu, aveți nevoie pentru a selecta toate rândurile în care idPosition qt; = 1 și mai mică sau egală cu 5. Acest lucru se poate face următoarea interogare folosind operatorii de comparație:
Dar, cu ajutorul ÎNTRE totul se face mult mai frumos și elegant:
După cum puteți vedea, între operatorul de asemenea, este necesară doar pentru comoditate și puteți face cu ușurință fără ea. După cum știți, operatorul stabilește o serie de numere. Trebuie să ne amintim că punctele finale sunt incluse în rezultatul interogării.
Acum, să vedem cum puteți alege datele în afara acestui interval, fără a utiliza operator-. Pentru a face acest lucru, puteți utiliza una dintre următoarele interogări:
Ce opțiune pentru a utiliza - în funcție de preferințele personale. Dar aceeași problemă folosind mai elegant ÎNTRE rezolvate. Pentru a face acest lucru, scrie nu între, așa cum se arată în exemplul următor:
Acest operator poate fi utilizat cu câmpuri șir. De exemplu, aveți nevoie pentru a selecta toate rândurile în care numele începe cu litera A la B:
Ca urmare a acestei cereri va include nume precum Andrei și Boris. Vasile în rezultatul nu se încadrează, deoarece este numele de mai mult decât litera B.
Ne întoarcem la operatorul la IS, sau pentru a fi mai precis, IS NULL și nu este NULL, deoarece nu este este utilizat singur. Cu această declarație, puteți verifica valoarea la zero sau o valoare non-zero. Nu uitați că valoarea zero nu este egal cu 0 sau „“ (șir gol). Zero Valoarea NULL nu este domeniu în cazul în care nu există valori pline.
Această afirmație poate fi într-adevăr importantă. Să presupunem că doriți să selectați toate înregistrările în care câmpul nu este completat Orientul Mijlociu. Acest câmp nu poate fi umplut, și, uneori, poate fi necesar pentru a afla care înregistrează conține o valoare nulă:
Când ne sunt umplute cu valorile bazei de date, aceasta nu-l calculează pe operator, astfel încât toate câmpurile sunt completate, iar rezultatul nu va primi o singură linie. Pe de altă parte, faptul că, ca urmare nu am primit o singură linie, indică faptul că câmpul de date este numele destul de corectă și de mijloc a tuturor intrărilor pline.
Pentru a căuta toate non-zero, valoarea este folosit nu este operatorul NULL, de exemplu, următoarea interogare afișează toate înregistrările în care câmpul este umplut pentru depozitare patronimic „vcSurName“:
Din cauza operatorul nu, dimpotrivă, ne cerem acele rânduri în care câmpul nu conține un nume de valoare nulă.