Sunteți pe pagina 1din 3

Din produsul cartezian scot doar ceea ce ma intereseaza, pe baza unei conditii specificate explicit => jonctiunea

Tipuri de joncţiuni
Internă (inner join): De egalitate, Naturală, De
neegalitate
Externă (outer join): La stânga, La dreapta,
Completă

Select * from nume_tab where conditie


(id.ag=id.co)
(punem alias-uri tabelei)

Produs cartezian cu conditie=jonctiune


Acelasi nr elemente si tip de date la jonctiune left outer join

DE EGALITATE: Operaţie definită pe două relaţii, R1 şi R2, prin care este construită o nouă relaţie, R3, a cărei schemă
este obţinută prin reuniunea atributelor din relaţiile iniţiale; Extensia relaţiei R3 conţine tuplurile obţinute prin
concatenarea tuplurilor din R1 cu tuplurile din R2 care au aceleaşi valori pentru atributele folosite în condiţia de
joncţiune.
SELECT *
FROM angajati a, comenzi c
WHERE a.id_ang=c.id_ang;
SELECT *
FROM angajati a JOIN comenzi c
ON a.id_ang=c.id_ang;
SELECT *
FROM angajati a JOIN comenzi c
USING (id_Ang);

Select * from angajati s;


Select* from comenzi c, angajati a; (aliasurile; se face prod cart daca nu continui)
Where a.id_ang=c.id_ang; (jonct de eg, se regasesc datele din ambele tabele pe relatia de eg)

Proiectie-cand selectez doar anumite coloane

And a.nume like ‘O%’; ==selectie pe tabela a.angajati (Cei care incep cu O)

Joncţiunea naturală
Presupune existenţa unor atribute având aceeaşi denumire în ambele relaţii
SELECT * FROM angajati a NATURAL JOIN comenzi c;
Aceeasi denumire de coloana si are acelasi tip de data. Programul le identifica si face singur jonctiunea, alege singur.

Joncţiunea externă
Operaţie prin care din două relaţii, R1 şi R2, se obţine o nouă relaţie, R3, prin joncţiunea relaţiilor iniţiale
La noua relaţie R3 sunt adăugate şi tuplurile din R1 şi/sau R2 care nu au participat la joncţiune.
Aceste tupluri sunt completate în relaţia R3 cu valori NULL pentru atributele relaţiei corespondente (R2, respectiv
R1). R1 ⋈ R2 EXT-JOIN (R1, R2, condiţie)
LA

STANGA, dreapta

<-COMPLETA

Utilizare: Select chestii from tabele


where conditie and conditie2; sa ne
ocupam de inregistrari unice

Aliasul: ii dam un „nickname” unui


angajat ( de ex) pt a nu-i scrie tot
numele cand lucram cu el

Daca pun (+) in dreptul tabelei comenzi, ia tot din tabela angajati si invers
Toti angajatii, daca au comenzi afiseaza, altfel null

Select chestii from tabele


where a.id_ang=c.id_ang => apare doar modalitatea directa nu si online de comenzi pt ca nu avem angajat in spate,
e null
where a.id_ang=c.id_ang(+); din tabela comenzi si sa includa si null-ul
where a.id_ang(+)=c.id_ang; imi arata tot din tabela angajati
Toate cele 3 lucreaza cu cate 2 select-uri (proiectie, jonctiune, selectie). Fiecare din select-uri returneaza o multime
(A, B, iar union face reuniunea dintre cele 2)

REUNIUNEA: Este o operaţie definită pe două relaţii, R1 şi R2, ambele cu aceeaşi schemă, prin care se obţine o nouă
relaţie R3, cu schema identică cu R1 şi R2, dar având ca extensie tuplurile din R1 şi R2, luate împreună o singură dată.
R1  R2
UNION (R1, R2)

Inreg comune celor 2 multimi o singura data; acelsi nr de coloane cu acc tip de date

SELECT * FROM ANGAJATI;


Select * from clienti;
Select nume, prenume, ‚Angajat’ from angajati
Union
Select nume_client, pren_cl, ‚Client’ from clienti;

Aleg Angajat si Client sunt din tabel. aliasul (conventie


locala ce poate diferi) tip persoana, doar la prima
tabela pun
Union, la gasirea duplicatelor, le elimina, sau daca le
doresc fac UNION ALL.
Aceeasi structura, nr coloane si tip de date.
Seledt chestii Union Select Order by criteriu

DIFERENTA
Este o operaţie definită pe două relaţii, R1 şi R2, ambele cu aceeaşi
schemă, prin care se obţine o nouă relaţie, R3, cu extensia formată
din acele tupluri ale relaţiei R1 care nu se regăsesc şi în relaţia R2.
◦ R1 – R2
◦ MINUS
(R1, R2)

Select * from clienti c select * from comenzi t


Select t.id_c1 from clienti t minus select c.id_c1 from comenzi c

Comenzile care au si n au angajati- angajatii care au si n au=> comenzi care n au ang

INTERSECTIA
Reprezintă o operaţie definită pe două relaţii, R1 şi R2 ambele cu aceeaşi schemă, prin care se obţine o nouă
relaţie, R3, cu schema identică cu a relaţiilor operand şi cu extensia formată din tuplurile din R1 şi R2.
R1  R2 INTERSECT (R1, R2)

Restricţiile de integritate, denumite şi reguli de integritate,


definesc cerinţele pe care trebuie să le satisfacă datele din cadrul bazei de date pentru a putea fi considerate corecte
şi coerente în raport cu domeniul pe care îl reflectă.
Restricţii structurale (minimale): =Entităţii
=De unicitate a cheii Restricţii de comportament:
=Referenţială-existenta intr o alta De domeniu
tabela a unei coloane cu care se face Temporare
validare
Restricţia de unicitate a cheii
Nu trebuie sa avem 2 la fel=unicitate
Impune ca într-o relaţie R, care are cheia K, oricare ar fi tuplurile t1 şi t2 să fie satisfăcută inegalitatea: t1(K) ≠ t2(K).
Această inegalitate semnifică faptul că într-o relaţie nu pot exista două tupluri cu aceeaşi valoare pentru atributele
cheie.
Cheia unei relaţii trebuie să fie minimală, în sensul că nicio parte a sa nu trebuie să aibă proprietatea de identificare
unică a tuplurilor relaţiei.
Cheia primara Simplă sau Compusă
Cheia candidată

S-ar putea să vă placă și