Dasar Teori
AS
AS biasa digunakan untuk menampilkan label kolom dengan nama lain sehingga yang akan muncul dalam hasil query bukan nama asli kolom, tetapi nama yang mungkin lebih sesuai dan mudah dimengerti. AS digunakan setelah nama kolom yang akan diganti yang kemudian diikuti dengan nama penggantinya. Berikut struktur querynya :
select namakolom as namakolompengganti from namatabel;
AND dan OR
Pada bagian sebelumnya kita menggunakan anak kalimat atau sintaks WHERE hanya pada konteks yang sederhana. Berikut ini kita akan mencoba menggunakan WHERE untuk konteks yang lebih kompleks lagi, anak kalimat where yang kompleks akan bekerja dengan baik dengan menggunakan kata AND dan OR. SQL menggunakan standar logika boolean three-valued seperti pada tabel berikut ;
Berikut struktur querynya :
select * from namatabel where namakolom = ‘pencarian 1’ and namakolom = ‘pencarian 2’;
Atau
select * from namatabel where namakolom = ‘pencarian 1’ or namakolom = ‘pencarian 2’;
BETWEEN
BETWEEN digunakan untuk menentukan lebar nilai dari nilai terendah dan nilai tertinggi.
Berikut struktur querynya :
select * from nama_tabel where nama_kolom between ‘nilai_awal’ and ‘nilai_akhir’;
IN dan NOT IN
Operator IN berguna melakukan pencocokan dengan salah satu yang ada pada suatu daftar nilai.
Berikut struktur querynya :
Select * from nama_tabel where nama_kolom in (kata_kunci1, kata_kunci2, kata_kunci13, kata_kunci14);
LIKE
LIKE digunakan ketika kita ingin mencari sebuah data yang hanya diwakili oleh salah satu atau lebih hurufnya saja. Misalkan kita ingin mencari nama yang huruf awalnya R, maka kita harus menggunakan LIKE. Berikut adalah contoh kasus penggunaan LIKE :
Kasus Operator
Diawali dengan huruf A LIKE "A%"
Diakhiri dengan huruf A LIKE “%D"
Huruf A pada posisi ke dua LIKE “_A%"
Diawali dengan huruf A dan mengandung huruf I LIKE „A%I%"
Tidak diawali dengan huruf A NOT LIKE „A%"
Berikut struktur querynya :
select * from nama_tabel where nama_kolom like ‘operator’;
REGEXP
Regular Expression atau Regex, merupakan sebuah teknik atau cara untuk mencari persamaan-persamaan string atau data dan memanipulasinya. Biasanya lebih sering digunakan untuk string. Didalam PostgreSQL disimbolkan dengan “~”.
Berikut struktur querynya :
select * from nama_tabel where nama_kolom ~ ‘operator_regexp dan patern’;
DISTINCT
DISTINCT sering kali diperlukan untuk mengembalikan hasil dari sebuah query dengan tidak terdapat duplikasi, artinya pada hasil outputnya tidak terjadi kesamaan data meskipun pada data sesungguhnya sangat mungkin banyak duplikasi. . Hal ini juga berlaku jika data yang ada dalam bentuk angka.
Berikut struktur querynya :
select distinct nama_kolom from nama_tabel;
LIMIT
LIMIT dan OFFSET digunakan untuk membatasi jumlah output dari query berdasarkan jumlah row bukan karena kondisi seperti WHERE. Bisa dikatakan 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 O FFSET. Berikut struktur perintah dasar SQL :
select * from nama_tabel limit 2;
Atau
select * from nama_tabel offset 2;
UNION, 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 querynya :
select nama_kolom from nama_tabel union select nama_kolom from nama_tabel;
atau
select nama_kolom from nama_tabel union all select nama_kolom 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 querynya :
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 querynya :
select nama_kolom from nama_tabel except select nama_kolom from nama_tabel;
Hasil Praktikum
Setelah kita baca sejenak tentang hasil praktikumnya, kita coba langsung eksekusi ya gan :D
Oh iya gan, untuk langkah pertama agar mempermudah, kita tambah dulu ya data di tabel fakultas yang sudah kita buat dulu
Posgre
MySQL
Pertama, kita akan menampilkan data mahasiswa dengan nama kolom yang berbeda dengan nama kolom yang ada di tabel, dengan rincian sebagai berikut nomor_identitas, nama, alamat, nama_fakultas
Postgre
MySQL
Sekarang kita akan menampilkan nama mahasiswa saintek yang berjenis kelamin laki-laki, kemudian mahasiswa saintek atau mahasiswa (saintek atau non saintek) yang berjenis kelamin laki-laki
PostgreSekarang yang saintek atau laki-laki
Postgre
MySQL
Oke gan, untuk percobaan yang sekarang kita siapkan dulu ya data mahasiswa nya menjadi 7
Postgre
MySQL
Kemudian kita akan menampilkan data mahasiswa dari nomor 3 sampai 5, kemudian yang bukan nomor 3 sampai 5. Untuk kali ini kita coba pakai between dan pakai yang bukan between ya (operator). Ini query + hasilnya gan :D
Postgre
MySQL
Ini yang pakai operator (bukan between)
Postgre
MySQL
Kita coba pakai query IN untuk menampilkan mahasiswa dengan nomor 2 - 5 gan
Postgre
MySQL
Diatas kan kita sudah belajar tentang LIKE, yuk kita coba eksekusi SQL nya :v
Pertama, kita coba tampilkan mahasiswa yang mempunyai nama depan "a" dan yang kedua mahasiswa yang namanya mempunyai akhiran a dan huruf ketiga dari nama tersebut terdapat huruf "n"
Potgre
Setelah kita berkutat dengan nama-nama, kita coba sekarang menampilkan nomor fakultas di tabel mahasiswa dengan nomor tidak ada yang duplikat, dengan menggunakan DISTINCT
PostgreSekarang, kita coba tampilkan data mahasiswa 3 baris aja gan :D
Postgre
MySQL
Kita balik lagi utek-utek nama yuk, hehehe...
Sekarang kita akan coba menamplikan data mahasiswa yang memiliki ciri-ciri :
-awalan a
-setelah huruf a, harus r, t, atau n
untuk eksekusi kali ini, terdapat perbedaan query gan antara Postgre dan MySQL, yuk tengok ke atas tentang REGEXP, kalau Postgre kita pakai simbol "~" sedangkan kalau MySQL, kita pakai tulisan biasa "regexp". Cekidot gan :D
Postgre
Untuk yang terakhir dipertemuan kali ini, kita coba buat dua tabel baru, organ_dalam dan organ_luar, berikut bersama isi-isinya :D
Postgre
MySQL
Berikutnya kita coba query-query UNION, INTERSECT, dan EXCEPT. Untuk Postgre kita pakai seperti contoh query diatas, sedangkan untuk MySQL, saat ingin menjalankan INTERSECT kita ganti dengan IN, dan untuk EXCEPT kita ganti dengan NOT IN. Bingung yan gan, hehehe...cekidot aja ya gan, biar pada ngerti
Postgre
MySQL
Uda selesai untuk pertemuan kali ini gan, cukup mudah untuk diterapkan kan? hehehe.. Dari praktikum yang telah kita lakukan, berikut ini evaluasi untuk pertemuan kali ini
Evaluasi :
Pada Postgre perintah regexp menggunakan symbol "~", pada MySQL symbol regexp diganti dengan tulisan biasa "regexp"- select*from mahasiswa where nama_kolom regexp'a[rtn]';
Pada Postgre perintah intersect menggunakan query "intersect", pada MySQL kata intersect diganti dengan tulisan "in"
- select nama_kolom_kolom from nama_tabel_1 where nama_kolom in (select nama_kolom from nama_tabel_2);
Pada Postgre perintah except menggunakan query "except", pada MySQL kata intersect diganti dengan tulisan "not in"
- select nama_kolom_kolom from nama_tabel_1 where nama_kolom not in (select nama_kolom from nama_tabel_2);
0 komentar:
Posting Komentar