3.10 Menerapkan penggunaan SQL untuk mengakses multi table

 

SQL adalah bahasa query baku untuk DBMS.SQL diambil sebagai bagian sejak tahun 1992 awalnya diterapkan pada DBMS besar seperti Oracle dan Informix.

Tabel-tabel yang dibuat pada studi kasus ini cukup sederhana saja untuk memudahkan pemahaman. Adapun tabel-tabel tersebut adalah:
1.mhs (
2.nim varchar(3),
3.namaMhs varchar(30),
4.primary key(nim)
5.)
1.mk (
2.kodeMK varchar(3),
3.namaMK varchar(30),
4.sks integer,
5.primary key(kodeMK)
6.)
1.ambilMK (
2.nim varchar(3),
3.kodeMK varchar(3),
4.nilai integer,
5.primary key(nim, kodeMK)
6.)
Dalam hal ini, field nim dan kodeMK pada tabel ambilMK merupakan foreign key. Apabila diperhatikan, tabel mhs dengan tabel ambilMK saling berelasi karena nim dalam tabel ambilMK berasal dari nim dalam tabel mhs (master tabel).
Demikian pula antara tabel mk dengan ambilMK. Kedua tabel ini juga berelasi karena kodeMK dalam tabel ambilMK berasal dari kodeMK dalam tabel mk.
1.JOIN



Nama
Catatan
INNER JOIN
Hnya menghasilkan baris kombinasi jika kondisi terpenuhi
CROSS JOIN
Sama dengan INNER JOIN (TRUE)
LEFT OUTER JOIN
Baris dari table kiri selalu disertakan, tidak berpengaruh kondisi terpenuhi atau tidak.
RIGHT OUTER JOIN
Baris dari table kanan selalu disertakan, tidak berpengaruh kondisi terpenuhi atau tidak.
SELF JOIN
Hanya istilah untuk JOIN yang menggunakan table yang sama di sisi kanan dan kiri.


join, sub select, union dan intersect




a. INNER JOIN 


Sintak:

select * from namatable1 inner join namatable2 on namatable1.namakolom= namatable2.namakolom;

Contoh:


Tampilkan data air_master kemudian Meal_Code dan Service_Code 


contoh soal inner join dan penyelesaianb. CROSS JOIN

Sintak:
select * from namatable1 cross join namatable2 on namatable1.namakolom= namatable2.namakolom;
Contoh:

Tampilkan data air_master kemudian Meal_code dan Service_Code

contoh soal cross join dan penyelesaian

c. LEFT OUTER JOIN 


Sintak:
select * from namatable1 left outer join namatable2 on namatable1.namakolom= namatable2.namakolom;
Contoh:

Tampilkan data service(Air_Code) dan Service_Name

contoh soal left join dan penyelesaian

d. RIGHT OUTER JOIN 

Sintak:
select * from namatable1 right outer join namatable2 on namatable1.namakolom= namatable2.namakolom;
Contoh:

Tampilkan data airline_service (Air_Code) dan Service_Name

contoh soal right join dan penyelesaian


e. SELF JOIN 

Sintak:
select * from namatable self join kolom;

2. Sub Select 

Sub select adalah query SELECT yang ada didalam perintah SQL lain (SELECT/UPDATE/INSERT dan lain sebagainya).
Secara umum syntax subquery adalah :
SELECT * FROM tabel_a WHERE kolom_a = (SELECT kolom_b FROM tabel_b);

Contoh:

 Tampilkan Air_Code dan Airlines_Name 

contoh soal sub select dan penyelesaian

 Tampilkan total Air_Code yang paling banyak datanya dan kolom yang ditampilkan adalah Air_Code

contoh soal sub select dan penyelesaian

Operator Exist
pada operator exist semua bentuk kondisi diletakkan didalam subquery, bukan pada query utama.

Secara umum syntax operator ini adalah :
select kolom_a,kolom_b, FROM nama_tabelWHERE EXIST (subselect);

3. UNION


Berfungsi untuk menggabungkan 2 tabel yang berbeda dengan syarat tabel itu harus sama jumlah kolomnya.


Sintak :
SELECT * FROM namatable WHERE <<kondisi>> UNION SELECT kolom1,kolom2 FROM namatabel;
Jika tabel tersebut mempunyai kolom yang berbeda, maka dapat ditambahkan null atau 1Penggunaan: ‘ UNION SELECT 1,kolom1,kolom2 FROM namatabel
Contoh:

Tampilkan data airline_meal dan meal berdasarkan Meal_Code yang diawali huruf V

contoh soal union dan penyelesaian


4. INTERSECT 

 INTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah query dimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama.

Sintak : 
SELECT * FROM namatabel1 INTERSECT SELECT * FROM namatabel2
Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat menggunakan operator IN seperti contoh 1 pada bagian Nested Queries.

Komentar

Postingan populer dari blog ini

merancang user interface menggunakan library