Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Specificatorul DISTINCT pentru extragerea de valori unice
Daca nu se defineste nici o constrangere asupra unei tabele, ca de exemplu o cheie primara, tabela va putea contine linii duplicat. Chiar daca in tabela nu se pot stoca linii duplicat, pot apare valori duplicat la nivel de coloana la executia comenzii SELECT. Este posibil sa se doreasca, extragerea fara dubluri a valorilor dintr-o coloana. In acest scop se foloseste cuvantul cheie DISTINCT.
Exemplu:
Select Distinct Dep FROM Angajat
Daca se foloseste DISTINCT pentru mai multe coloane, liniile extrase sunt unice din punct de vedere al combinatiei coloanelor specificate dupa cuvantul cheie DISTINCT.
Exemple:
Se considera baza de date cu relatia STUDENT prezentata in capitolul 3.
STUDENT
SID |
Nume |
Major |
Grad |
Varsta |
100 |
ION |
Istorie |
GR |
21 |
150 |
POPA |
Calculatoare |
B2 |
19 |
200 |
BUCUR |
Matematica |
GR |
50 |
250 |
GRIGORE |
Istorie |
SP |
50 |
300 |
BUCUR |
Calculatoare |
SP |
41 |
350 |
RUSU |
Matematica |
C1 |
20 |
400 |
RADU |
Calculatoare |
B1 |
18 |
450 |
ION |
Istorie |
SP |
24 |
Daca se foloseste instructiunea:
SELECT SID, Nume, Major, FROM STUDENT
avem operatia de proiectie STUDENT [SID, NUME, Major] cu rezultatul:
SID |
Nume |
Major |
100 |
ION |
Istorie |
150 |
POPA |
Calculatoare |
200 |
BUCUR |
Matematica |
250 |
GRIGORE |
Istorie |
300 |
BUCUR |
Calculatoare |
350 |
RUSU |
Matematica |
400 |
RADU |
Calculatoare |
450 |
ION |
Istorie |
Observatie:
Nu trebuie confundat cuvantul cheie SELECT cu operatorul Select din algebra relationala, deoarece cuvantul cheie reprezinta un verb in SQL.
ڤ
Se considera urmatoarea secventa care are rezultatul
Major |
Istorie |
Calculatoare |
Matematica |
Istorie |
Calculatoare |
Matematica |
Calculatoare |
Istorie |
SELECT Major
FROM STUDENT;
In fapt SQL nu elimina in mod automat duplicatul. Daca se doreste ca randurile duplicat sa fie sterse se foloseste calificativul DISTINCT ca in secventa:
Istorie |
Calculatoare |
Matematica |
SELECT DISTINCT Major
FROM STUDENT;
Observatie:
Daca se doreste sa se execute operatia de selectie se foloseste comanda SELECT FROM, ca in secventa urmatoare:
SELECT SID, Nume, Major, Grad, VARSTA
FROM STUDENT,
WHERE Major = Matematica;
Rezultatul este:
200 |
BUCUR |
Matematica |
GR |
50 |
350 |
RUSU |
Matematica |
C1 |
20 |
Secventa de mai sus are urmatoarea echivalenta:
SELECT *
FROM STUDENT
WHERE Major = Matematica;
Daca se doreste sa se combine operatia de selectie si proiectie din algebra relationala se foloseste secventa:
SELECT Nume, Varsta,
FROM Student;
WHERE Major = Matematica;
Cu rezultatul:
BUCUR |
50 |
RUSU |
20 |
Copyright © 2024 - Toate drepturile rezervate