Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Apa itu Oracle Joins (Sql Joins)?

Terkadang Anda perlu menampilkan data dari beberapa tabel. Untuk melakukan itu, Anda perlu menautkan satu tabel ke tabel lain. Ada berbagai cara di mana kita dapat memperoleh data dari Beberapa tabel. Di sini saya akan fokus pada Oracle Joins dengan contoh. Ini berlaku untuk semua Sql Joins secara umum juga . Saya akan menjelaskan inner join, outer join, cross join, natural join, Cartesian join dengan contoh

Oracle Bergabung

Sebuah Oracle Bergabung  adalah kueri yang menggabungkan baris dari dua atau lebih tabel oracle.

Oracle melakukan join setiap kali beberapa tabel muncul di klausa FROM. Untuk menggabungkan dua tabel, Anda perlu mengidentifikasi kolom umum yang menghubungkan dua tabel. Dalam klausa WHERE Anda mendefinisikan hubungan antara tabel yang tercantum dalam klausa FROM.

Beberapa Pedoman untuk  Oracle Joins ( Sql Joins)

1) saat menulis pernyataan pilih yang menggabungkan tabel, adalah praktik yang baik untuk mendahului nama kolom dengan nama tabel untuk tujuan kejelasan.

2) Untuk menggabungkan m tabel, kita membutuhkan setidaknya m-1 kondisi

3) Kita bisa menggunakan alias tabel untuk nama tabel jika nama tabelnya panjang. Tabel terlihat kode lebih pendek dan karenanya lebih sedikit memori

4)  Jika Anda tidak menggunakan nama_tabel atau alias tabel saat memilih kolom dan Jika beberapa tabel memiliki nama kolom yang sama, maka kita harus menentukan nama_tabel untuk kolom yang umum di seluruh tabel

Gabung Dalam

Operator yang paling umum digunakan untuk menghubungkan dua tabel adalah operator kesetaraan (=). Ini disebut kesetaraan bergabung atau equijoin . Gabung sederhana ini juga dikenal sebagai gabung dalam

Contoh Gabung Dalam Oracle

Syntax
Select tab1.col,tab2.col
from tab1 ,tab2
where tab1.col=tab2.col

SELECT EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME
FROM EMP , DEPT
where EMP. DEPTNO= DEPT. DEPTNO;

Untuk mengeksekusi gabungan dari tiga tabel atau lebih, Oracle menggabungkan dua tabel berdasarkan kondisi join, kemudian menggabungkan hasilnya ke tabel lain, berdasarkan kondisi join dan berulang sampai semua tabel bergabung.

Gabungan Kompleks

Memiliki satu atau lebih kondisi yang ditambahkan dalam klausa WHERE. Misalnya, jika Anda tertarik dengan semua departemen dan lokasinya di luar Inggris, gunakan

SELECT LOCATIONS.LOCATION_ID, CITY, DEPARTMENT_NAME
FROM LOCATIONS, DEPARTMENTS
WHERE LOCATIONS.LOCATION_ID = DEPARTMENTS.LOCATION_ID
AND COUNTRY_ID != 'UK';

Non –equijoin

Non-equijoin adalah kondisi join selain dari operator persamaan.

Ini adalah pernyataan gabungan dalam yang menggunakan operasi yang tidak sama (yaitu:<>,>, <, =, BETWEEN, dll.) untuk mencocokkan baris dari tabel yang berbeda

SELECT e.ename, e.sal, s.grade
FROM  emp e, sal_grade s
WHERE e.sal BETWEEN s.low_sal AND s.high_sal;

Produk Cartesian atau Cartesian Join atau Cross Join

-Gabungan Kartesius (atau produk Kartesius)  (atau Penggabungan Silang) terjadi saat data dipilih dari dua tabel atau lebih dan kondisi penggabungan ditentukan atau tidak ada hubungan umum yang ditentukan dalam klausa WHERE

-Jika bergabung dilakukan dan tidak ada kondisi bergabung yang ditentukan, hasil produk Cartesian. Produk Cartesian adalah himpunan hasil yang merupakan produk dari total baris dua tabel. Jika tabel "P" memiliki 100 baris dan tabel "Q" memiliki 100 baris dan produk Cartesian dikembangkan, himpunan hasil yang dihasilkan akan memiliki 10.000 baris. Jika kueri menggabungkan tiga tabel atau lebih, pengoptimal mungkin menemukan cara untuk memilih urutan gabungan yang menghalangi produk Cartesian, tetapi jangan mengandalkannya.

SELECT EMPNO,ENAME, DEPT.DEPTNO,DNAME  FROM EMP   , DEPT ;
or
SELECT EMPNO,ENAME, DEPT.DEPTNO,DNAME  FROM EMP   cross join DEPT ;

Gabungan Luar

