A. SELECT
Perintah SELECT digunakan untuk memilih data dari
database. Data yang dikembalikan disimpan dalam tabel hasil, yang disebut
kumpulan hasil.
Select Sintaks
SELECT column1, column2, ...
FROM table_name;
Di sini, kolom1, kolom2, … adalah nama field dari
tabel yang ingin Anda pilih datanya. Jika Anda ingin memilih semua field yang
tersedia dalam tabel, gunakan sintaks berikut:
SELECT * FROM table_name;
Contoh
SELECT * FROM barang
SELECT * FROM member
SELECT nama, hargabeli, hargajual FROM barang
B.
Klausa WHEREpada SQL dapat dikombinasikan dengan
operator AND, OR, dan NOT.
Operator AND dan OR digunakan untuk catatan filter
berdasarkan kondisi yang lebih dari satu.
Operator AND menampilkan data jika semua kondisi
yang dipisahkan AND bernilai BENAR (TRUE).
Operator OR menampilkan data jika salah satu
kondisi yang dipisahkan oleh OR bernilai BENAR (TRUE).
Sintak AND
SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;
Sintak OR
SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;
Sintak NOT
SELECT column1, column2, ...
FROM table_name
WHERE NOT condition;
Contoh Penerapan Operator AND, OR dan NOT
Contoh AND
Pernyataan SQL berikut menampilkan semua field/kolom dari
tabel “barang” yang memiliki harga jual lebih kecil dari ‘10000’ dan
Kategorinya ‘Minuman’:
SELECT * FROM barang
WHERE hargajual <
'10000' AND kategori='Minuman'
Menggunakan AND lebih dari satu.
SELECT * FROM barang
WHERE hargajual <
'10000' AND kategori='Minuman' AND satuan = 'PCS'
Contoh OR
Contoh 1
Pernyataan SQL berikut menampilkan semua field/kolom dari
tabel “barang” yang memiliki harga jual lebih kecil dari ‘10000’ ATAU
Kategorinya ‘Minuman’:
SELECT * FROM barang
WHERE hargajual <
'10000' OR kategori='Minuman'
Contoh 2
Pernyataan SQL berikut menampilkan semua field/kolom dari
tabel “member” dengan kota ‘Mojokerto’ ATAU ‘Malang’:
SELECT * FROM member
WHERE kota='Mojokerto' OR kota='Malang'
Contoh NOT
Pernyataan SQL berikut menampilkan semua field/kolom dari
tabel “barang” yang kategorinya bukan “Minuman”
SELECT * FROM member
WHERE NOT kategori='Minuman'
Menggabungkan AND, OR dan NOT
Anda juga dapat menggabungkan operator AND, ORdan NOT.
Contoh AND … OR
Pernyataan SQL berikut memilih semua field/kolom dari
tabel “barang” dimana harga jualnya lebih besar dari ‘10000’ DAN
kategori harus “Makanan” ATAU “Minuman” (gunakan tanda kurung untuk membentuk
ekspresi yang kompleks):
SELECT * FROM barang
WHERE hargajual >
'10000' AND (kategori='Makanan' OR kategori='Minuman')
Contoh AND… NOT
Pernyataan SQL berikut memilih semua field/kolom dari tabel
“barang” dimana kategori BUKAN ‘Makanan’ dan BUKAN ‘Minuman’:
SELECT * FROM barang
WHERE NOT kategori='Makanan' AND NOT kategori='Minuman'
Perintah WHERE digunakan untuk filter
record. Perintah ini akan menghasilkan record data yang memenuhi suatu kondisi.
Sintaks WHERE
SELECT column1, column2, ...
FROM table_name
WHERE condition;
Catatan: Klausul WHERE tidak hanya digunakan
pada perintah SELECT, tapi juga digunakan dalam kausul UPDATE, DLL, dll.
Operator dalam Klausa WHERE
Operator berikut dapat digunakan dalam klausa WHERE:
Operator |
Description |
= |
Sama dengan |
> |
Lebih besar dari |
< |
Lebih kecil dari |
>= |
Lebih besar sama dengan |
<= |
Lebih kecil sama dengan |
<> |
Tidak sama dengan. Catatan: Di beberapa
versi SQL operator ini ditulis dengan != |
BETWEEN |
Antara |
LIKE |
Kemiripan |
IN |
Untuk menentukan beberapa kemungkinan nilai pada
kolom/field. |
Contoh Klausa WHERE
Contoh operator =
Perintah SQL berikut memilih semua member dari kota
“Mojokerto”, di tabel “member”:
SELECT * FROM member
WHERE kota='Mojokerto';
Contoh operator <>
SELECT * FROM member
WHERE kota <> 'Mojokerto';
Contoh operator >, <, >=, <=
SELECT * FROM barang
WHERE hargajual > '10000';
Contoh operator between
SELECT * FROM barang
WHERE hargajual between 10000 and 20000
Contoh operator like
SELECT * FROM barang
WHERE nama like '%sabun%';
Contoh operator in
SELECT * FROM barang
WHERE kode in ('176','177','178','165');
C. Operator AND, OR dan NOT
Klausa WHERE pada SQL dapat dikombinasikan
dengan operator AND, OR, dan NOT.
Operator AND dan OR digunakan untuk
catatan filter berdasarkan kondisi yang lebih dari satu.
Operator AND menampilkan data jika semua
kondisi yang dipisahkan AND bernilai BENAR (TRUE).
Operator OR menampilkan data jika
salah satu kondisi yang dipisahkan oleh OR bernilai BENAR (TRUE).
Sintak AND
SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;
Sintak OR
SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;
Sintak NOT
SELECT column1, column2, ...
FROM table_name
WHERE NOT condition;
Contoh Penerapan Operator AND, OR dan NOT
Contoh AND
Pernyataan SQL berikut menampilkan semua field/kolom
dari tabel “barang” yang memiliki harga jual lebih kecil dari ‘10000’ dan
Kategorinya ‘Minuman’:
SELECT * FROM barang
WHERE hargajual <
'10000' AND kategori='Minuman'
Menggunakan AND lebih dari satu.
SELECT * FROM barang
WHERE hargajual <
'10000' AND kategori='Minuman' AND satuan = 'PCS'
Contoh OR
Contoh 1
Pernyataan SQL berikut menampilkan semua field/kolom
dari tabel “barang” yang memiliki harga jual lebih kecil dari ‘10000’ ATAU
Kategorinya ‘Minuman’:
SELECT * FROM barang
WHERE hargajual <
'10000' OR kategori='Minuman'
Contoh 2
Pernyataan SQL berikut menampilkan semua field/kolom
dari tabel “member” dengan kota ‘Mojokerto’ ATAU ‘Malang’:
SELECT * FROM member
WHERE kota='Mojokerto' OR kota='Malang'
Contoh NOT
Pernyataan SQL berikut menampilkan semua field/kolom
dari tabel “barang” yang kategorinya bukan “Minuman”
SELECT * FROM member
WHERE NOT kategori='Minuman'
Menggabungkan AND, OR dan NOT
Anda juga dapat menggabungkan operator AND, ORdan NOT.
Contoh AND … OR
Pernyataan SQL berikut memilih semua field/kolom
dari tabel “barang” dimana harga jualnya lebih besar dari ‘10000’ DAN
kategori harus “Makanan” ATAU “Minuman” (gunakan tanda kurung untuk membentuk
ekspresi yang kompleks):
SELECT * FROM barang
WHERE hargajual >
'10000' AND (kategori='Makanan' OR kategori='Minuman')
Contoh AND… NOT
Pernyataan SQL berikut memilih semua field/kolom
dari tabel “barang” dimana kategori BUKAN ‘Makanan’ dan BUKAN ‘Minuman’:
SELECT * FROM barang
WHERE NOT kategori='Makanan' AND NOT kategori='Minuman'
D.
ORDER BY
Perintah ORDER BY digunakan untuk
mengurutkan hasil set data dalam urutan dari “kecil” ke “besar” atau
dari “A” ke “Z”, atau sebaliknya mengurutkan data dari “besar” ke “kecil” atau
dari “Z” ke “A”.
Perintah ORDER BY mengurutkan data dalam
urutan menaik (“kecil” ke “besar”) secara default. Untuk mengurutkan data
dalam urutan menurun (“besar” ke “kecil”), gunakan key DESC.
Sintak ORDER BY
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
Contoh ORDER BY
Pernyataan SQL berikut memilih semua data dari tabel
“member”, diurutkan berdasarkan field “nama” dan urut secara naik (dari “A” ke “Z”):
SELECT * FROM member
ORDER BY nama
Contoh ORDER BY DESC
Pernyataan SQL berikut memilih semua data dari tabel
“member”, diurutkan berdasarkan field “nama” dan urut secara menurun
(dari “Z” ke “A”):
SELECT * FROM member
ORDER BY nama DESC
Contoh ORDER BY Beberapa Field
Pernyataan SQL berikut memilih semua data dari tabel
“member”, diurutkan berdasarkan field “kota” dan “nama”. Ini berarti data
akan diurutkan berdasarkan kota terlebih dahulu, jika beberapa baris memiliki
kota yang sama, data akan diurutkan berdasarkan nama member:
SELECT * FROM member
ORDER BY kota, nama
Contoh ORDER BY Beberapa Field 2
Pernyataan SQL berikut memilih semua data dari tabel
“member”, diurutkan berdasarkan field “kota” dan “nama”. Ini berarti data
akan diurutkan berdasarkan kota terlebih dahulu dengan urutan naik (A ke Z),
jika beberapa baris memiliki kota yang sama, data akan diurutkan berdasarkan
nama member dengan urutan menurun (Z ke A):
SELECT * FROM member
ORDER BY kota ASC, nama DESC
E. LIMIT
Klausa LIMIT
MySQL menyediakan
klausa LIMIT yang digunakan untuk menentukan jumlah record yang akan
ditampilkan.
Selain menentukan
jumlah record yang ditampilkan, Klausa LIMIT juga dapat dipadukan dengan OFFSET
untuk memudahkan membuat paging halaman, terutama sangat berguna pada tabel
dengan jumlah record yang besar.
Hasil LIMIT ditunjukkan pada gambar di bawah ini. Jika tidak menggunakan LIMIT semua data akan ditampilkan, dan jika menggunakan LIMIT maka data yang ditampilkan sejumlah yang ada di kotak merah (contoh gambar di bawah menggunakan limit 3).
Sintaks LIMIT:
SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;
Contoh Limit
Perintah di bawah ini
untuk menampilkan data barang sebanyak 3 record:
SELECT * FROM barang
LIMIT 3
Perintah di bawah ini
menampilkan data barang sebanyak 3 record yang memiliki kategori minuman:
SELECT * FROM barang
WHERE kategori = 'minuman'
LIMIT 3;
Perintah di bawah ini
menampilkan data barang sebanyak 3 record yang memiliki kategori minuman urut
berdasarkan nama barang:
SELECT * FROM barang
WHERE kategori =
'minuman'
ORDER BY nama
LIMIT 3;
F. GROUP BY
SQL GROUP BY digunakan untuk mengelompokkan data
(record) yang memiliki nilai yang sama. seperti “menemukan jumlah data barang sesuai
dengan kategori”.
SQL GROUP BY sering digunakan pada fungsi agregat
seperti (COUNT(), MAX(), MIN(), SUM(), AVG()) yang menampilkan beberapa kolom.
Sintaks GROUP BY
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);
Contoh GROUP BY
Perintah di bawah ini untuk menampilkan banyaknya
record berdasarkan kelompok kategori.
SELECT kategori, COUNT(*) as jml_record
FROM barang
GROUP BY kategori
Perintah di bawah ini untuk menampilkan perolehan
penjualan berdasarkan kelompok tahun penjualan urut berdasarkan tahun.
SELECT year(j.tanggal) as tahun, sum(dt.total) as
jumlah
FROM jual as j
LEFT JOIN dtjual as dt
ON dt.notrans = j.notrans
GROUP BY year(j.tanggal)
ORDER BY year(j.tanggal)
Perintah di bawah ini untuk menampilkan perolehan
penjualan berdasarkan kelompok bulan penjualan dengan kriteria tahun penjualan
2020 urut berdasarkan bulan.
SELECT month(j.tanggal) as bulan, sum(dt.total) as
jumlah
FROM jual as j
LEFT JOIN dtjual as dt
ON dt.notrans = j.notrans
WHERE year(j.tanggal) = '2020'
GROUP BY month(j.tanggal)
ORDER BY month(j.tanggal)
Perintah di bawah ini untuk menampilkan perolehan
penjualan berdasarkan kelompok kategori urut berdasarkan perolehan penjualan
yang terbesar ke terkecil.
SELECT b.kategori, SUM(dt.total) as Jumlah
FROM dtjual as dt
LEFT JOIN barang as b
ON dt.kodebarang = b.kode
GROUP BY b.kategori
ORDER BY jumlah desc
G. COUNT(), AVG() dan SUM()
SQL COUNT();
SQL Count() digunakan untuk menampilkan banyaknya
data (record) sesuai dengan kriteria tertentu.
Sintaks COUNT()
SELECT COUNT( column_name)
FROM table_name
WHERE condition;
Contoh COUNT()
Perintah di bawah ini untuk menampilkan banyaknya
record pada tabel barang.
SELECT COUNT(*)
FROM barang
Perintah di bawah ini untuk menampilkan banyaknya
record pada tabel barang dengan kategori “makanan” dengan alias.
SELECT COUNT(*) as Jumlah
FROM barang
WHERE kategori='makanan'
SQL AVG()
AVG() digunakan untuk menampilkan nilai rata-rata
pada kolom dengan tipe numerik.
Sintaks AVG()
SELECT AVG( column_name)
FROM table_name
WHERE condition;
Contoh AVG()
Perintah di bawah ini untuk menampilkan rata-rata
perolehan penjualan.
SELECT AVG(total) as rata2_jual
FROM dtjual
Perintah di bawah ini untuk menampilkan rata-rata
penjualan pada tahun 2021
SELECT AVG(dt.total) as rata2_jual
FROM dtjual as dt
LEFT JOIN jual as j
ON dt.notrans = j.notrans
WHERE year(j.tanggal) = '2021'
SQL SUM()
SQL Sum() digunakan untuk menampilkan hasil
penjumlahan pada kolom dengan tipe numerik.
Sintaks SUM()
SELECT SUM( column_name)
FROM table_name
WHERE condition;
Contoh SUM()
Perintah di bawah ini untuk menampilkan perolehan
semua penjualan.
SELECT SUM(total) as jumlah_total
FROM dtjual
Perintah di bawah ini untuk menampilkan perolehan
laba pada tahun 2020
SELECT SUM(dt.laba) as laba
FROM dtjual as dt
LEFT JOIN jual as j
ON dt.notrans = j.notrans
WHERE year(j.tanggal) = '2020'
H. UNION
SQL UNION digunakan untuk menggabungkan hasil set
dari dua atau lebih pada pernyataan SELECT. Adapun ketentuan penggunaan UNION sebagai
berikut:
Setiap pernyataan SELECT yang di dalamnya
menggunakan UNION harus memiliki jumlah kolom yang sama.
Kolom juga harus memiliki tipe data yang serupa
Kolom di setiap pernyataan SELECT juga
harus dalam urutan yang sama
Sintaks UNION
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
UNION ALL Sintaks
SQL UNION hanya menampilkan nilai yang
berbeda (distinct) secara default. Untuk menampilkan seluruh nilai
(duplikat), gunakan UNION ALL.
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
Catatan: Nama kolom yang ditampilkan pada
pernyataan SELECT menggunakan UNION biasanya sama dengan
nama kolom di SELECT bagian pertama .
Contoh UNION
SELECT nama FROM member UNION
SELECT nama FROM supplier
mengambil beberapa kolom :
SELECT nama, alamat FROM member UNION
SELECT nama, alamat FROM supplier
Menggunakan UNION ALL
SELECT nama FROM member UNION ALL
SELECT nama FROM supplier