W Oracle istnieją różne sprzężenia, takie jak sprzężenie wewnętrzne, lewe sprzężenie zewnętrzne, prawe sprzężenie zewnętrzne, pełne sprzężenie zewnętrzne, sprzężenie krzyżowe. Ten samouczek SQL zawiera składnię łączenia Oracle dla każdego z nich wraz z przykładami
Składnia i przykład łączenia wewnętrznego
Dwa przykłady i składnia tabel
WYBIERZ DZIAŁ.PNR,PRZEDZ.NAZWA, DZIAŁ.NR,DZIAŁ.DNAZWA
FROM EMP , DZIAŁ
gdzie EMP. DZIAŁ =DZIAŁ. DEPTNO;
lub
Składnia ANSI
WYBIERZ EMP.EMPNO,EMP.ENAME, DZIAŁ.NR,DZIAŁ.DNAME
Z EMP DOŁĄCZ WEWNĘTRZNE DZIAŁ
w EMP. DZIAŁ =DZIAŁ. DEPTNO;
lub
WYBIERZ EMP.EMPNO,EMP.ENAME, DZIAŁ.DZIAŁNO,DZIAŁ.DNAME
Z EMP INNER JOIN DZIAŁ
używając (DZIAŁ.N.);
Przykład połączenia wewnętrznego Wiele stołów
WYBIERZ EMP.EMPNO,EMP.ENAME, DZIAŁ.NR,DZIAŁ.DNAZWA,REGION.REGION_NAZWA
Z EMP , DZIAŁ,REGION
gdzie EMP. DZIAŁ =DZIAŁ. DZIAŁ
i DEPT.REGION_ID=REGION.REGION_NAME;
lub
SELECT EMP.EMPNO,EMP.ENAME, DZIAŁ.DZIAŁNO,DZIAŁ.DNAME,REGION.REGION_NAME
FROM EMP
sprzężenie wewnętrzne DZIAŁ w EMP. DZIAŁ =DZIAŁ. DEPTNO
wewnętrzne połączenie REGION na DEPT.REGION_ID=REGION.REGION_NAME;
lub
SELECT EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME,REGION.REGION_NAME
FROM EMP sprzężenie wewnętrzne DZIAŁ using (DEPTNO)
Złączenie wewnętrzne REGION using (REGION_ID);
Składnia i przykład łączenia krzyżowego
SELECT EMPNO,ENAME, DEPT.DEPTNO,DNAME FROM EMP , DEPT;
lub
SELECT EMPNO,ENAME, DEPT.DEPTNO,DNAME FROM EMP cross join DZIAŁ;
Składnia i przykład Left Outer Join
wybierz empno,ename,emp.deptno,dname
z emp
LEWE ZŁĄCZENIE ZEWNĘTRZNE dział
na emp.deptno=dział.dział;
- składnia znaku
wybierz empno,ename,emp.deptno,dname
z emp ,dept gdzie emp.deptno=dept.deptno(+);
- znajduje się po stronie, po której oczekuje się wartości NULL i po prawej stronie
Składnia i przykłady Right Outer Join
wybierz empno,ename,dept.deptno,dname
z emp
z prawej ZŁĄCZENIE ZEWNĘTRZNE dział
na emp.deptno=dział.dział;
- składnia znaku
wybierz empno,enazwa,dział.dział,dnazwa
od emp ,dział gdzie emp.dział.(+)=dział.działno;
- znajduje się po stronie, po której oczekuje się wartości NULL i po lewej stronie
Składnia i przykłady Full Outer Join
select empno,ename,dept.deptno,dname
from emp
full OUTER JOIN dept
on emp.deptno=dept.deptno;
Powiązane artykuły
Oracle Joins
Zagnieżdżone połączenie pętli w Oracle
Różne metody złączeń w Oracle
Hash join w Oracle