QUERY
Secara sederhana dapat dikata bahwa Query bertujuan untuk menyeleksi sejumlah data dari semua data yang ada pada suatu Database. Pemilihan atau penyeleksian data ini didasarkan pada kriteria tertentu. Kreteria tersebut bisa berupa, umur,alamat, besarnya gaji, golongan, jabatan, dsb.
Query merupakan suatu tabel virtual. Artinya data yang ada pada suatu query bisa diperlakukan sebagaimana data yang ada pada sebuah tabel, namun secara fisik data tersebut tidak tersimpan dalam suatu tabel tertentu
Query bisa berasal dari satu tabel, bisa juga berasal dari dua tabel bahkan lebih.
Query dari satu table
Secara sederhana sintak SQL atau query yang berasal dari satu table adalah :
Langkah –langkah menulis sintak SQL / Query pada Ms. Access adalah sebagai berikut :
1.Pilih Objek Queries kemudian tekan tombol New untuk membuat query baru
2.Akan muncul Show Table klik button Close3.Klik icon SQL dipojok kiri atas
4.Akan tampil window untuk mengetikkan sintak SQL / Query (windows SQL/QUERY), ketikkan sintak SQL disini. Selanjutnya klik View / DatabaseView dipojok kiri atas atau bias juga dengan Run Query tersebut. Selanjutnya Close Query.
Sintak yang ditulis pada Window Query adalah sebagai berikut :
Select * from jabatan
Tanda * berarti seluruh field yang ada pada table jabatan ditampilkan
5.Save dan berikan nama query tersebut Selanjutnya close Query
Soal
Tampilkan semua jabatan yang ada. Field yang ditampilkan adalah kd_jabatan, nama_jabatan, tj_jabatan.
Lakukan langkah pertama sampai langkah ketiga langkah yang telah dijelaskan diatas. Untuk langkah keempat (mengetikkan sintak SQL) seperti berikut :
Cara Pertama
SELECT jabatan.Kd_Jabatan, Jabatan.nm_jabatan, Jabatan.Tj_Jabatan
FROM jabatan;
Cara Kedua
SELECT Kd_Jabatan, nm_jabatan, Tj_Jabatan
FROM Jabatan;
Cara Ketiga
SELECT J.Kd_Jabatan, J.nm_jabatan, J.Tj_Jabatan
FROM Jabatan as J;
Keterangan :
Cara Pertama :
•SELECT diikuti NamaTabel.Namafield
•FROM diikuti NamaTabel
Cara Kedua
•SELECT diikuti Namafield
•FROM diikuti NamaTabel
Cara Ketiga
•SELECT diikuti Alias Tabel.Namafield
•FROM diikuti NamaTabel As Alias Tabel
Catatan :
Untuk menulis sintak SQL/Query yang berasal dari lebih dari satu table Anda tidak bisa menggunakan cara kedua karena data yang diambil pada cara kedua hanya membaca sintak untuk satu table dan nama table tidak diikut sertakan.
Soal :
Tampilkan nip, nama dan pendidikan pegawai
Jawab
Cara Pertama
SELECT Pegawai.nip, pegawai.nama, pegawai.pendidikan
FROM pegawai;
Cara Kedua
SELECT nip, nama, pendidikan
FROM Jabatan;
Cara Ketiga
SELECT P.nip, P.nama, P.pendidikan
FROM Pegawai as P;
Group By Aggregate Function
Pada kasus seleksi data sering kali diminta untuk menampilkan atau memilih sekumpulan data berdasarkan kelompok data tertentu. Untuk menyelesaikan permasalahan tersebut SQL menyediakan perintah group by. Pada pengelompokan data biasanya disertakan bersama Agregate Funtion. Dalam implementasinya Aggregate function harus di ikuti oleh group by bila terdapat field lain yang dijadikan sebagai criteria pengelompokan. Aggregate function yang dimaksud adalah fungsi matematik yaitu :
Min( ), max( ), avg( ), sum( ), dan Count( ).
•Min( )
Fungsi ini digunakan untuk mencari harga minimum dari sekumpulan data yang ada. Sintak SQL untuk fungsi ini adalah sebagai berikut :
Soal :
Tampilkan gaji pokok minimal tiap golongan. Field yang ditampilkan adalah golongan dan minimal gaji pokok
Jawab :
SELECT gol, min(gpo) As minimal_gaji_pokok
FROM g_pokok
GROUP BY gol;
•Max( )
Fungsi ini digunakan untuk mencari harga minimum dari sekumpulan data yang ada. Sintak SQL untuk fungsi ini adalah sebagai berikut :
Soal :
Tampilkan gaji pokok maximal tiap golongan. Field yang ditampilkan adalah golongan dan maximal gaji pokok
Jawab :
SELECT gol, max(gpo) As maximal_gaji_pokok
FROM g_pokok
GROUP BY gol;
•Avg( )
Fungsi ini digunakan untuk mencari harga minimum dari sekumpulan data yang ada. Sintak SQL untuk fungsi ini adalah sebagai berikut :
SELECT nama_field,…,nama_field-n, Avg(nama_field) As nama alias
FROM nama_tabel
GROUP BY nama_field group
Soal :
Tampilkan rata-rata gaji pokok tiap golongan. Field yang ditampilkan adalah golongan dan rata-rata gaji pokok
Jawab :
SELECT gol, Avg(gpo) As rata2_gaji_pokok
FROM g_pokok
GROUP BY gol;
•Sum( )
Fungsi ini digunakan untuk mencari harga minimum dari sekumpulan data yang ada. Sintak SQL untuk fungsi ini adalah sebagai berikut :
Soal :
Tampilkan total gaji pokok tiap golongan. Field yang ditampilkan adalah golongan dan total gaji pokok
Jawab :
SELECT gol, sum(gpo) As total_gaji_pokok
FROM g_pokok
GROUP BY gol;
•Count( )
Fungsi ini digunakan untuk mencari cacah atau banyaknya data dari sekumpulan data yang ada. Sintak SQL untuk fungsi ini adalah sebagai berikut :
Soal :
Tampilkan total gaji pokok tiap golongan. Field yang ditampilkan adalah golongan dan total gaji pokok
Jawab :
SELECT gol, Count(nip) As total_gaji_pokok
FROM g_pokok
GROUP BY gol;
Pengurutan Data (Order By)
Pencarian data akan lebih mudah apabila data yang ada atau yang tersedia telah diurut berdasarkan satu data tertentu, SQL menyediakan suatu sintak untuk keperluan ini yaitu order by. Artinya data diurutkan berdasarkan field tertentu. Sintak adalah sebagai berikut :
Soal :
Tampilkan jabatan dan sebasarnya tunjangan jabatan, tampilan diurutkan berdasarkan tunjangan jabatan (dari yang terendah ke yang tertinggi) Field yang akan ditampilkan adalah nama jabatan dan tunjangan jabatan.
Jawab :
SELECT nm_jabatan, tj_jabatan
FROM jabatan
ORDER BY tj_jabatan;
Catatan : Jika pengurutan dari yang tertinggi ke terendah
ORDER BY tj_jabatan DESC
Kriteria Data
Yang dimaksud dengan kriteria data adalah yang akan ditampilkan merupakan data yang memenuhi data kriteria yang ditentukan (kriteria yang ada).
Ada dua kategori dari kriteria, yaitu kriteria denganhaving dan criteria dengan where
Kriteria dengan having
Kriteria dengan having adalah criteria pemilihan atau seleksi data dengan menggunakan kata having dan dikuti dengan diikuti fungsi aggregate sintaknya adalah sebagai berikut :
Soal :
Tampilkan maksimum gaji pokok tiap golongan, golongan yang ditampilkan adalah golongan yang mempunyai maksimum gaji pokok lebih besar dari 1000000
Jawab :
SELECT gol As Golongan, max(gpo) maksimum_gaji_pokok
FROM g_pokok
ORDER BY gol
HAVING max(gpo) > 1000000 ;
Kriteria dengan where
Pada Kriteria dengan where pemilihan atau seleksi data dilakukan setelah kata where. Setelah where dikuti dengan comparison (=, <>, <,> >=, <=), between, in, like/not like • Comparison Comparison berfungsi untuk membandingkan dua nilai Tipe data yang harus dibandingkan harus sesuai. Hasil yang diperoleh operasi perbandingan atau comparison ini adalah berupa nilai logic SQL nya adalah : SELECT nama_field,…,nama_field-n FROM nama_tabel WHERE field pembanding Comparison nilai pembanding ; Soal : Tampilkan jabatan yang mempunyai tunjangan jabatan > 500000. Field yang ditampilkan adalah jabatan dan nama jabatan.
Jawab :
SELECT nm_jabatan, tj_jabatan
FROM jabatan
WHERE tj_jabatan > 500000;
• Between
Pada prinsipnya between digunakan untuk membandingkan atau untuk mengecek apakah suatu nilai berada dalam range atau selang nilai tertentu. Sintak SQLnya adalah :
Soal :
Tampilkan pegawai yang mempunyai jam lembur antara 20 dan 40. Field yang ditampilkan adalah nip dan jam lembur
Jawab :
SELECT nip, jam_lembur
FROM nama_tabel
WHERE jam_lembur BETWEEN 20 AND 40;
• In
In digunakan untuk melakukan pengecekan apakah suatu nilai terdapat pada suatu himpunan tertentu Sintak SQLnya adalah :
Soal :
Tampilkan data pegawai yang mempunyai gaji pokok 600000 dan 4000000. Field yang ditampilkan adalah kode jabatan, golongan dan gaji pokok, tampilan diurut berdasarkan gaji yang terbesar.
Jawab :
SELECT kd_jabatan, gol, gpo
FROM g_pokok
WHERE gpo IN (600000, 4000000)
ORDER BY gpo DESC;
• Like / Not Like
Like atau not like digunakan untuk membandingkan data dengan pola tertentu. Untuk membandingkan satu karakter digunakan karakter underscore(_), sedangkan untuk membandingkan string digunakan karakter bintang (*). Sintak SQL nya adalah :
Soal :
Tampilkan data pegawai yang mempunyai nama berawalan ‘Su’. Field yang ditampilkan adalah nama, alamat, kota
Jawab :
SELECT nama, alamat, kota
FROM pegawai
WHERE nama LIKE ‘Su*’;
Tidak ada komentar:
Posting Komentar