Gabungan dalam yang telah kita lihat, mengembalikan baris yang cocok dari dua atau lebih tabel sesuai dengan kondisi bergabung. Mekanisme Outer Join mengembalikan data dari satu tabel meskipun tidak ada baris yang sesuai dalam tabel join.

Ada tiga gabungan luar

a) Gabung Luar Kiri atau Gabung Kiri

b) Gabung Luar Kanan atau Gabung Kanan

c) Gabung luar penuh atau Gabung penuh

Gabung Luar Kiri

mengembalikan baris yang cocok dari kedua tabel serta baris yang tidak cocok dari tabel di sebelah kiri klausa gabungan.

LEFT OUTER JOIN akan mengembalikan semua record dari tabel kiri dan hanya record dari tabel kanan yang berpotongan dengan tabel kanan

Berikut adalah contoh Oracle Left outer Join

Example:
select empno,ename,emp.deptno,dname
from emp
LEFT OUTER JOIN dept
on emp.deptno=dept.deptno;

sintaksis gabungan oracle (+) :Dalam database Oracle, kita juga dapat menggunakan sintaks tanda plus untuk gabungan luar kiri. Dalam hal ini, gabungan plus berada di sisi kanan persamaan.

Example:
select empno,ename,emp.deptno,dname
from emp ,dept where emp.deptno=dept.deptno(+) ;

 

Gabung Luar Kanan

mengembalikan baris yang cocok dari kedua tabel serta baris yang tidak cocok dari tabel di sebelah kanan klausa gabungan.

Berikut adalah contoh untuk Oracle Right outer join

Example:
select empno,ename,dept.deptno,dname
from emp
right OUTER JOIN dept
on emp.deptno=dept.deptno;

sintaksis gabungan oracle (+) :Dalam database Oracle, kita juga dapat menggunakan sintaks tanda plus untuk RIGHT OUTER JOIN. Dalam hal ini, gabung kanan ditunjukkan ketika tanda plus ada di sebelah kiri persamaan.

Example:
select empno,ename,dept.deptno,dname
from emp ,dept where emp.deptno(+)=dept.deptno ;

Gabung Luar Penuh

Jenis gabungan ini mengembalikan semua baris dari tabel sisi KIRI dan tabel sisi KANAN dengan nol di tempat di mana kondisi gabungan tidak terpenuhi

Berikut adalah contoh untuk Oracle Full Outer Join

select empno,ename,dept.deptno,dname
from emp
full OUTER JOIN dept
on emp.deptno=dept.deptno;

Kueri ini akan mengembalikan semua baris dari kedua tabel. Menggunakan sintaks Oracle menggunakan E.DEPT_ID (+) =D.DEPT_ID (+) tidak mungkin karena tanda (+) hanya dapat merujuk pada satu tabel. Kita harus menggunakan Union untuk mencapai hal yang sama menggunakan tanda +

select empno,ename,dept.deptno,dname
from emp ,dept where emp.deptno=dept.deptno(+)
union
select empno,ename,dept.deptno,dname
from emp ,dept where emp.deptno(+)=dept.deptno;

Beberapa RDBMS tidak mendukung klausa Full outer join, maka kita dapat menggunakan di bawah ini untuk menutupinya

select empno,ename,dept.deptno,dname
from emp
left OUTER JOIN dept
on emp.deptno=dept.deptno
union
select empno,ename,dept.deptno,dname
from emp
right OUTER JOIN dept
on emp.deptno=dept.deptno;


GABUNG ALAMI

Gabungan alami menentukan bahwa gabungan menghubungkan semua kolom dengan nama yang sama pada dua tabel.

Pada dasarnya ini membandingkan kolom umum dari kedua tabel satu sama lain. Seseorang harus memeriksa apakah kolom umum ada di kedua tabel sebelum melakukan penggabungan alami.

Example
SELECT EMP_ID,EMP_NAME, DEPT_ID,DEPARTMENT_NAME  FROM EMP  NATURAL JOIN DEPT;

Di sini dept_id adalah kolom yang sama antara tabel emp dan dept

Gabung alami dapat menggabungkan lebih dari dua tabel

Semoga Anda menyukai postingan ini di Oracle join dengan contoh.

Artikel Terkait
Tutorial sql Oracle

Subquery Oracle Sql

Oracle Set Operator

Tampilan Oracle

cara menulis kueri sql

Kolom Kenaikan Otomatis – Urutan

Gabung Silang di Oracle

bergabung sendiri di oracle dengan contoh

contoh sintaks bergabung dengan oracle

Hash Gabung di Oracle


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Alternatif agnostik versi Oracle ODP.NET

  2. 27 skrip Oracle dba untuk Oracle Database untuk Administrasi dan Pemantauan

  3. Permintaan ditetapkan di Manajer Bersama

  4. Menghubungkan Perangkat Lunak IRI ke Oracle

  5. Oracle Menggabungkan beberapa kolom menjadi satu