FUNDAMENTELE SQL (DE CĂTRE PRAVEEN SIR):
Baza de date: Colecț ia de date este cunoscută sub numele de bază de date.
SGBD: Sistem de Gestionare a Bazei de Date Relaț ionale.
1. Rela ț ie sub formă de tabel. [Relational]
2. Este o colectie de date. (Datele sunt o informa ț ie neorganizată) [bază de date]
3. Descrie modalită ț i de a gestiona datele. (Pentru a minimaliza redundan ț a sau a reduce repetarea)
[sistem de management]
RDBMS: Concept
SQL: Limbaj (Limbaj de interogare structurat)
Server
CAMPURI SAU Atribute: Coloanele sunt cunoscute ș i sub denumirea de Campuri sau Atribute.
TUPLE: Rândurile sunt cunoscute sub numele de tuple.
RECORDURI: Rândurile cu date inserate în ele sunt cunoscute sub numele de recorduri.
CARDINALITATE: Numărul de rânduri dintr-un tabel este cunoscut sub numele de Cardinalitate.
GRADE: Numărul de coloane dintr-un tabel este cunoscut sub numele de Grad.
CHEIE PRIMARĂ: Unică ș i Nu null.
CHEIE STRĂINĂ: Cunoscută ș i sub denumirea de cheie de referinț ă.
• Poate fi la fel
• Poate fi nul.
Coloana cheie primară trebuie să fie obligatorie într-un tabel.
Poate exista mai mult de o coloană de cheie străină într-un tabel.
DDL: Baza de date ș i Tabele.
DML ș i DQL: Datele din interiorul tabelelor.
DCL: Permisiune.
CATEVA COMANDAMENTE:
CREAȚ I DATABASE demo;
AFIȘ EAZĂ BAZELE DE DATE;
FOLOSIȚ I demo;
CREAȚ I TABELA persoană (col-nume tip de date constrângeri);
ARATĂ TABELUL
Ș TERGE TABELUL persoană;
DROP: Structura tabelului va fi eliminată împreună cu relaț iile, cheile, privilegiile de acces.
ALTERA:
i. Schimbaț i numele tabelului:
Modifică tabelul persoană denumit în angajat.
ii. Adaugă o coloană:
Modificaț i tabela angajat adăugaț i locaț ie varchar(25) nu null;
iii. Elimină o coloană:
Alterare tabel angajat şterge coloana locaț ie;
COMENZI DML:
• INSEREAZĂ:
INSERARE ÎN angajat VALORI (101, 'NISHI', 'BHOPAL');
Sintaxa INSERT este incorectă. Trebuie să specificaț i valorile pentru toate coloanele.
COMENZI DQL:
SELECT * FROM angajat;
SELECT locaț ie DIN angajat;
SELECT locatie, vârstă FROM angajat;
ÎMBUNĂTĂRIRE:
UPDATE angajat SET nume='Nishi' WHERE id=102;
Ș TERGE:
Întotdeauna un registru complet este ș ters.
Ș TERGE DIN angajat UNDE id=102;
CLAUZE:
UNDE
Ș I
3. SAU
4. AS
5. ORDINEA DUPĂ
6. GRUPARE DUPĂ
UNDE: Satisfice o condiț ie specifică.
De exemplu: SELECT * FROM angajat WHERE varsta>21;
Ș I:
SELECT * FROM angajat WHERE varsta>20 SI locatie='Bhopal';
SAU:
SELECT * FROM employee WHERE age>20 OR location='Bhopal';
AS:
SELECT name as First_name FROM employee; (MODIFICĂRI TEMPORARE ALE NUMELUI COLUMNEI)
ORDONAT DIN:
SELECT * DE LA angajat ORDONAȚ I DUPĂ nume;
Ordine ascendentă, implicit.
SELECT * FROM angajat ORDER BY nume desc;
DESCENDENT: DESC
ASCENDENT: ASC
GRUPARE DUPĂ:
SELECT count(name) FROM employee GROUP BY location;
SELECT număraț i(nume), locaț ie DIN angajat GRUPAȚ I DUPĂ locaț ie;
FUNCȚ II:
1. MIN
2. MAX
3. AVG
4. SUMĂ
5. NUMĂR
SELECT MIN (vârsta) DIN angajat;
SELECT MAX (vârstă) DIN angajat;
SELECT AVG (vârstă) DIN angajat;
SELECT SUM (vârstă) FROM angajat;
Întrebări învăț ate:
SELECT * FROM employee WHERE AGE= (SELECT MIN (age) FROM employee);
Interogarea internă va fi executată mai întâi.
OPERATORI:
SELECT * FROM employee WHERE id ÎNTRE 102 ș i 105;
SELECT * DIN angajat UNDE id ÎN (102, 104, 106, 108);
SELECT * FROM employee WHERE id NOT IN (102, 104, 106, 108);
SELECT * FROM employee WHERE EXISTS (SELECT id FROM employee WHERE id = 108);
SELECT * FROM employee WHERE name like 'a%'; (0, 1 sau caractere multiple).
SELECT * FROM employee WHERE name like '_a%'
SELECT * FROM angajat WHERE nume like‘%a%’
SELECT * FROM employee WHERE name like '%a_'
SELECT * FROM angajat LIMIT 3;
SELECT * FROM employee WHERE location='Bhopal' LIMIT 2;
ÎMBINĂRI:
Join-urile sunt folosite pentru a combina 2 coloane ale tabelelor folosind valori comune din ambele tabele.
CROSS JOIN (PRODUCȚ IE CARTESIANĂ):
Coloană de 1sttabela este înmulț ită cu toate celelalte coloane ale celeilalte tabele.
SELECT * FROM persoană CROSS JOIN adresă;
JOIN INTERIOR (EQUI JOIN):
SELECT * FROM person INNER JOIN address WHERE [Link] = [Link]; (clauza WHERE este obligatorie).
SELECT * FROM persoană ÎMBINARE NATURALĂ adresă
JOIN EXTERN
SELECT * FROM person LEFT/RIGHT OUTER JOIN address ON ([Link] = [Link]);