PENGENALAN OPERATOR DASAR SQL

Landasan Teori


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)

Ø + (penjumlahan), - (pengurangan)

Ø +, >, <, >=, <=, <>, !=, !>, !<

Ø ^ (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.
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 * 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) :
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.
-          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

selain dengan query diatas, bisa juga dengan query seperti dibawah ini,
 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


- Except


- 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.

Kesimpulan

  1. AS biasa digunakan untuk menampilkan label kolom dengan nama lain sehingga yang akan muncul dalam hasil query bukan nama asli kolom.
  2. AND dan OR adalah anak kalimat where yang lebih kompleks dan bekerja dengan baik.
  3. BETWEEN digunakan untuk menentukan lebar nilai dari nilai terendah sampai yang paling tinggi.
  4. Operator IN berguna untuk melakukan pencocokan dengan salah satu yang ada pada suatu daftar yang memiliki value atau nilai.
  5. LIKE digunakan ketika ingin mencari sebuah data yang hanya diwakili oleh salah satu atau lebih huruf saja.
  6. Regular Expression atau REGEXP, merupakan sebuah teknik atau cara untuk mencari persamaan-persamaan string atau data dan memanipulasinya.
  7. DISTINCT diperlukan untuk mengembalikan hasil dari sebuah query dengan tidak terdapat duplikasi.
  8. 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.
  9. UNION digunakan untuk menggabungkan hasil dua buah query menjadi satu kolom.
  10. 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.
  11. INTERSECT hanya akan menampilkan seluruh isi dari data yang memiliki kesamaan diantara hasil kedua query tersebut.
  Saran dan Manfaat
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