Nim : 12390100002
Nama:Teddy Wijaya
Mata kuliah : Structure Query Language I
Dosen : Titik Lusiani, M.Kom, OCA
Apakah SQL itu?
SQL adalah kependekan dari Structured Query Languange yang merupakan bahasa database standar industri.
SQL
menyediakan Data Definiton Language (DDL) dan Data Manipulation Language (DML).
Walaupun dalam beberapa bagian saling bersangkutan, perintah DDL memungkinkan
kita untuk membuat dan mendefinisikan tabel (CREATE TABLE), dan index (CREATE
INDEX), sedangkan perintah DML memungkinkan anda untuk membangun query untuk
mengambil data (SELECT) dari beberapa tabel, menyisip (INSERT) data baru,
memperbaiki (UPDATE) data, dan menghapus (DELETE).
Sebelum
mempelajari perintah-perintah DDL dan DML, terlebih dahulu kita akan
mempelajari struktur sebuah tabel.
Struktur
Tabel
Tabel Nilai
Nama
|
Nilai
|
Agus
|
80
|
Budi
|
65
|
Berdasarkan
tabel diatas maka Nama dan Nilai disebut sebagai Kolom sedangkan Agus dan Budi
disebut Baris.
Selanjutnya
kita beranjak memelajari perintah-perintah DDL dan DML.
Membuat Tabel
Untuk
membuat tabel kita menggunakan perintah CREATE TABLE. Berikut adalah bentuk
umum dari penggunaan perintah tersebut:
create table "namatabel"
("kolom1" "tipe data" (constraint),
"kolom2" "tipe data" (constraint),
"kolom3" "tipe data" (constraint));
("kolom1" "tipe data" (constraint),
"kolom2" "tipe data" (constraint),
"kolom3" "tipe data" (constraint));
Keterangan:
Tipe Data dapat diisi dengan text, longtext, byte, bit, counter, short, long
atau datetime. Sedangkan constraint adalah panjang data yang dipesan. Untuk
lebih jelasnya akan saya berikan satu contoh:
Apabila kita
ingin membuat sebuah tabel Pegawai yang berisikan kolom Nama, Jabatan dan Gaji,
maka perintah yang harus ditulis adalah:
create table
Pegawai
(Nama text(10),
Jabatan text(8),
Gaji long(6));
(Nama text(10),
Jabatan text(8),
Gaji long(6));
Hasil dari
perintah diatas adalah tabel dibawah ini:
Pegawai
Nama
|
Jabatan
|
Gaji
|
Memasukkan Data Ke Tabel
Untuk
memasukkan data ke tabel kita menggunakan perintan INSERT. Bentuk umum dari
perintah INSERT dapat anda lihat dibawah ini:
insert into "nama tabel"
(kolom pertama,...kolom ke-n)
nilai(nilai pertama,...nilai ke-n);
(kolom pertama,...kolom ke-n)
nilai(nilai pertama,...nilai ke-n);
Keterangan:
Nilai adalah data yang akan diisikan. Nilai pertama berarti nilai yang akan
diisikan pada kolom pertama.
Masih
menggunakan tabel Pegawai yang telah kita buat sebelumnya. Sekarang kita akan
mencoba memasukkan data-datanya.
Data-data
yang akan dimasukkan adalah: Nama : Ilham, Jabatan : Manager, Gaji : 500000.
Perintah
yang harus dituliskan adalah:
insert into
Pegawai
(Nama,Jabatan,Gaji)
values (Ilham,Manager,500000);
(Nama,Jabatan,Gaji)
values (Ilham,Manager,500000);
Untuk
melihat hasilnya anda harus menggunakan perintah SELECT. Perintah ini akan saya
bahas lebih lanjut pada pertemuan kedua. Untuk melihat tabel pegawai, gunakan
perintah: SELECT * from Pegawai. Dan tabel anda seharusnya akan terlihat
seperti ini:
Nama
|
Jabatan
|
Gaji
|
Ilham
|
Manager
|
500000
|
JOIN
Cara kerja join
ialah dengan mencari kecocokan kolom tertentu pada sebuah tabel dengan kolom
tertentu pada tabel lain, kemudian menampilkan hasilnya sebagai satu set data
gabungan. Secara garis besar, terdapat 3 macam join, yaitu INNER JOIN, LEFT
JOIN dan RIGHT JOIN. Namun, selain dari 3 macam tersebut, terdapat tambahan
beberapa varian tergantung dari RDBMS yang digunakan.
1.INNER JOIN
Dengan INNER JOIN hanya akan ditampilkan baris-baris yang satu sama lain memiliki kecocokan.
Contoh:
SELECT a.nama, b.gejala
FROM pasien a
INNER JOIN gejala b
ON b.id = a.id;
|------ |---------- |
| nama | gejala |
|------ |---------- |
| John | Demam |
| Jane | Pusing |
| Mike | Mual |
2.LEFT JOIN
Sebuah query dengan LEFT JOIN akan menampilkan semua baris dari tabel sebelah kiri (pertama/utama atau pasien) dengan gabungan dari tabel sebelah kanan (kedua atau symptom).
Contoh:
SELECT a.nama, b.gejala
FROM pasien a
LEFT JOIN gejala b
ON b.id = a.id;
|-------|----------|
| nama | gejala |
|-------|----------|
| John | Demam |
| Jane | Pusing |
| Mike | Mual |
| Doel | NULL |
Perbedaannya dengan INNER JOIN ialah, pada LEFT JOIN - seluruh baris dari tabel pertama akan ditampilkan meskipun tidak ada kecocokan baris pada tabel kedua. Lihat contoh diatas, pasien Doel tidak memiliki data symptom sehingga tertampil NULL (NULL disini menyatakan bahwa tidak ada data pada kolom tersebut). Selain itu, posisi tabel jadi mempunyai makna, yaitu tabel kiri atau pertama (ialah tabel sebelum 'LEFT JOIN') akan menjadi tabel utama yang diquery terlebih dahulu, baru kemudian dicarikan kecocokannya dengan tabel kanan atau kedua (ialah tabel setelah 'LEFT JOIN').
3.RIGHT JOIN
Query RIGHT JOIN hampir sama dengan LEFT JOIN, hanya saja posisinya terbalik, yaitu akan menampilkan semua baris dari tabel kanan (kedua) meskipun tidak ada kecocokan pada tabel kiri (pertama).
Contoh:
SELECT a.nama, b.gejala
FROM pasien a
RIGHT JOIN gejala b
ON b.id = a.id;
|-------|----------|
| nama | gejala |
|-------|----------|
| John | Demam |
| Jane | Pusing |
| Mike | Mual |
1.INNER JOIN
Dengan INNER JOIN hanya akan ditampilkan baris-baris yang satu sama lain memiliki kecocokan.
Contoh:
SELECT a.nama, b.gejala
FROM pasien a
INNER JOIN gejala b
ON b.id = a.id;
|------ |---------- |
| nama | gejala |
|------ |---------- |
| John | Demam |
| Jane | Pusing |
| Mike | Mual |
2.LEFT JOIN
Sebuah query dengan LEFT JOIN akan menampilkan semua baris dari tabel sebelah kiri (pertama/utama atau pasien) dengan gabungan dari tabel sebelah kanan (kedua atau symptom).
Contoh:
SELECT a.nama, b.gejala
FROM pasien a
LEFT JOIN gejala b
ON b.id = a.id;
|-------|----------|
| nama | gejala |
|-------|----------|
| John | Demam |
| Jane | Pusing |
| Mike | Mual |
| Doel | NULL |
Perbedaannya dengan INNER JOIN ialah, pada LEFT JOIN - seluruh baris dari tabel pertama akan ditampilkan meskipun tidak ada kecocokan baris pada tabel kedua. Lihat contoh diatas, pasien Doel tidak memiliki data symptom sehingga tertampil NULL (NULL disini menyatakan bahwa tidak ada data pada kolom tersebut). Selain itu, posisi tabel jadi mempunyai makna, yaitu tabel kiri atau pertama (ialah tabel sebelum 'LEFT JOIN') akan menjadi tabel utama yang diquery terlebih dahulu, baru kemudian dicarikan kecocokannya dengan tabel kanan atau kedua (ialah tabel setelah 'LEFT JOIN').
3.RIGHT JOIN
Query RIGHT JOIN hampir sama dengan LEFT JOIN, hanya saja posisinya terbalik, yaitu akan menampilkan semua baris dari tabel kanan (kedua) meskipun tidak ada kecocokan pada tabel kiri (pertama).
Contoh:
SELECT a.nama, b.gejala
FROM pasien a
RIGHT JOIN gejala b
ON b.id = a.id;
|-------|----------|
| nama | gejala |
|-------|----------|
| John | Demam |
| Jane | Pusing |
| Mike | Mual |
SUBQUERY
Subquery (disebut juga subselect) merupakan bentuk query yang terletak dalam query lain. Dalam pemahaman yang sederhana didalam sebuah SELECT terdapat SELECT lain.
SELECT dapat juga digunakan dalam WHERE, hal ini disebut subquery.
Kata kunci untuk Subquery:
o IN
o EXISTS
o ALL/ANY/SOME
IN Subquery
- Dengan IN, subquery harus menghasilkan 1 (satu) kolom tapi boleh beberapa baris.
Contoh : SELECT DISTINCT nama FROM petani
WHERE id NOT IN
(SELECT id FROM memasokWHERE jml_bunga = 1 )
EXIST Subquery
- Dengan EXIST, subquery dapat menghasilkan satu atau lebih kolom.
Contoh :
SELECT id, nama FROM petani
WHERE NOT EXIST
(SELECT stock_num,manu_code FROM items
WHERE stock.stock_num = items.stock_num
AND stock.manu_code =
items.manu_code)