SQL
pertama kali diterapkan pada sistem R (sebuah proyek riset pada
laboratorium riset San Jose, IBM). Kini SQL juga dijumpai pada berbagai
platform, dari mikrokomputer hingga mainframe. SQL dapat digunakan baik
secara berdiri sendiri maupun dilekatkan pada bahasa-bahasa lain seperti
C dan Delphi. SQL juga telah menjadi bagian dari sejumlah DBMS, seperti
Oracle, Sybase, MySQL dan Informix.
B. Elemen SQL
Elemen dasar SQL mencakup pernyataan, nama, tipe data, konstanta, ekspresi, dan fungsi bawaan.
1. Pernyataan
Pernyataan
adalah perintah SQL yang meminta sesuatu tindakan kepada DBMS. SQL
memiliki kira-kira 30 pernyataan. Beberapa pernyataan dasar SQL dapat
dilihat pada tabel berikut :
ALTER
Mengubah struktur tabel
COMMIT
Mengakhiri sebuah eksekusi transaksi
CREATE
Menciptakan tabel, indeks atau pandangan
DELETE
Menghapus baris pada tabel
DROP
Menghapus tabel, indeks atau pandangan
GRANT
Menugaskan hak terhadap basis data kepada pengguna atau grup pengguna
INSERT
Menambahkan sebuah baris pada tabel
REVOKE
Membatalkan hak terhadap basis data
ROLLBACK
Mengembalikan ke keadaan semula sekiranya suatu transaksi gagal dilaksanakan
SELECT
Memilih baris dan kolom pada tabel
UPDATE
Mengubah nilai pada sebuah baris
2. Nama
Nama digunakan sebagai identitas bagi objek-objek pada DBMS. Contoh objek pada DBMS adalah tabel, kolom dan pengguna.
3. Tipe Data
Setiap data memiliki tipe data. Berikut ini adalah tipe data dalam MySQL :
Tipe data untuk numerik :
Tipe
Keterangan
Range Nilai
TINYINT
Nilai integer yang sangat kecil
Signed : -128 s.d. 127
Unsigned : 0 s.d. 255
SMALLINT
Nilai integer yang kecil
Signed : -32768 s.d. 32767
Unsigned : 0 s.d. 65535
MEDIUMINT
Integer dengan nilai medium
Signed : -8388608 s.d. 8388607
Unsigned : 0 s.d. 16777215
Tipe
Keterangan
Range Nilai
INT
Integer dengan nilai standar
Signed : -2147483648 s.d. 2147483647
Unsigned : 0 s.d. 4294967295
BIGINT
Integer dengan nilai besar
Signed : -9223372036854775808 s.d. 9223372036854775807
Unsigned : 0 s.d. 18446744073709551615
FLOAT
Bilangan desimal dengan single-precission
minimum ± 1.175494351e-38
maksimum ± 3.402823466e+38
DOUBLE
Bilangan desimal dengan double-precission
minimum ± 2.2205738585072014e-308
maksimum ± 1.7976931348623457e+308
DECIMAL(M,D)
Bilangan
float (desimal) yang dinyatakan sebagai string. M adalah jumlah digit
yang disimpan dalam suatu kolom, N adalah jumlah digit dibelakang koma
Tergantung pada nilai M dan D
Keterangan : Signed dan Unsigned adalah atribut untuk tipe data numerik
- Signed : data yang disimpan dalam suatu kolom dapat berupa data negatif dan positif.
- Unsigned
: digunakan agar data yang dimasukkan bukan data negatif (>=0). Tipe
data float tidak dapat dinyatakan dengan unsigned.
Tipe data string :
Tipe
Keterangan
Ukuran Maksimum
CHAR(n)
String karakter dengan panjang yang tetap, yaitu n
1 M byte
VARCHAR(n)
String karakter dengan panjang yang tidak tetap, maksimum n.
1 M byte
TINYBLOB
BLOB (Binary Large Object) yang sangat kecil
2
8
-1 byte
BLOB
BLOB berukuran kecil
2
16
-1 byte
MEDIUMBLOB
BLOB berukuran sedang
2
24
-1 byte
LONGBLOB
BLOB berukuran besar
2
32
-1 byte
TINYTEXT
String teks yang sangat kecil
2
8
-1 byte
TEXT
String teks berukuran kecil
2
16
-1 byte
MEDIUMTEXT
String teks berukuran medium(sedang)
2
24
-1 byte
LONGTEXT
String teks berukuran besar
2
32
-1 byte
ENUM
Enumerasi, kolom dapat diisi dengan satu member enumerasi
65535 anggota
SET
Himpunan, kolom dapat diisi dengan beberapa nilai anggota himpunan
64 anggota himpunan
Tipe data tanggal dan jam :
Tipe
Range
Format
DATE
“1000-01-01” s.d. “9999-12-31”
“0000-00-00”
TIME
“-832:59:59” s.d. “838:59:59”
“00:00:00”
DATETIME
“1000-01-01 00:00:00” s.d. “9999-12-31 23:59:59”
“0000-00-00 00:00:00”
4. Konstanta
Konstanta menyatakan nilai yang tetap.
5. Ekspresi
Ekspresi adalah segala sesuatu yang menghasilkan nilai. Ekspresi digunakan untuk menghitung nilai.
Contoh : harga*jumlah+2
Simbol-simbol yang dapat digunakan pada ekspresi aritmatika.
Simbol
Keterangan
*
Perkalian
/
Pembagian
+
Penjumlahan
-
Pengurangan
6. Aggregate Functions (Fungsi Agregat)
Fungsi
adalah sebuah subprogram yang menghasilkan suatu nilai jika dipanggil.
Fungsi agregat adalah fungsi standar di dalam SQL, suatu fungsi yang
digunakan untuk melakukan summary, fungsi statistik standar yang
dikenakan pada suatu tabel atau query.
a. AVG(ekspresi)
Fungsi
ini digunakan untuk mencari rata-rata nilai dalam suatu kolom dari
suatu tabel atau ekspresi. Ekspresi dalam fungsi AVG umumnya adalah nama
kolom. Kolom yang dicari nilai rata-ratanya adalah kolom dengan tipe
data numerik.
b. COUNT(x)
Fungsi ini digunakan untuk
menghitung jumlah record (baris) dari suatu kolom dari suatu tabel. X
adalah nama kolom yang ingin dicari jumlah barisnya.
c. MAX(ekspresi)
Fungsi
ini digunakan untuk mencari nilai terbesar dari suatu kolom dari suatu
tabel. Kolom yang dicari nilai terbesarnya memiliki tipe data numerik.
d. MIN(ekspresi)
Fungsi
ini digunakan untuk mencari nilai terkecil dari suatu kolom dari suatu
tabel. Kolom yang dicari nilai terkecilnya memiliki tipe data numerik.
e. SUM(ekspresi)
Fungsi ini digunakan untuk mendapatkan nilai total dari suatu kolom pada suatu tabel.
C. Kelompok Pernyataan SQL
Pernyataan SQL dapat dikelompokkan menjadi 3 kelompok, yaitu : DDL, DML dan DCL.
1. DDL (Data Definition Language)
DDL
merupakan kelompok perintah yang berfungsi untuk mendefinisikan
atribut-atribut basis data, tabel, atribut(kolom), batasan-batasan
terhadap suatu atribut, serta hubungan antar tabel. Yang termasuk dalam
kelompok DDL ini adalah CREATE, ALTER, dan DROP.
a. Membuat Database
Syntax : CREATE DATABASE namadatabase;
namadatabase tidak
boleh mengandung spasi dan tidak boleh memiliki nama yang sama antar
database. Berikut ini perintah untuk membuat database dengan nama rental
:
Syntax tambahan : untuk menampilkan daftar nama database yang ada pada mysql menggunakan perintah :
SHOW DATABASES; seperti berikut ini :
b. Menghapus DatabaseSyntax : ROP DATABASE namadatabase;
Database yang akan dihapus sesuai dengan namadatabase. Berikut ini perintah untuk menghapus database dengan nama rental :
c. Membuat Tabel
Sebelum
membuat suatu tabel, terlebih dahulu harus memilih salah satu database
sebagai database aktif yang akan digunakan untuk menyimpan tabel-tabel
dengan menggunakan syntax : USE namadatabase;
Berikut ini perintah untuk menggunakan database dengan nama rental :
Syntax membuat table :
CREATE TABLE namatabel2
(
Field1 TipeData1,
Field2 TipeData2
);
namatabel tidak
boleh mengandung spasi (space). Field1 danTipeData1 merupakan nama
kolom pertama dan tipe data untuk kolom pertama. Jika ingin membuat
tabel dengan kolom lebih dari satu, maka setelah pendefinisian tipe data
sebelumnya diberikan tanda koma (,). Berikut ini perintah untuk membuat
tabel dengan nama jenisfilm :
Syntax tambahan :
Untuk menampilkan daftar nama tabel yang ada pada database yang sedang aktif/digunakan (dalam hal ini database rental) :
SHOW TABLES; seperti berikut ini :
Untuk menampilkan deskripsi tabel (dalam hal ini jenisfilm) syntaxnya adalah :
DESC namatabel;
d. Menghapus Tabel
Syntax , DROP TABLE namatabel;
Tabel yang akan dihapus sesuai dengan namatabel, berikut ini perintah untuk menghapus tabel dengan nama jenisfilm :
e. Mendefinisikan null/not nullSyntax :
CREATE TABLE namatabel
(
Field1 TipeData1 NOT NULL,
Field2 TipeData2
);
f. Mendefinisikan Nilai Default
Nilai
default adalah nilai yang otomatis diberikan oleh sistem untuk suatu
kolom ketika ada penambahan baris baru, sementara nilai pada kolom
tersebut tidak diisi oleh pengguna. Syntax :
CREATE TABLE namatabel
(
Field1 TipeData1,
Field2 TipeData2 DEFAULT nilai
);
nilai adalah nilai default dari kolom tersebut.
g. Mendefinisikan Primary Key Pada Tabel
Terdapat tiga cara untuk mendefinisikan primary key. Berikut ini adalah Syntax mendefinisikan primary key untuk Field1
CREATE TABLE namatabel
(
Field1 TipeData1 NOT NULL PRIMARY KEY,
Field2 TipeData2
);
Atau
CREATE TABLE namatabel
(
Field1 TipeData1,
Field2 TipeData2,
PRIMARY KEY(Field1)
);
atau
ALTER TABLE namatabel ADD CONSTRAINT namaconstraint PRIMARY KEY (namakolom);
Berikut
ini perintah untuk membuat tabel jenisfilm dengan kolom jenis tipe
datanya char(6), harga tipe datanya int dengan mendefinisikan nilai not
null dan primary key untuk kolom jenis serta nilai default untuk kolom
harga :
atau
atau
h. Menghapus Primary Key Pada Tabel
Perintah :
Cara 1 : Jika primary key dibuat dengan menggunakan alter table :
ALTER TABLE namatabel DROP CONSTRAINT namaconstraint;
Cara 2 : Jika primary key dibuat melalui create table :
ALTER TABLE namatabel DROP PRIMARY KEY;
Berikut ini perintah yang digunakan untuk menghapus primary key pada tabel jenisfilm :
i. Menambah Kolom Baru Pada Tabel
Syntax :
ALTER TABLE namatabel ADD fieldbaru tipe;
namatabel adalah
nama tabel yang akan ditambah fieldnya.Fieldbaru adalah nama kolom yang
akan ditambahkan, tipeadalah tipe data dari kolom yang akan
ditambahkan. Berikut ini perintah untuk menambah kolom keterangan dengan
tipe data varchar(25) :
j. Mengubah Tipe Data atau Lebar Kolom Pada Tabel
Perintah :
ALTER TABLE namatabel MODIFY COLUMN field tipe
namatabel adalah
nama tabel yang akan diubah tipe data atau lebar kolomnya. Field adalah
kolom yang akan diubah tipe data atau lebarnya. Tipe adalah tipe data
baru atau tipe data lama dengan lebar kolom yang berbeda. Berikut ini
perintah untuk mengubah tipe data untuk kolom keterangan dengan char(20)
:
k. Mengubah Nama Kolom
Syntax :
ALTER TABLE namatabel CHANGE COLUMN namalamakolom namabarukolom tipedatanya;
namatabel adalah
nama tabel yang akan diubah nama kolomnya,namalamakolom adalah kolom
yang akan diganti namanya,namabarukolom adalah nama baru
kolom, tipedatanya adalah tipe data dari kolom tersebut. Berikut ini
perintah untuk mengubah nama kolom keterangan menjadi ket :
l. Menghapus Kolom Pada Tabel
Syntax :
ALTER TABLE namatabel DROP COLUMN namakolom;
Berikut ini perintah untuk menghapus kolom ket pada tabel jenisfilm :
m. Mendefinisikan Foreign Key Pada Tabel
Untuk
mendefinisikan foreign key, maka harus dipastikan bahwa tabel dan
atribut yang dirujuk (tabel induk dari foreign key) sudah didefinisikan
terlebih dahulu. Syntax :
CREATE TABLE namatabel
(
Field1 TipeData1,
Field2 TipeData2,
FOREIGN KEY (Field2) REFERENCES namatabelinduk
(namakolominduk)ON UPDATE CASCADE
ON DELETE NO ACTION
)
atau
ALTER
TABLE namatabel ADD CONSTRAINT namaconstraint FOREIGN KEY (namakolom)
REFERENCES namatabelinduk (namakolominduk) ON UPDATE CASCADE ON DELETE
NO ACTION;
Berikut ini perintah untuk membuat tabel film beserta kolom-kolomnya :
atau
n. Menghapus Foreign Key
Perintah :
ALTER TABLE namatabel DROP FOREIGN KEY namaconstraint;Berikut ini perintah untuk menghapus foreign key pada tabel film :
2. DML (Data Manipulation Language)
DML
adalah kelompok perintah yang berfungsi untuk memanipulasi data dalam
basis data, misalnya untuk pengambilan, penyisipan, pengubahan dan
penghapusan data. Perintah yang termasuk dalah kategori DML adalah :
INSERT, DELETE, UPDATE dan SELECT.
a. INSERT
Perintah INSERT digunakan untuk menambahkan baris pada suatu tabel.
Terdapat dua cara untuk menambah baris, yaitu :
Cara 1 : Menambah baris dengan mengisi data pada setiap kolom :
INSERT INTO namatabel VALUES (nilai1,nilai2,nilai-n);
Cara 2 : Menambah baris dengan hanya mengisi data pada kolom tertentu :
INSERT INTO namatabel (kolom1,kolom2,kolom-n) VALUES (nilai1,nilai2,nilai-n);
Berikut ini perintah untuk menambahkan baris pada tabel jenisfilm :
Cara 1 :
Cara 2 :
Keterangan :
Jika
data bertipe string, date atau time (contoh : action, horor,
2007-11-10) maka pemberian nilainya diapit dengan tanda petik tunggal
(‘horor’) atau petik ganda (“horor”). Jika data bertipe numerik (2500,
400) maka pemberian nilainya tidak diapit tanda petik tunggal maupun
ganda.
b. DELETE
Perintah DELETE digunakan untuk menghapus satu baris, baris dengan kondisi tertentu atau seluruh baris.
Syntax , DELETE FROM namatabel [WHERE kondisi];
Perintah
dalam tanda [] bersifat opsional untuk menghapus suatu baris dengan
suatu kondisi tertentu. Berikut ini perintah untuk menghapus baris pada
tabel jenisfilm dengan data sebagai berikut :
Contoh 1 : jika ingin menghapus seluruh baris pada tabel jenisfilm :
Contoh
2 : jika ingin menghapus baris yang memiliki nilai 3000 pada kolom
harga pada tabel jenisfilm maka perintahnya sebagai berikut :
Contoh
3 : jika ingin menghapus baris yang memiliki nilai drama pada kolom
jenis pada tabel jenisfilm maka perintahnya sebagai berikut :
c. UPDATE
Perintah UPDATE digunakan untuk mengubah isi data pada satu atau beberapa kolom pada suatu tabel.
Syntax :
UPDATE namatabel SET kolom1 = nilai1, kolom2 = nilai2 [WHERE kondisi];
Perintah
dalam tanda [] bersifat opsional untuk mengubah suatu baris dengan
suatu kondisi tertentu. Berikut ini perintah untuk mengubah baris pada
tabel jenisfilm dengan data sebagai berikut :
Contoh 1 : mengubah semua nilai pada kolom harga menjadi 2000 :
Contoh 2 : mengubah nilai pada kolom harga menjadi 2500 dimana nilai pada kolom jenis adalah action :
d. SELECT
Perintah SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat dihubungkan dengan tabel yang lainnya.
1) Menampilkan data untuk semua kolom menggunakan asterisk (*)
Syntax : SELECT * FROM namatabel;
Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilm :
2) Menampilkan data untuk kolom tertentu
Syntax : SELECT kolom1,kolom2,kolom-n FROM namatabel;
Berikut ini perintah untuk menampilkan data pada tabel jenisfilm dengan kolom yang ditampilkan adalah kolom jenis :
3) Menampilkan data dengan kondisi data tertentu dengan klausa WHERE
Syntax : SELECT * FROM namatabel WHERE kondisi;
Berikut ini perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenis adalah drama :
Beberapa
operator perbandingan yang dapat digunakan pada klausa WHERE selain
“=” adalah : > (lebih dari), < (kurang dari), < > (tidak
sama dengan), >= (lebih dari atau sama dengan), <= (kurang dari
atau sama dengan). Adapun operator lain, yaitu : AND, OR, NOT,
BETWEEN-AND, IN dan LIKE. Berikut ini data yang ada pada tabel jenisfilm
:
Contoh 1 : perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga berkisar dari 1000 hingga 3000 :
atau
Contoh 2 : perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga sama dengan 1000 atau 3000 :
atau
Contoh 3 : perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenis tidak sama dengan action :
atau
Contoh 4 : Isi tabel film
perintah
untuk menampilkan data pada tabel film dimana data pada kolom tertentu
diawali dengan nilai tertentu, misalnya pada kolom judul dimana diawali
dengan karakter ‘S’ :
4) Memberikan nama lain pada kolom
Syntax : SELECT namakolomlama AS namakolombaru FROM namatabel;
Berikut ini perintah untuk memberikan nama lain pada kolom jenis menjadi jenis_film pada tabel jenisfilm :
5) Menggunakan alias untuk nama tabel
Syntax : SELECT nmalias.jenis, nmalias.harga FROM namatabel nmalias;
Berikut ini perintah untuk memberikan alias pada tabel jenisfilm :
6) Menampilkan data lebih dari dua tabel
Syntax :
SELECT * from namatabel1,namatabel2,namatabel-n;
Isi tabel jenisfilm :
Isi tabel film :
Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilm dan film :
7) Nested Queries / Subquery (IN, NOT IN, EXISTS, NOT EXISTS)
Subquery berarti query di dalam query. Dengan menggunakansubquery, hasil dari query akan menjadi bagian dari query di atasnya.
Subquery terletak di dalam klausa WHERE atau HAVING. Pada klausa WHERE, subquery digunakan untuk memilih baris-baris tertentu yang kemudian digunakan oleh query. Sedangkan pada klausa HAVING, subquery digunakan untuk memilih kelompok baris yang kemudian digunakan oleh query.
Contoh
1 : perintah untuk menampilkan data pada tabel jenisfilm yang mana data
pada kolom jenis-nya tercantum pada tabel film menggunakan IN :
atau menggunakan EXISTS
Pada contoh di atas :
SELECT jenis FROM film
disebut subquery, sedangkan :
SELECT * FROM jenisfilm
berkedudukan sebagai query.
Perhatikan, terdapat data jenis dan harga pada tabel jenisfilm yang
tidak ditampilkan. Hal ini disebabkan data pada kolom jenis tidak
terdapat pada kolom jenis di tabel film.
Contoh 2 : perintah untuk
menampilkan data pada tabel jenisfilm yang mana data pada kolom
jenis-nya tidak tercantum pada tabel film menggunakan NOT IN :
atau menggunakan NOT EXISTS
Operator comparison ANY dan ALL
a. Operator ANY digunakan berkaitan dengan subquery. Operator ini menghasilkan TRUE (benar) jika paling tidak salah satu perbandingan dengan hasil subquerymenghasilkan nilai TRUE. Ilustrasinya :
Gaji > ANY (S)
Jika subquery S menghasilkan G1, G2, ..., Gn, maka kondisi di atas identik dengan :
(gaji > G1) OR (gaji > G2) OR ... OR (gaji > Gn)
Contoh : perintah untuk menampilkan semua data jenisfilm yang harganya bukan yang terkecil :
b. Operator ALL digunakan untuk melakukan perbandingan dengan subquery. Kondisi dengan ALL menghasilkan nilai TRUE (benar) jika subquery tidak menghasilkan apapun atau jika perbandingan menghasilkan TRUE untuk setiap nilai query terhadap hasil subquery.
Contoh : perintah untuk menampilkan data jenisfilm yang harganya paling tinggi :
9) Aggregate Functions (COUNT, SUM, AVG, MIN, MAX)
a. COUNT
Perintah
yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel.
Contoh : perintah untuk menghitung jumlah baris kolom jenis pada tabel
jenisfilm :
b. SUM
Perintah
yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel.
Contoh : perintah untuk menghitung jumlah nilai kolom harga pada tabel
jenisfilm :
c. AVG
Perintah
yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada
tabel. Contoh : perintah untuk menghitung rata-rata dari kolom harga
pada tabel jenisfilm :
d. MIN
Perintah
yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada
tabel. Contoh : perintah untuk menampilkan nilai terkecil dari kolom
harga pada tabel jenisfilm :
e. MAX
Perintah
yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada
tabel. Contoh : perintah untuk menampilkan nilai terbesar dari kolom
harga pada tabel jenisfilm :
10) SQL dengan GROUP BY dan HAVING
Klausa GROUP BY digunakan untuk melakukan pengelompokan data. Sebagai contoh, terdapat tabel film dengan data sebagai berikut :
akan
ditampilkan hanya kolom jenis dan digabungkan dengan SUM(jml_film) yang
dikelompokkan berdasarkan kolom jenis pada tabel film :
Klausa
HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY.
Kelompok yang memenuhi HAVING saja yang akan dihasilkan. Contoh :
perintah untuk menampilkan data hanya kolom jenis yang dikelompokkan
berdasarkan kolom jenis, dimana jumlah film berdasarkan kelompoknya
harus lebih besar dari satu pada tabel film :
11) ORDER BY
Klausa
ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu
sesuai dengan tipe data yang dimiliki. Contoh : perintah untuk
mengurutkan data film berdasarkan kolom judul :
atau tambahkan ASC untuk pengurutan secara ascending(menaik)
atau tambahkan DESC untuk pengurutan secara descending(menurun)
12) UNION, INTERSECT dan EXCEPT
a. UNION
UNION merupakan operator yang digunakan untuk menggabungkan hasil query,
dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel
yang akan ditampilkan datanya harus sama. Berikut ini perintah untuk
memperoleh data pada tabel film dimana jenisnya action dan horor :
Perintah di atas identik dengan :
Namun tidak semua penggabungan dapat dilakukan dengan OR, yaitu jika bekerja pada dua tabel atau lebih.
b. 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.
Syntax : 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.
c. EXCEPT / Set Difference
EXCEPT merupakan operator yang digunakan untuk memperoleh data dari dua buah query dimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak terdapat pada data dari hasil query 2 dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama.
Syntax : SELECT * FROM namatabel1 EXCEPT SELECT * FROM namatabel2
Pada
MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat
menggunakan operator NOT IN seperti contoh 2 pada bagian Nested Queries.
13) Operasi Join
Join
merupakan operasi yang digunakan untuk menggabungkan dua tabel atau
lebih dengan hasil berupa gabungan dari kolom-kolom yang berasal dari
tabel-tabel tersebut. Pada join sederhana, tabel-tabel digabungkan dan
didasarkan pada pencocokan antara kolom pada tabel yang berbeda. Berikut
ini perintah untuk menampilkan kolom judul dari tabel film dan kolom
harga dari tabel jenisfilm :
Pada
contoh di atas, jenisfilm.jenis=film.jenismerupakan kondisi untuk
mencocokkan data antara kolom jenis milik tabel jenisfilm dan film.
a. Inner Join
Inner
join digunakan untuk menampilkan data dari dua tabel yang berisi data
sesuai dengan syarat dibelakang on (tidak boleh null), dengan kata lain
semua data dari tabel kiri mendapat pasangan data dari tabel sebelah
kanan. Berikut ini perintah untuk menampilkan data dari tabel jenisfilm
dan film dengan syarat berdasarkan kolom jenis :
b. Left Join
Left
join digunakan untuk menampilkan semua data dari tabel sebelah kiri
perintah left join beserta pasangannya dari tabel sebelah kanan.
Meskipun terdapat data dari sebelah kiri tidak memiliki pasangan, tetap
akan ditampilkan dengan pasangannya berupa nilai NULL.
c. Right Join
Right
join digunakan untuk menampilkan semua data dari tabel sebelah kanan
perintah right join beserta pasangannya dari tabel sebelah kiri.
Meskipun terdapat data dari sebelah kanan tidak memiliki pasangan, tetap
akan ditampilkan dengan pasangannya berupa nilai NULL.
d. Natural Join
Natural
join digunakan untuk menampilkan semua data dari dua tabel dimana jika
terdapat kolom yang sama, maka yang akan ditampilkan hanya salah satunya
saja, yaitu kolom dari tabel sebelah kiri perintah natural join.
1) Natural Left Join
Natural
left join digunakan untuk menampilkan semua data dari tabel sebelah
kiri perintah natural left join beserta pasangannya dari tabel sebelah
kanan. Meskipun terdapat data dari sebelah kiri tidak memiliki pasangan,
tetap akan ditampilkan dengan pasangannya berupa nilai NULL.
2) Natural Right Join
Natural
right join digunakan untuk menampilkan semua data dari tabel sebelah
kanan perintah natural right join beserta pasangannya dari tabel sebelah
kiri. Meskipun terdapat data dari sebelah kanan tidak memiliki
pasangan, tetap akan ditampilkan dengan pasangannya berupa nilai NULL.
catatan : Gambar mengalami kesalahan tehnis tidak muncul, tapi admin memberikan solusi untuk mengdownload filenya, klik disini ...
0 komentar:
Posting Komentar