“ORACEL TUTORIAL“
Dosen Pengampu :
Oleh :
JURUSAN KESEHATAN
2019
SECTION 3. FILTERING DATA
ORDERS
*ORDER_ID
CUSTOMER_ID
STATUS
SALESMEN_ID
ORDER_DATE
Salesmen_id kolom menyimpan id salesman dari salesman yang bertanggung
jawab dari pesanan penjualan.Pernyataan SELECT berikut mengembalikan
semua pesanan penjualan yang tidak memiliki salesman yang bertanggung jawab:
Untuk memeriksa apakah nilainya null atau tidak, maka menggunakan operator
is_null sebagai berikut:
Operator is_null mengembalikan true jika ekspresi atau kolom null. Jika tidak,
maka mengembalikan false.
b. IS NOT NULL
Output Parsial:
SECTION 4. JOINING TABLES
JOINS
Oracle join digunakan untuk menggabungkan kolom dari dua tabel atau lebih, berdasarkan nilai
kolom yang terkait. Kolom terkait adalah primary key column(s) dari tabel pertama dan foreign
key column(s) dari tabel kedua. Oracle mendukung inner join, left join, right join, full outer join
dan cross join. User dapat bergabung dengan tabel untuk dirinya sendiri untuk meminta data
hierarkis menggunakan gabungan dalam, gabungan kiri, atau gabungan kanan. Jenis bergabung
ini dikenal sebagai bergabung sendiri.
Berikut ini membuat dua tabel baru dengan struktur yang sama untuk demonstrasi
Tabel memiliki beberapa warna umum seperti red dan green: palette_a tabel kiri dan palette_b
tabel kanan:
A. INNER JOIN
Dalam database relasional, data didistribusikan di banyak tabel terkait. Dengan inner join,
tabel akan digabungkan dua arah, sehingga tidak ada data yang NULL di satu sisi.
Misalnya, dalam database sampel , data pesanan penjualan terutama disimpan dalam tabel
orders dan order_items tabel.
Meminta data dari dua atau beberapa tabel, maka menggunkan klausa INNER Join.
Pernyataan tersebut digambarkan pada gabungan tabel T1 dan T2.
B. LEFT JOIN
Dalam kueri ini, T1 adalah tabel kiri dan T2 tabel kanan. Kueri membandingkan setiap
baris dalam T1 tabel dengan baris dalam T2 tabel. Jika sepasang baris dari keduanya T1
dan T2 tabel memenuhi predikat gabungan, kueri menggabungkan nilai kolom dari
baris di kedua tabel dan menyertakan baris ini dalam hasil yang ditetapkan.
Jika baris dalam T1 tabel tidak memiliki baris yang cocok di T2 tabel, kueri
menggabungkan nilai kolom dari baris dalam T1 tabel dengan nilai NULL untuk setiap
kolom di tabel kanan yang muncul di SELECT klausa.
Dengan kata lain, gabungan kiri mengembalikan semua baris dari tabel kiri dan baris
yang cocok dari tabel kanan. Contoh :
C. RIGHT JOIN
Pernyataan ini menunjukkan bagaimana cara menggunakan dua table menggunakan right outer
join do Oracle untuk menggabungkan dua atau lebih table :
Tabel T1 dan table T2 :
Dengan kata lain, right outer join mengembalikan semua baris dari table kanan dan juga
mencocokkan baris dari table kiri.
Dalam diagaram ini, seorang penjual (employee) bertanggung jawab atas satu atau lebih
pesanan penjualan (orders). Namun, beberapa pesanan penjualan mungkin tidak bertanggung
jawab atas penjual manampun.
Hasilnya mencakup semua salesman yang memilki jabatan sales Representative dan orders
mereka.
Jika salesman tidak bertanggung jawab atas setiap order penjualan seperti Alice Wells, Charlotte
Webb, maka kolom ORDER_ID dan STATUS diisi dengan nilai – nilai NULL.
Mirip dengan joins yang lain seperti Inner Join, Left Join dapat digunakan untuk menentukan
kolom yang akan diuji kesetaraaanya ketika menggabungkan tabel – tabel. Berikut merupakan
sintaks Right Outer Join dengan Using Clause :
Dalam kueri ini, kolom yang tercantum dalam Using Clause harus ditampilkan dalam kedua tabel
T1 dam T2. Pernyataan berikut setara seperti pernyataan di atas :
Pernyataan berikut menunjukkan bagaimana menggunakan Right Outer Join dengan Using
Clause :
Pada contoh di atas, semua customers termasuk dalam set hasil. Jika customers tidak memiliki
pesanan penjualan, kolom ORDER_ID dan STATUS diisi dengan nilai NULL.
Pernyataan berikut mendapatkan data Employee dan Order dari Salesman dengan id 57.
Pernyataan berikut menempatkan kondisi dalam Where Clause sebagai ganti dari On Clause :
Kueri mengembalikan semua employee tetapi hanya employee dengan id 57 yang memiliki data
pesanan terkait. Terkait dengan inner join kondisi yang ditempatkan pada On Clause memiliki
efek yang sama seperti yang ditempatkan pada Where Clause. Right outer join digunakan untuk
meminta data dari beberapa tabel.
Misalkan memiliki dua tabel T1 dan T2. Berikut ini menggambarkan full outer join
dari dua tabel :
Untuk setiap baris di tabel T1, full outer join akan membandingkan dengan setiap
baris di tabel T2. Jika baris dikedua tabel memenuhi join_condition full outer join
menyertakan kolom dari kedua baris di set hasil. Dalam kasus ini baris dalam tabel
T1 cocok dengan baris dalam tabel T2. Jika satu baris dari tabel T1 tidak memiliki
baris yang cocok dari tabel T2, full outer join akan menyertakan kolom dari tabel T1
dengan nilai nol untuk semua kolom dari tabel T2. Demikian pula, jika baris dalam
T2 yang tidak memilki baris yang cocok dalam tabel T1, full outer join akan
menyertakan kolom dari tabel T2 dengan nilai nol untuk kolom di tabel T1.
Perhatikan bahwa kata kunci OUTER bersifat opsional, oleh karena itu FULL OUTER
JOIN dan FULL JOIN sama. Diagram Venn berikut menggambarkan full outer join
dari dua tabel :
Contoh Full Outer Join pada Oracle
Pertama, buat dua tabel members dan projects. Misalkan, setiap member dapat
bergabung dengan nol atau satu project dan setiap project dapat memiliki nol atau
lebih member :
Kedua, masukkan beberapa project dan member ke dalam tabel projects dan
members :
Ketiga, gunakan full outer join untuk meminta data dari tabel members dan projects :
Berikut hasilnya :
Jack Daniel tidak bergabung dengan project apapun, Jane Doe dan John Doe
bergabung dengan project ERP dan Project sales CRM tidak memiliki member.
Untuk menentukan project uang tidak memiliki anggota, dapat menggunakan kueri
berikut :
Demikian pula, dapat menemukan member yang tidak berpartisipasi dalam project
apapun menggunakan kueri berikut :
E. CROSS JOIN
Gabung mandiri adalah gabung yang bergabung dengan tabel dengan dirinya sendiri.
Gabung otomatis berguna untuk membandingkan baris dalam tabel atau meminta data
hierarkis.
Berikut ini menggambarkan bagaimana tabel T bergabung dengan dirinya sendiri:
Tidak seperti join lainnya seperti INNER JOIN atau LEFT JOIN, CROSS JOIN tidak
memiliki klausa ON dengan predikat join. Ketika melakukan gabungan silang dari
dua tabel, yang tidak memiliki hubungan, akan mendapatkan produk Cartesian dari
baris dan kolom dari kedua tabel.
Gabung silang berguna ketika ingin menghasilkan banyak baris untuk pengujian.
Misalkan kita memiliki dua tabel yang memiliki baris m dan n, produk Cartesian dari
tabel ini memiliki baris m x n.
Lihat tabel inventaris berikut dalam database sampel.
Setiap baris dalam tabel inventaris memerlukan data untuk product_id, warehouse_id,
dan kuantitas.
Untuk menghasilkan data uji untuk dimasukkan ke dalam tabel inventaris, Anda dapat
menggunakan klausa CROSS JOIN seperti yang ditunjukkan dalam pernyataan
berikut:
Berikut hasilnya:
Contoh ini, join silang membuat Cartesian dari product_id dan warehouse_id dari
tabel produk dan gudang. Tabel produk 288 baris dan tabel gudang memiliki 9 baris,
oleh karena itu, gabungan silang dari tabel ini menghasilkan 2592 baris (288 x 9).
Perhatikan contoh ini menggunakan fungsi dbms_random.value () untuk
mendapatkan angka acak antara 10 dan 100, dan fungsi ROUND () untuk
mendapatkan nilai integer dari angka acakGabung mandiri adalah gabung yang
bergabung dengan tabel dengan dirinya sendiri. Gabung otomatis berguna untuk
membandingkan baris dalam tabel atau meminta data hierarkis.
Tidak seperti join lainnya seperti INNER JOIN atau LEFT JOIN, CROSS JOIN tidak
memiliki klausa ON dengan predikat join. Ketika melakukan gabungan silang dari
dua tabel, yang tidak memiliki hubungan, akan mendapatkan produk Cartesian dari
baris dan kolom dari kedua tabel.
Gabung silang berguna ketika ingin menghasilkan banyak baris untuk pengujian.
Misalkan kita memiliki dua tabel yang memiliki baris m dan n, produk Cartesian dari
tabel ini memiliki baris m x n.
Untuk menghasilkan data uji untuk dimasukkan ke dalam tabel inventaris, Anda
dapat menggunakan klausa CROSS JOIN seperti yang ditunjukkan dalam pernyataan
berikut:
Berikut hasilnya:
Contoh ini, join silang membuat Cartesian dari product_id dan warehouse_id dari
tabel produk dan gudang. Tabel produk 288 baris dan tabel gudang memiliki 9 baris,
oleh karena itu, gabungan silang dari tabel ini menghasilkan 2592 baris (288 x 9).
F. SELF JOIN
Gabung mandiri adalah gabung yang bergabung dengan tabel dengan dirinya sendiri.
Gabung otomatis berguna untuk membandingkan baris dalam tabel atau meminta
data hierarkis.
Gabung mandiri menggunakan gabung lain seperti gabung dalam dan gabung kiri.
Selain itu, ia menggunakan alias tabel untuk menetapkan nama tabel yang berbeda
dalam kueri yang sama.
Perhatikan bahwa selain INNER JOIN, Anda dapat menggunakan LEFT JOIN dalam
pernyataan di atas.
Presiden perusahaan, yang tidak melaporkan kepada siapa pun, memiliki nilai NULL
di kolom manager_id. Karyawan lain, yang memiliki manajer, memiliki nilai
numerik di kolom manager_id, yang menunjukkan id manajer.
Untuk mengambil data karyawan dan manajer dari tabel karyawan, Anda
menggunakan self join seperti yang ditunjukkan dalam pernyataan berikut:
Permintaan ini merujuk ke tabel karyawan dua kali: satu sebagai e (untuk karyawan)
dan yang lain sebagai m (untuk manajer). Predikat gabungan cocok dengan karyawan
dan manajer menggunakan kolom employee_id dan manager_id.