SQL untuk Pemula Bagian 3
SQL untuk Pemula bagian 2
Apa kalian tahu tujuan gue buat arikel ini? Sebenarnya gue mau buat catetan untuk gue sendiri si wkwk. Jadi bahasanya agak gak formal. Catetan kok bahasa formal bosenin lah.
Kita akan membahas mengenai
- FOREIGN KEY
- CROSS PRODUCT
- INNER JOIN
- NATURAL JOIN
- LEFT JOIN
- RIGHT JOIN
- UNION
- INTERSECT
- EXCEPT
- VARIABLE
- PROCEDURE
- FUNCTION
- TRIGERRED
- IF
- LOOP
Kalian sudah ngerti cara masuk sql di terminal/command promp-kan. Untuk masuk ke mysql kalian ketik mysql -u username -p. Terus mysql akan meminta password kalian. Btw cara ini untuk mysql yang lokal loh. Kalok mau yang online kalian harus minimal punya hosting. Kalok gak salah cara opennya mysql -u username -p -h linkdatabaseonlinennya.
Kali ini gue masih menggunakan database info pada tutorial sebelumnya.
SQL FOREIGN KEY
FOREIGN KEY digunakna untuk menghbungkan table. Foreign key biasanya berisi koleksi dari primary key table yang akan dihubungkan. FOREIGN KEY biasanya digunakan saat pembuatan table atau bisa juga digunakan saat edit table. Contohnya
Foreign key diatas tidak diberikan nama, jadi kita tidak bisa menghapusnya. Untuk memberikan nama pada foreign key tambahkan constraint dibelakang foreign key. Contohnya.
Sekarang foreign key diatas dapat dihapus menggunakan sql query alter seperti dibawah ini:
Untuk menambahkan foreign key bisa juga menggunakan alter table. Seperti dibawah ini:
SQL CROSS PRODUCT
Cross join digunakan untuk menghubungkan table satu dengan table kedua. Cross join akan menghubungkan satu persatu semuanya. Jadi apabila table satu memiliki 4 value dan table dua memiliki 4 value maka hasilnya menjadi 16 value.
SELECT * FROM creator CROSS JOIN anime;
hasilnya akan menjadi seperti dibawah ini:
Dalam implementasiannya kita akan sangat jarang menggunakan cross join karena umumnya relasi hanya digunakan pada tabel yang memiliki hubungan.
SQL INNER JOIN
Inner join digunakan untuk menghubungkan relasi antar tabel. Pada inner join digunakan query ON untuk memberi tahu system bahwa akan ada kesamaan kolom. Contoh penggunaannya.
SELECT * FROM creator inner join anime on creator.id = anime.idCreator;
hasilnya akan menjadi seperti dibawah ini:
Jika tanpa menggunakan on maka hasil yang didapatkan akan sama dengan cross join.
SQL NATURAL JOIN
Natural join hampir mirip dengan inner join, natural join digunakan untuk relasi table satu dengan table lain, tetapi tidak membutuhkan on. Natural join biasanya digunakan saat nama kolom yang akan direlasikan sama. Tetapi dalam sql meskipun nama kolom berbeda akan mendapatkan hasil yang mirip. Saran saya jika akan merelasikan tabel dengan nama kolom berbeda gunakan inner join karena akan lebih jelas ketimbang natural join. Natural join lebih baik digunakan saat nama kolom dalam tabel yang akan direlasikan sama. Contoh natural join
SELECT * FROM creator NATURAL JOIN anime;
SQL LEFT JOIN
LEFT JOIN akan menampilkan semua hasil pada bagian sebelah kiri. Meskipun tidak ada relasinya contohnya.
SELECT * FROM creator LEFT JOIN anime ON creator.id = anime.idCreator
SQL RIGHT JOIN
SQL RIGHT JOIN kebalikan dari sql LEFT JOIN, sql right join akan menampilkan semua bagian kiri meskipun tidak di relasikan contohnya.
select * from anime right join creator on anime.idCreator = creator.id;
SKEMA DARI JOIN
SQL UNION, INTERSECT, EXCEPT
UNION digunakan untuk menggabungkan value dari dua tabel yang berbeda. Union hanya bisa dilakukan jika dan hanya jika semua kolom kedua tabel sama.
INTERSECT adalah irisan. sesuai dengan namanya digunakan untuk mengetahui irisan dari dua tabel.
EXCEPT adalah pengurangan. digunakan untuk mengetahui ada di tabel1 tidak ada ditabel 2.
Contohnya.
UNION
select * from anime where yearRelease is not null union select * from anime where yearRelease is null;
IRISAN
select * from anime where yearRelease is not null INTERSECT (select * from anime);
MINUS
SELECT * from anime where yearRelease is null EXCEPT (SELECT * from anime);
hasilnya akan kosong.
Skema Diatas
Itu dululah udah capek. yang procedure function triggered variabel besok :v. Jika gak ngerti komen aja. Ada dua gambar ambil google :v. Gue jujur ambil 2 gambar :v, ntar malah kayak calon apa itu wkwk.
Berkomentarlah secara bijak.
EmoticonEmoticon