Documente Academic
Documente Profesional
Documente Cultură
Cea mai simplă formă a instrucţiunii SELECT este, pentru care datele oferite în urma selecţiei
nu vor fi ordonate:
SELECT
nume_câmpuri
FROM tabel
• nume_câmpuri reprezintă câmpurile care vor fi regăsite. Dacă în loc de numele câmpurilor
se pune * atunci se va face căutare după toate câpurile.
• tabel reprezintă numele tabelului în care se face căutarea.
SELECT nume_câmpuri
FROM tabel
ORDER BY nume_câmpuri DESC/ASC
Această clauza va fi stabilită la sfârşitul instrucţiunii SELECT. Dacă se doreşte sortarea după
mai multe câmpuri, atunci acestea vor fi aranjate în funcţie de ordinea care a fost precizată.
Ordinea de aranjare a rezultatelor se va face în funcţie de cuvântul cheie DESC sau ASC.
Filtrarea datelor
Filtrarea datelor se face cu ajutorul clauzei WHERE, care se plasează în cadrul instrucţiunii
SELECT.
SELECT nume_câmpuri
FROM tabel
WHERE camp operator
valoare
Clauza WHERE, care specifică criteriile de căutare, se plasează imediat după clauza FROM.
Operator poate fi unul dintre operatorii de verificare: egal, diferit, mai mare, mai mic sau egal,
între (BETWEEN ...AND...).
În cazul în care se doreşte filtrarea după mai multe câmpuri, se va folosi clauza WHERE în două
moduri: folosind operatorii AND sau OR.
SELECT nume_câmpuri
FROM tabel
WHERE camp operator valoare AND/OR camp1 operator
valoare1
Operatorii AND sau OR pot fi folosiţi în combinaţie, dar este importantă odinea de evaluare a
acestora. Operatorul AND este evaluat înaintea operatorului OR, chiar dacă poziţia acestuia ar fi
la sfârşit. Pentru a respecta ordinea şi de a grupa operatorii în mod explicit se vor folosi
parantezele.
Este folosit pentru a specifica un domeniu de condiţii, care poate fi satisfăcută oricare.
Operatorul preia o listă cu elemente delimitate prin virgulă, de valori valabile şi sunt incluse între
paranteze.
SELECT nume_câmpuri
FROM tabel
WHERE nume_camp IN
(’valori’)
Operatorul IN este echivalent cu operatorul OR.
SELECT nume_câmpuri
FROM tabel
WHERE nume_camp LIKE „%sircaractere%”
Va regăsi toate valorile care conţin şircaractere. Dacă caracterul % ar fi pus doar la început, s-ar
fi regăsit valorile care se termină în şircaractere.
SELECT nume_câmpuri
FROM tabel
WHERE nume_camp LIKE
„_şircaractere_”
Va regăsi toate valorile care au un caracter înainte şi după de şircaractere.
3. Caracterul [] – este folosit pentru specificarea unui set de caractere, dintre care unul
trebuie să corespundă unui caracter în poziţia specificată.
SELECT nume_câmpuri
FROM tabel
WHERE nume_camp LIKE
„[caracter]”
Va regăsi toate valorile care au caracterele specificate prin caracter în poziţia precizată. Dacă în
loc de „[caracter]” ar fi „[^caracter]”, atunci se vor afişa valorile care nu conţin caracterul
respectiv în poziţia precizată. Acest caracter poate fi folosit în combinaţie cu celelalte caractere.
Gruparea datelor
SELECT
nume_câmpuri
FROM tabel
GROUP BY camp
Clauza WHERE, care specifică criteriile de căutare, se plasează imediat după clauza FROM.
Pentru a elimina situaţia în care nu se ştie cu exactitate ordinea în care să se introducă datele, se
va folosi următoarea sintaxă.
INSERT INTO nume_tabel
(campuri)
VALUES (valori_de_introdus)
În cazul în care un câmp nu este completat cu o valoare, în mod automat i se va insera valoarea
NULL. Dacă câmpul omis nu acceptă valoarea NULL atunci SGBD-ul va genera un mesaj de
eroare şi rândul nu va fi inserat.
Este folosită pentru a introduce într-un tabel rezultatul unei instrucţiuni SELECT.
INSERT INTO nume_tabel
(campuri)
SELECT campuri_tabel_importat
FROM nume_tabel1
• nume_tabel reprezintă numele tabelului în care se vor introduce datele
• campuri reprezintă numele campurilor în care se introduc datele
• campuri_tabel_importat reprezintă structura tabelului din care se importă datele
• nume_tabel reprezintă numele tabelului din care se importă datele.
INSERT INTO Clienti (cod_client, denumire_client,
tip_client)
SELECT cod_client, denumire_client, tip_client
FROM ClientiNoi
Această instrucţiune elimină enumerarea valorilor care urmează să fie introduse şi va introduce
toate datele care se află în tabelul nume_tabel1.
Campuri_tabel_importat nu este obligatoriu să aibă acelaşi numele cu câmpurile tabelei
nume_tabel, deoarece SGBD-ul urmăreşte poziţia coloanei, astfel că prima coloană a
instrucţiunii SELECT va fi folosită pentru a insera prima coloană a tabelului nume_tabel.
Instrucţiunea SELECT poate conţine şi clauza WHERE pentru a selecta anumite date care vor fi
inserate.
Nu foloseşte instrucţiunea INSERT. Pentru a copia conţinutul unui tabel în cadrul unui alt tabel
nou se va folosi instrucţiunea SELECT INTO.
SELECT
nume_cîmpuri
INTO tabel_nou
FROM tabel
Se va crea un tabel nou numit tabel_nou care va copia întregul conţinut al tabelului original în
acesta. Dacă în loc de nume_câmpuri se va trece * atunci se vor copia toate coloanele tabelului
tabel.
FROM tabel
Deosebirea dintre SELECT INTO şi INSERT SELECT este următoarea: SELECT INTO face
export de date în cadrul unui nou tabel şi INSERT SELECT realizează importul datelor.
UPDATE nume_tabel
SET coloana1=valoare1,
coloana2=valoare2,...
WHERE coloana= valoare
• nume_tabel este numele tabelului care urmează să fie actualizat
• coloanai=valoarei reprezintă coloanele care vor fi modificate cu noile valori
• coloana=valoare reprezintă condiţia de filtrare şi determină ce rânduri vor fi actualizate
Dacă clauza WHERE ar lipsi, atunci se vor actualiza toate înregistrările tabelei.
DELETE FROM
nume_tabel
WHERE coloana= valoare
• nume_tabel este numele tabelului din care urmează să fie şterse înregistrări
• coloana=valoare reprezintă condiţia de filtrare şi determină ce rânduri vor fi şterse
Dacă clauza WHERE ar lipsi, atunci se vor şterge toate înregistrările tabelei.
Lucrul cu sub-interogări
În cazul unei sub-interogări se pleacă de la clauza SELECT interioară spre cea exterioară.
SELECT nume_câmpuri
FROM tabel1
WHERE camp IN (SELECT nume_câmp1
FROM tabel2
WHERE camp1 operator
valoare)
Unirea tabelelor
Uniunea reprezintă un mecanism folosit pentru asocierea tabelelor din cadrul unei instrucţiuni
SELECT. În urma unei uniuni se va returna un singur set de date de ieşire şi asociază
instantaneu rândurile corecte din fiecare tabel.
În crearea unei uniuni trebuie să se specifice toate tabelele care urmează să fie incluse, dar
şi legăturile dintre ele.
SELECT nume_câmpuri_dorite_din
tabele
FROM tabel1, tabel2
WHERE tabel1.camp1=tabel2.camp1
Clauza WHERE realizează unirea dintre cele două tabele, iar operatorul este =. În acest caz,
procesul de unire se numeşte echi-uniune (uniune internă). Dacă lipseşte clauza WHERE,
atunci se va realiza un produs cartezian între tabele în funcţie de cîmpurile
nume_câmpuri_dorite_din tabele.
O altă formă a uniunii interioare este:
SELECT nume_câmpuri_dorite_din
tabele
FROM tabel1 INNER JOIN tabel2
ON tabel1.camp1=tabel2.camp1