PENGENALAN OPERATOR DASAR SQL
Pada
SQL, operator bertindak bardasarkan operand, yaitu elemen yang dianalisa oleh
operator. Terdapat dua jenis opertor, yaitu operator unary yang bertindak
berdasarkan satu operator saja, dan operator binary yang bertindak berdasarkan
dua atau lebih operator. Apabila pada sebuah ekspresi terdapat lebih dari satu
operator, maka operator-operator tersebut akan dievaluasi berdasarkan urutan
sebagai berikut:
Ø + (positif), - (negatif), ~ (betwise NOT)
Ø * (perkalian), / (pembagian), % (modulus)
Ø +, >, <, >=, <=, <>, !=,
!>, !<
Ø ^ (bitwise exclusive OR), & (bitwise
AND), | (bitwise OR)
Ø NOT
Ø AND
Ø ALL, ANY, BETWEEN, IN, LIKE, OR, SOME
Ø = (penugasan)
1. OPERATOR AS
Operator AS dalam bahasa inggris
artinya adalah "Sebagai" dalam query biasanya digunakan untuk
menampilkan kolom dengan nama lain sehingga akan muncul dalam hasil query bukan
nama asli kolom, tetapi nama yang mungkin lebih sesuai dan mudah dimengerti
oleh orang awam sekalipun.
Operator ini hanya merubah nama
panggilan suatu kolom sendiri, dan nama panggilan kolom beserta nama kolom
tersebut sama-sama dapat diakses. Querynya yakni :
SELECT [nama_kolom] AS [nama_kolom_pengganti]
FROM [nama_tabel];
Jika tabel yang ingin ditampilkan
nama aliasnya merupakan tabel berelasi, query yang dipakai adalah:
SELECT [nama_kolom1] AS
[nama_kolom_pengganti], [nama_kolom2] AS [nama_kolom_pengganti2]
FROM [nama_tabel1], [nama_tabel2]
WHERE
[nama_tabel1.primary_key_nya]=[nama_tabel2.foreign_key_nya];
2. OPERATOR AND
Kegunaan operator ini adalah untuk melakukan
pencarian dan menampilkan data yang lebih akurat . Dengan operator AND akan
ditampilkan data yang hanya memenuhi kedua syarat yang ditentukan.
Berikut tabel kebenaran untuk logika
boolean AND
Strukur querynya :
SELECT * FROM [nama_tabel] WHERE [nama_kolom1]
= ‘[pencarian1]’ AND [nama_kolom2] = ‘[pencarian2]’;
3. OPERATOR OR
Fungsi operator OR mirip dengan
operator AND, namun jika operator AND menampilkan data yang harus memenuhi
kedua syarat yang dibutuhkan, operator OR tetap akan menampilkan data yang
hanya memenuhi salah satu dari kedua syarat yang ditentukan.
Berikut tabel kebenaran untuk logika
boolean OR
Querinya yakni : SELECT * FROM [nama_tabel]
WHERE [nama_kolom] = ‘[pencarian1]’ OR [nama_kolom] = ‘[pencarian2]’;
4. OPERATOR BETWEEN
Dalam operator ini, terjadi
pembatasan pada data yang ditampilkan. Data diberi batasan pada nilai terendah
dan tertinggi. Pada between menggunakan operator pembanding seperti tersebut
dibawah ini.
-
< kurang
dari
-
> lebih
dari
-
<= kurang dari sama dengan
-
>= lebih dari sama dengan
-
= sama
dengan
-
<> atau != tidak sama dengan
Logika operator between
adalah sebagai berikut:
-
Nilai a dari formula “a BETWEEN x
AND y” identik dengan “a>=x AND a<=y”
-
“a NOT BETWEEN x AND y” identik
dengan “a<x OR a>y”...(a=nama_kolom)
Berikut querynya :
SELECT * FROM [nama_tabel] WHERE [nama_kolom]
BETWEEN ‘[nilai_awal]’ AND ‘[nilai_akhir]’;
Berikut query tanpa menggunakan
between,
SELECT * FROM [nama_tabel] WHERE
[nama_kolom] operator_pembanding ‘[nilai_awal]’ AND [nama_kolom]
operator_pembanding ‘[niali_akhir]’;
5. OPERATOR LIKE
Operator
LIKE digunakan untuk mencri data yang menyerupai atau hampir sama dengan
kriteria tertentu. Operator ini biasanya digunakan untuk mencari data bertipe string/teks.
Penempatan simbol ‘%’ sangat berpengaruh dalam pengoperasian operator ini.Operator ini menggunakan
mode pencarian berdasarkan huruf awal atau huruf akhir atau kombinasi dari
keduanya dari data yang diinginkan.
Berikut contoh kasus penggunaan LIKE.
-
Diawali dengan huruf A LIKE
‘A%’
-
Diakhii dengan huruf A LIKE
‘%A’
-
Huruf A pada posisi kedua LIKE
‘_A%’
-
Diawali dengan huruf A dan
mengandung huruf I LIKE ‘A%I%’
-
Tidak diawali dengan huruf A NOT
LIKE ‘A%’
querynya :
SELECT * FROM [nama_tabel] WHERE [nama_kolom]
LIKE ‘[operator]’;
6. OPERATOR DISTINCT
Selanjutnya operator DISTINCT,
operator ini digunakan untuk menampilkan data tanpa duplikasi data pada suatu
kolom, jika terdapat duplikasi data maka yang ditampilkan hanya satu data saja.
Ini querynya :
SELECT DISTINCT [nama_kolom] FROM [nama_tabel];
7. OPERATOR LIMIT
Kegunaan operator LIMIT terletak
pada pembatasan atas jumlah data yang boleh ditampilkan. Bisa dikatakan LIMIT
adalah untuk menentukan jumlah baris yang akan ditampilkan yang dihitung dari baris
pertama.
Querinya seperti ini :
SELECT * FROM [nama_tabel] ORDER BY
[nama_kolom] LIMIT [jumlah_datayang_ingin_ditampilkan];
8. OPERATOR OFFSET
Apabila operator LIMIT yang
membatasi jumlah data yang ditampilkan, operator ini adalah kebalikannya , dia
akan menghilangkan jumlah data yang akan ditampilkan dan menampilkan sisa dari
data yang dihilangkan. Querynya, yakni :
SELECT * FROM [nama_tabel] ORDER BY
[nama_kolom] OFFSET [jumlah_data_yang_ingin_dihilangkan];
9. OPERATOR CASE
Dari operator CASE, kita dapat
membentuk output tersendiri berupa sebuah kolom baru dengan data yang berasal
dari operasi yang terdapat di dalam querynya. Ini Querinya : SELECT * CASE WHEN
[nama_kolom] = ‘[isi_kolom]’ THEN ‘[isi_kolom_baru_kondisi1]’ ELSE ‘[isi_kolom_baru_kondisi2]’
END AS [nama_kolm_baru] FROM [nama_tabel];
10. IF EXISTS
Merupakan operator yang menyatakan
apakah suatu komponen basisdata ada atau tidak
Contoh Query:
DROP TABLE IF
EXISTS hobi;
//Jika terdapat
tabel hobi maka tabel tersebut akan terhapus dari basisdata
CREATE TABLE IF NOT
EXISTS hobi (kd_hobi char(5), nm_hobi char(55), PRIMARY KEY (kd_hobi));
//Jika tabel hobi sudah ada,
maka perintah query untuk membuat tabel dengan nama yang sama tersebut tidak
bisa dilaksanakan.
11. IS NULL
Merupakan
operator yang menyatakan apakah suatu nilai bernilai NULL (kosong)
Contoh Query:
SELECT [kolom1, kolom2,
kolom3] FROM [nama_tabel] WHERE [kolom_syarat] IS NULL;
12. Operator UNION, EXCEPT dan INTERSECT
Dibagian ini terdapat perbedaan antara perintah di MySQL serta PostgreSQL, yaitu pada bagian EXCEPT dan INTERSECT.
Hasil dari dua buah query dapat dikombinasikan dengan menggunakan UNION, EXCEPT atau INTERSECT. UNION digunakan untuk menggabungkan hasil dua buah query menjadi satu kolom.
Dibagian ini terdapat perbedaan antara perintah di MySQL serta PostgreSQL, yaitu pada bagian EXCEPT dan INTERSECT.
Hasil dari dua buah query dapat dikombinasikan dengan menggunakan UNION, EXCEPT atau INTERSECT. UNION digunakan untuk menggabungkan hasil dua buah query menjadi satu kolom.
Berikut
struktur query untuk UNION (MySQL dan PostgreSQL sama) :
SELECT [nama_kolom] FROM [nama_tabel] UNION SELECT [nama_kolom] FROM
[nama_tabel];
atau
SELECT [nama_kolom] FROM [nama_tabel] UNION SELECT [nama_kolom] FROM
[nama_tabel];
atau
SELECT
[nama_kolom] FROM [nama_tabel] UNION SELECT * FROM
[nama_tabel];
EXCEPT digunakan untuk menampilkan hanya query pertama saja, sedangkan
hasil query kedua dan yang sama dengan hasil query kedua tidak akan ditampilkan.
Berikut struktur query penggunaan EXCEPT (PostgreSQL) :
[nama_tabel];
EXCEPT digunakan untuk menampilkan hanya query pertama saja, sedangkan
hasil query kedua dan yang sama dengan hasil query kedua tidak akan ditampilkan.
Berikut struktur query penggunaan EXCEPT (PostgreSQL) :
SELECT
[nama_kolom] FROM [nama_tabel] EXCEPT SELECT [nama_kolom] FROM
[nama_tabel];
Perintah INTERSECT hanya akan menampilkan seluruh isi dari data
yang memiliki kesaman diantara hasil kedua query tersebut. Berikut struktur query
penggunaan INTERSECT (PostgreSQL) :
SELECT [nama_kolom] FROM [nama_tabel] INTERSECT SELECT [nama_kolom] FROM
[nama_tabel];
Sedangkan pada MySQL tidak ada perintah EXCEPT dan INTERSECT, namun digantikan dengan IN untuk INTERSECT dan NOT IN untuk EXCEPT. Syarat tabelnya harus terdiri hanya 1 field/ kolom saja.
[nama_tabel];
Perintah INTERSECT hanya akan menampilkan seluruh isi dari data
yang memiliki kesaman diantara hasil kedua query tersebut. Berikut struktur query
penggunaan INTERSECT (PostgreSQL) :
SELECT [nama_kolom] FROM [nama_tabel] INTERSECT SELECT [nama_kolom] FROM
[nama_tabel];
Sedangkan pada MySQL tidak ada perintah EXCEPT dan INTERSECT, namun digantikan dengan IN untuk INTERSECT dan NOT IN untuk EXCEPT. Syarat tabelnya harus terdiri hanya 1 field/ kolom saja.
-
IN/
INTERSECT query sebagai berikut:
SELECT * FROM [tabel1] WHERE [nama_field]
IN (SELECT * FROM tabel2);
-
NOT
IN/ EXCEPT query sebagai berikut:
SELECT * FROM tabel1 WHERE nama_field
NOT IN (SELECT * FROM tabel2);
13. OPERATOR IN dan NOT IN
Operator
IN berguna melakukan pencocokan dengan salah satu yang ada pada suatu daftar
nilai. Berikut strukturnya:
SELECT
* FROM [nama_tabel] WHERE [nama_kolom] IN (kata_kunci1,
kata_kunci2,kata_kunci3);
14. REGEXP
Bagi
yang sudah pernah mengenal bahasa pemograman lain, mungkin sudah mengenal
Reguler Expression yang kadang disingkat dengan RexExp, atau hanya RE. Dalam
bahasa sederhananya, Regular Expression adalah kumpulan huruf atau karakter
yang digunakan untuk pencocokan pola (pattern matching). Pola disini
contohnya ‘pola untuk kata yang diawali dengan huruf a dan diakhiri dengan
huruf j’, atau yang sedikit rumit seperti ‘pola untuk kata yang diawali
huruf a,b, c dengan panjang maksimal 5 huruf, mengandung minimal sebuah angka’.
Jika pada query SELECT..LIKE kita menggunakan pola
‘s%’ sebagai kata kunci yang berarti ‘kata yang diawali dengan huruf s dan
memiliki banyak huruf 1 atau lebih’ dalam regular expression, penulisannya
menjadi ‘^S.*’. Terlihat sedikit rumit, namun mari kita pelajari aturan penulisan
RegExp:
- “. “ : tanda titik dalam RegExp berarti sebuah karakter apa saja
- “[ ... ]” : tanda kurung siku ini berarti kumpulan karakter. Misalkan [abc] akan cocok dengan ‘a’, ‘b’, atau ‘c’. kita bisa juga menggunakan jangkauan (range), contohnya [a-z] akan cocok dengan seluruh huruf, [0-9] akan cocok dengan seluruh angka.
- “*” : tanda bintang ini akan cocok dengan 0 atau lebih karakter sebelumnya. Misalkan ‘a*’ berarti akan cocok dengan seluruh kata yang mengandung 0 atau lebih a.
- “^” : tanda pangkat atau topi ini menandakan berada di awal kata.
- “$” : tanda dollar ini berarti bahwa pola berada di akhir kata.
Berikut query nya:
SELECT [nama_kolom_tampil] FROM [nama_tabel] WHERE
[nama_kolom_cari] REGEXP [keyword_reguler_expresion];
Keterangan:
-
nama_kolom_tampil adalah nama dari kolom yang akan
kita tampilkan, bisa - - semua kolom dalam tabel, atau hanya kolom tertentu
saja.
-
nama_tabel adalah nama tabel dimana nama_kolom_tampil
berada.
-
nama_kolom_cari adalah kolom yang akan kita gunakan
untuk pencarian.
-
keyword_regular_expression adalah kata kunci dalam
bentuk regular expression yang digunakan untuk pencarian.
Hasil
Praktikum
Persiapan praktek : Gunakan tabel
mahasiswa dan fakultas pada pertemuan 3. Tambahkan kolom gender di tabel
mahasiswa kemudian update data mahasiswa. Insert data mahasiswa hingga 7 baris.
terlebih dahulu kita mngupdate isi tabel mahasiswa seperti query diatas,
lalu menginsertkan nama-nama mahasiswa baru agar jumlah baris menjadi menjadi
7 baris
jangan lupa untuk menambahkan kolom gender ya pada tabel mahasiswa.
1. Berdasarkan
tabel sebelumnya yaitu bab 3, tampilkan data mahasiswa dengan nama dari
kolomnya berubah menjadi nomor_identitas, nama, alamat,nama_fakultas tanpa
harus merubah nama kolom secara permanen.
2. Tampilkan
nama mahasiswa fakultas saintek yang berjenis kelamin laki-laki. Kemudian nama
mahasiswa fakultas saintek atau berjenis kelamin laki-laki
dan untuk query menampilkan mahasiswa fakultas saintek atau yang berjenis kelamin laki-laki adalah sebagai berikut
3. Suatu
tabel mahasiswa terdapat 7 baris data mahasiswa. Tampilkan data mahasiswa dari
nomor 3 sampai dengan 5, kemudian tampilkan juga data mahasiswa yang bukan dari
nomor 3 sampai dengan 5 menggunakan between dan tanpa menggunakan between.
sedangkan untuk menampilkan data mahasiswa yang bukan dari nomor 3 sampai dengan 5 adalah sebagai berikut.
4. Tampilkan
mahasiswa dengan nomor 2,3,5 menggunakan operator IN.
5. Tampilkan
semua data mahasiswa yang namanya mempunyai awalan huruf “a”.
6. Tampilkan
semua data mahasiswa yang namanya mempunyai akhiran “a” dan huruf ke-3 dari
nama tersebut terdapat huruf “n”.
7. Tampilkan
nomor fakultas di tabel mahasiswa dengan nomor harus tidak ada yang sama dari
baris pertama sampai akhir.
8. Tampilkan
data mahasiswa 3 baris saja.
9. Tampilkan
data mahasiswa dengan ciri-ciri memiliki nama awalan a kemudian kata
selanjutnya boleh r atau boleh t atau boleh d. misalkan yang memenuhi kriteria
ciri tersebut seperti adi, atik, arif, adam dll. *Boleh dengan awalan dan ciri yang lain namun
karakteristiknya harus sesuai soal
10. Buatlah
tabel dengan nama organ_dalam dan organ_luar sebagai berikut :
a. Tabel
organ_dalam
berikut query nya,,
lalu menginsertkan data seperti query diatas ,, langsung di cek ya
a. Tabel
organ_luar
berikut query nya
- UNION antara tabel organ luar dan organ dalam
- Intersect
Perbandingan query pada DBMS
PostgreSQL dan MySQL
hampi semua query yang ada di postgreSQL dan MySQL sama kecuali beberapa erbedaan pada tabel dibawah ini.
kekurangan serta kelebihan dari MySQL dan PostgreSQL adalah pada query-query yang ada pada mysql lebih sederhana dengan bahasa yang umum, misal operator in dan not in..
sedangkan pada PostgreSQL bahasa yang digunakan adalah bahasa bahasa yang dipakai dalam matematika seperti intersect dan except.
sedangkan pada PostgreSQL bahasa yang digunakan adalah bahasa bahasa yang dipakai dalam matematika seperti intersect dan except.
Kesimpulan
- AS biasa digunakan untuk menampilkan label kolom dengan nama lain sehingga yang akan muncul dalam hasil query bukan nama asli kolom.
- AND dan OR adalah anak kalimat where yang lebih kompleks dan bekerja dengan baik.
- BETWEEN digunakan untuk menentukan lebar nilai dari nilai terendah sampai yang paling tinggi.
- Operator IN berguna untuk melakukan pencocokan dengan salah satu yang ada pada suatu daftar yang memiliki value atau nilai.
- LIKE digunakan ketika ingin mencari sebuah data yang hanya diwakili oleh salah satu atau lebih huruf saja.
- Regular Expression atau REGEXP, merupakan sebuah teknik atau cara untuk mencari persamaan-persamaan string atau data dan memanipulasinya.
- DISTINCT diperlukan untuk mengembalikan hasil dari sebuah query dengan tidak terdapat duplikasi.
- LIMIT adalah untuk menentukan jumlah baris yang akan ditampilkan yang dihitung dari baris pertama, sedangkan OFFSET digunakan untuk menghilangkan baris sesuai dengan jumlah yang diberikan pada offset.
- UNION digunakan untuk menggabungkan hasil dua buah query menjadi satu kolom.
- EXCEPT digunakan untuk menampilkan hanya query pertama saja, sedangkan hasil query pertama saja, sedangkan hasil query kedua dan yang sama dengan hasil query kedua tidak akan ditampilkan.
- INTERSECT hanya akan menampilkan seluruh isi dari data yang memiliki kesamaan diantara hasil kedua query tersebut.
semoga postingan ini dapat menjadi referensi dan menambah pengetahuan bagi pembaca.
untuk postingan yang masih salah, penulis meminta maaf yang sebesar-sebesarnya.. tapi kalau udah bener.. dipakai juga monggo.. hehe
Daftar pustaka:
Nugroho, Bunafit. 2005. Administrasi Database MySQL. Yogyakarta:Graha Ilmu
http://www.academia.edu/4266547/56938961_Modul_SQL_Tingkat_Dasar
Komentar
Posting Komentar