Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice
Acasa » referate » informatica » sql
Operatori si conditii de comparare

Operatori si conditii de comparare


Operatori si conditii de comparare

Conditiile de comparare permit compararea unui camp sau a unei expresii cu un alt camp, expresie sau lista de campuri. Trebuie facuta precizarea ca valorile de comparat trebuie sa apartina unor tipuri de date compatibile. Sintaxa acestor conditii poate contine:

<expr_1> <operator relational> <expr_2>

<expr_1> [NOT] BETWEEN <expr_2> AND <expr_3>

<expr> [NOT] IN <lista expresii>

<nume_camp> [NOT] LIKE <sir_caractere>

<nume_camp> IS [NOT] NULL



Expresiile folosite contin un nume de camp, o valoare constanta sau o combinatie a acestora, unite printr-un operator aritmetic (+, -, *, /), de comparare (>, <, <=, >=, <>) sau prin operatorii predicativi ai selectiei (BETWEEN, LIKE, IN, IS NULL). Prezentam in continuare doar exemple pentru operatorii de comparare si cei ai selectiei.

Operatorii de comparare

Exemplul1: Sa selecteze, din tabela student.dbf, toate inregistrarile care, pentru campul Specializ, au sirul de caractere "Adm. Publica":

SELECT * FROM student WHERE Specializ = "Adm. Publica"

Exemplul 2: Sa se selecteze, toti studentii care au media >= 8.50.

SELECT * FROM student WHERE Media >= 8.50

Exemplul 3: Sa se selecteze toti studentii de la specializarea "Adm. Publica" care au obtinut media > = 8.50.

SELECT * FROM student WHERE Specializ = "Adm. Publica" AND Media >= 8.50

Exemplul 4: Plecand de la tabela student.dbf au mai fost incarcate cinci articole cu date privind studentii care nu locuiesc in orasul Iasi.

Sa se selecteze, pentru a fi cazati in camine, toti studentii care nu locuiesc in Iasi dar au media >=8.50. Fraza SELECT va avea structura:

SELECT * FROM student WHERE Oras <> "iasi" AND Media >=8.50

Operatorii predicativi ai selectiei

Operatorul BETWEEN permite specificarea unui domeniu pentru o conditie de cautare. Acest operator poate fi utilizat cu orice date de tip ordinal, domeniul specificat fiind inclusiv. Limitele intervalului in care se realizeaza compararea sunt legate prin operatorul logic AND.

Exemplul 5: Sa se selecteze toti studentii care au mediile cuprinse intre 8.50 si 10.00 inclusiv.

SELECT * FROM student ;

WHERE Media BETWEEN 8.50 AND 10.00

Aceasta interogare este echivalenta cu constructia:

SELECT * FROM student ;

WHERE Media >=8.50 AND Media <=10.00

Operatorul IN permite ca si operatorul BETWEEN simplificarea conditiei de cautare. El testeaza daca valoarea unui atribut specificat in lista de atribute din clauza WHERE se potriveste uneia din valorile listei specificate in predicatul IN.

Exemplul 6. Sa se selecteze campurile Numest si Prenume numai pentru studentii din orasele Iasi, Arad si Galati.

SELECT Numest, Prenume FROM student WHERE Oras IN ("iasi", "arad", "galati")

O solutie alternativa care ar duce la acelasi rezultat consta in utilizarea operatorilor logici AND si OR. Astfel, interogarea de mai sus se poate realiza si prin urmatorul exemplu:

SELECT Numest, Prenume FROM student;

WHERE Oras ="iasi" OR Oras = "arad" OR Oras = "galati

Rezultatul acestor interogari este:

Exemplul 7. Sa se selecteze din tabela student toti studentii care au domiciliul stabil in localitatile cu codul postal 6600, 2200 si 6100.

SELECT *FROM student WHERE Codpostal IN (6600, 2200, 6100 )

Folosind operatorul OR se obtine interogarea din exemplul nr.8:

Exemplul 8

SELECT * FROM student ;

WHERE Codpostal =6600 OR Codpostal = 2200 OR Codpostal = 6100

Operatorul LIKE permite selectia sirurilor de caractere care au un element comun. Pentru aceasta se defineste o masca in care se pot folosi caracterele speciale % si _. Semnul "%" determina inlocuirea unui sir de caractere de lungime variabila, in timp ce semnul "_" inlocuieste (substituie) un singur caracter. Aceste doua caractere pot fi utilizate si impreuna.

Exemplul 9: Sa se selecteze toti studentii a caror nume incepe cu litera C.

SELECT * FROM student WHERE Numest LIKE "c%"

Exemplul 10: Sa se selecteze toti studentii care au in interiorul numelui sirul de caractere "esc".

SELECT * FROM student WHERE Numest LIKE "%esc%"

Exemplul 11: Sa se selecteze studentii care au numele format din sase caractere, primele cinci fiind "costa".

SELECT *FROM student WHERE Numest LIKE "costa_"

Operatorul IS NULL ofera facilitati de selectare a tuplurilor ale caror valori ale atributelor au valoarea NULL. Facem precizarea ca o valoare nula este o valoare nedefinita si nu se poate confunda cu valoarea zero (pentru campurile numerice) sau cu valoarea "spatiu" (pentru campurile de tip sir )

Exemplul 12: Sa se selecteze din tabela student.dbf (in care au mai fost inserate trei articole, fara incarcarea cu date a campului MEDIA), toti studentii pentru care nu a fost incheiata situatia scolara:

SELECT * FROM student WHERE Media IS NULL

In cazul tuturor operatorilor de selectie poate fi utilizata si optiunea NOT, care inverseaza sensul comparatiei.

Exemplul 13: Sa se selecteze studentii care locuiesc intr-un oras al carui nume nu incepe cu litera "i":

SELECT * FROM student WHERE Oras NOT LIKE "i%"

Exemplul 14: Sa se obtina lista studentilor pentru care se cunoaste domiciliul.

SELECT * FROM student WHERE Oras IS NOT NULL

Prin aceasta interogare sunt selectati doar studentii pentru care a fost precizat orasul de domiciliu.





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.