Saat Anda ingin mengambil data dari database, Anda meminta data dengan menggunakan Bahasa Permintaan Terstruktur, atau SQL. SQL adalah bahasa komputer yang sangat mirip dengan bahasa Inggris, tetapi program database tersebut memahaminya. Setiap kueri yang Anda jalankan menggunakan SQL di balik layar.
Memahami cara kerja SQL bisa membantu Anda membuat kueri yang lebih baik, dan bisa memudahkan Anda memahami cara memperbaiki kueri yang tidak mengembalikan hasil yang Anda inginkan.
Bagian ini termasuk dalam kumpulan artikel tentang Access SQL. Artikel ini menguraikan penggunaan dasar SQL untuk memilih data, dan menggunakan contoh untuk menggambarkan sintaks SQL.
Di artikel ini
Apa itu SQL?
SQL adalah bahasa komputer untuk bekerja dengan sekumpulan fakta dan hubungan di antaranya. Program database relasialis, seperti Microsoft Office Access, gunakan SQL untuk bekerja dengan data. Tidak seperti banyak bahasa komputer, SQL tidak sulit untuk dibaca dan dimengerti, bahkan untuk pemula. Seperti banyak bahasa komputer, SQL adalah standar internasional yang dikenali oleh badan standar seperti ISO dan ANSI.
Anda menggunakan SQL untuk menjelaskan kumpulan data yang bisa membantu Anda menjawab pertanyaan. Ketika menggunakan SQL, Anda harus menggunakan sintaks yang benar. Sintaks adalah kumpulan aturan di mana elemen bahasa digabungkan dengan benar. Sintaks SQL didasarkan pada sintaks bahasa Inggris, dan menggunakan banyak elemen yang sama seperti sintaks Visual Basic for Applications (VBA).
Misalnya, pernyataan SQL sederhana yang mengambil daftar nama belakang untuk kontak yang nama depannya adalah Mary mungkin menyerupai ini:
SELECT Last_Name
FROM Contacts WHERE First_Name = 'Mary';
Catatan: SQL tidak hanya digunakan untuk memanipulasi data, tetapi juga untuk membuat dan mengubah desain objek database, seperti tabel. Bagian dari SQL yang digunakan untuk membuat dan mengubah objek database disebut data-definition language (DDL). Topik ini tidak mencakup DDL. Untuk informasi selengkapnya, lihat artikel Membuat atau mengubah tabel atau indeks menggunakan kueri definisi data.
Pernyataan SELECT
Untuk menjelaskan sekumpulan data menggunakan SQL, tulis pernyataan SELECT. Pernyataan SELECT berisi deskripsi lengkap sekumpulan data yang ingin Anda peroleh dari database. Ini termasuk yang berikut ini:
-
Tabel apa yang berisi data.
-
Bagaimana data dari sumber yang berbeda terkait.
-
Bidang atau perhitungan mana yang akan menghasilkan data.
-
Kriteria yang harus cocok dengan data yang disertakan.
-
Apakah dan bagaimana mengurutkan hasil.
Klausul SQL
Seperti kalimat, pernyataan SQL memiliki klausul. Setiap klausul menjalankan fungsi untuk pernyataan SQL. Beberapa klausa diperlukan dalam pernyataan SELECT. Tabel berikut ini mencantumkan klausul SQL yang paling umum.
Klausul SQL |
Fungsinya |
Diperlukan |
SELECT |
Lists bidang yang berisi data yang diminati. |
Ya |
FROM |
Lists tabel yang berisi bidang yang tercantum dalam klausul SELECT. |
Ya |
WHERE |
Menentukan kriteria bidang yang harus dipenuhi oleh setiap rekaman untuk disertakan dalam hasil. |
Tidak |
PESAN BERDASARKAN |
Menentukan cara mengurutkan hasil. |
Tidak |
GROUP BY |
Dalam pernyataan SQL yang berisi fungsi agregat, cantumkan bidang yang tidak diringkas dalam klausul SELECT. |
Hanya jika ada bidang seperti itu |
HAVING |
Dalam pernyataan SQL yang berisi fungsi agregat, tentukan kondisi yang berlaku untuk bidang yang diringkas dalam pernyataan SELECT. |
Nomor |
Ketentuan SQL
Setiap klausul SQL terdiri dari istilah - sebanding dengan bagian ucapan. Tabel berikut ini mencantumkan tipe istilah SQL.
Istilah SQL |
Bagian ucapan yang sebanding |
Definisi |
Contoh |
Pengenal |
Kata benda |
Nama yang Anda gunakan untuk mengidentifikasi objek database, seperti nama bidang. |
Pelanggan. [Nomor Telepon] |
operator |
kata kerja atau kata keterangan |
Kata kunci yang mewakili tindakan atau mengubah tindakan. |
AS |
konstanta |
Kata benda |
Nilai yang tidak berubah, seperti angka atau NULL. |
42 |
ekspresi |
kata sifat |
Kombinasi pengidentifikasi, operator, konstanta, dan fungsi yang mengevaluasi ke satu nilai. |
>= Produk. [Harga Satuan] |
Klausul SQL dasar: SELECT, FROM, dan WHERE
Pernyataan SQL mengambil formulir umum:
SELECT field_1
FROM table_1 WHERE criterion_1 ;
Catatan:
-
Access mengabaikan hentian baris dalam pernyataan SQL. Namun, pertimbangkan menggunakan garis untuk setiap klausul untuk membantu meningkatkan keterbacaan pernyataan SQL Anda untuk diri Anda dan orang lain.
-
Setiap pernyataan SELECT diakhiri dengan titik koma (;). Titik koma dapat muncul di akhir klausul terakhir atau pada baris itu sendiri di akhir pernyataan SQL.
Contoh di Access
Berikut ini menggambarkan seperti apa pernyataan SQL untuk kueri pemilihan sederhana di Access:
1. Klausul SELECT
2. Klausul FROM
3. Klausul WHERE
Contoh ini pernyataan SQL berbunyi "Pilih data yang disimpan dalam bidang bernama Alamat Email dan Perusahaan dari tabel bernama Kontak, khususnya catatan di mana nilai bidang Kota adalah Seattle."
Mari kita lihat contohnya, satu klausa dalam satu waktu, untuk melihat cara kerja sintaks SQL.
Klausul SELECT
SELECT [E-mail Address], Company
Ini adalah klausul SELECT. Ini terdiri dari operator (SELECT) diikuti oleh dua pengidentifikasi ([Alamat Email] dan Perusahaan).
Jika pengidentifikasi berisi spasi atau karakter khusus (seperti "Alamat Email"), pengidentifikasi harus dimasukkan dalam tanda kurung siku.
Klausul SELECT tidak harus mengatakan tabel mana yang berisi bidang, dan tidak dapat menentukan kondisi apa pun yang harus dipenuhi oleh data yang akan disertakan.
Klausul SELECT selalu muncul di depan klausul FROM dalam pernyataan SELECT.
Klausul FROM
FROM Contacts
Ini adalah klausul FROM. Terdiri dari operator (FROM) diikuti dengan pengidentifikasi (Kontak).
Klausul FROM tidak mencantumkan bidang yang akan dipilih.
Klausul WHERE
WHERE City="Seattle"
Ini adalah klausul WHERE. Terdiri dari operator (WHERE) diikuti dengan ekspresi (City="Seattle").
Catatan: Tidak seperti klausul SELECT dan FROM, klausul WHERE bukanlah elemen pernyataan SELECT yang diperlukan.
Anda bisa menyelesaikan banyak tindakan yang SQL memungkinkan Anda untuk melakukan dengan menggunakan klausul SELECT, FROM, dan WHERE. Informasi selengkapnya tentang cara Anda menggunakan klausul ini disajikan dalam artikel tambahan ini:
Mengurutkan hasil: ORDER BY
Seperti Microsoft Excel, Access memungkinkan Anda mengurutkan hasil kueri dalam lembar data. Anda juga bisa menentukan dalam kueri bagaimana Anda ingin mengurutkan hasil saat kueri dijalankan, dengan menggunakan klausul ORDER BY. Jika Anda menggunakan klausul ORDER BY, klausul tersebut adalah klausul terakhir dalam pernyataan SQL.
Klausul ORDER BY berisi daftar bidang yang ingin Anda gunakan untuk pengurutan, dalam urutan yang sama dengan yang Anda inginkan untuk menerapkan operasi pengurutan.
Misalnya, anggaplah Anda ingin hasil Anda diurutkan terlebih dahulu menurut nilai bidang Perusahaan dalam urutan menurun, dan — jika ada catatan dengan nilai yang sama untuk Perusahaan — diurutkan berikutnya oleh nilai dalam bidang Alamat Email dalam urutan naik. Klausul ORDER BY Anda akan terlihat seperti berikut ini:
ORDER BY Company DESC, [E-mail Address]
Catatan: Secara default, Access mengurutkan nilai dalam urutan naik (A-Z, terkecil ke terbesar). Gunakan kata kunci DESC untuk mengurutkan nilai dalam urutan menurun.
Untuk informasi selengkapnya tentang klausul ORDER BY, lihat topik ORDER BY Clause.
Bekerja dengan data ringkasan: GROUP BY dan HAVING
Terkadang Anda ingin bekerja dengan data ringkasan, seperti total penjualan dalam sebulan, atau item paling mahal dalam inventarisasi. Untuk melakukannya, terapkan fungsi agregat ke bidang dalam klausul SELECT. Misalnya, jika Anda ingin kueri memperlihatkan jumlah alamat email yang tercantum untuk setiap perusahaan, klausul SELECT Anda mungkin terlihat seperti berikut ini:
SELECT COUNT([E-mail Address]), Company
Fungsi agregat yang bisa Anda gunakan bergantung pada tipe data yang ada di bidang atau ekspresi yang ingin Anda gunakan. Untuk informasi selengkapnya tentang fungsi agregat yang tersedia, lihat artikel Fungsi Agregat SQL.
Menentukan bidang yang tidak digunakan dalam fungsi agregat: Klausul GROUP BY
Ketika menggunakan fungsi agregat, Anda biasanya juga harus membuat klausul GROUP BY. Klausul GROUP BY mencantumkan semua bidang yang tidak Anda terapkan fungsi agregatnya. Jika Anda menerapkan fungsi agregat ke semua bidang dalam kueri, Anda tidak harus membuat klausul GROUP BY.
Klausul GROUP BY segera mengikuti klausul WHERE, atau klausul FROM jika tidak ada klausul WHERE. Klausul GROUP BY mencantumkan bidang saat muncul dalam klausul SELECT.
Misalnya, melanjutkan contoh sebelumnya, jika klausul SELECT Anda menerapkan fungsi agregat ke [Alamat Email] tetapi tidak ke Perusahaan, klausul GROUP BY Anda akan terlihat seperti berikut ini:
GROUP BY Company
Untuk informasi selengkapnya tentang klausul GROUP BY, lihat topik Klausul GROUP BY.
Membatasi nilai agregat dengan menggunakan kriteria grup: klausul HAVING
Jika Anda ingin menggunakan kriteria untuk membatasi hasil Anda, tapi bidang yang ingin Anda terapkan kriteria digunakan dalam fungsi agregat, Anda tidak bisa menggunakan klausul WHERE. Sebagai gantinya, Anda menggunakan klausul HAVING. Klausul HAVING berfungsi seperti klausul WHERE, tetapi digunakan untuk data agregat.
Misalnya, anggaplah Anda menggunakan fungsi AVG (yang menghitung nilai rata-rata) dengan bidang pertama dalam klausul SELECT Anda:
SELECT COUNT([E-mail Address]), Company
Jika Ingin kueri membatasi hasil berdasarkan nilai fungsi COUNT tersebut, Anda tidak dapat menggunakan kriteria untuk bidang tersebut dalam klausul WHERE. Sebagai gantinya, Anda meletakkan kriteria dalam klausul HAVING. Misalnya, jika Anda hanya ingin kueri mengembalikan baris jika ada lebih dari satu alamat email yang terkait dengan perusahaan, klausul HAVING mungkin terlihat seperti berikut ini:
HAVING COUNT([E-mail Address])>1
Catatan: Kueri bisa memiliki klausul WHERE dan klausul HAVING — kriteria untuk bidang yang tidak digunakan dalam fungsi agregat masuk ke klausul WHERE, dan kriteria untuk bidang yang digunakan dengan fungsi agregat masuk ke klausul HAVING.
Untuk informasi selengkapnya tentang klausul HAVING, lihat klausul HAVING topik.
Menggabungkan hasil kueri: UNION
Saat Anda ingin meninjau semua data yang dikembalikan oleh beberapa kueri pemilih serupa bersama-sama, sebagai kumpulan gabungan, Anda menggunakan operator UNION.
Operator UNION memungkinkan Anda menggabungkan dua pernyataan SELECT menjadi satu. Pernyataan SELECT yang Anda gabungkan harus memiliki jumlah bidang output yang sama, dalam urutan yang sama, dan dengan tipe data yang sama atau kompatibel. Saat Anda menjalankan kueri, data dari setiap kumpulan bidang terkait digabungkan menjadi satu bidang output, sehingga output kueri memiliki jumlah bidang yang sama seperti setiap pernyataan pemilihan.
Catatan: Untuk tujuan kueri gabungan, tipe data Angka dan Teks kompatibel.
Saat anda menggunakan operator UNION, Anda juga bisa menentukan apakah hasil kueri harus menyertakan baris duplikat, jika ada, dengan menggunakan kata kunci ALL.
Sintaks SQL dasar untuk kueri gabungan yang menggabungkan dua pernyataan SELECT adalah sebagai berikut:
SELECT field_1
FROM table_1 UNION [ALL] SELECT field_a FROM table_a ;
Misalnya, anggaplah Anda memiliki tabel bernama Produk dan tabel lain yang bernama Layanan. Kedua tabel memiliki bidang yang berisi nama produk atau layanan, ketersediaan harga, garansi atau jaminan, dan apakah Anda menawarkan produk atau layanan secara eksklusif. Meskipun tabel Produk menyimpan informasi garansi, dan tabel Layanan menyimpan informasi jaminan, informasi dasarnya sama (apakah produk atau layanan tertentu menyertakan janji kualitas). Anda bisa menggunakan kueri gabungan, seperti berikut ini, untuk menggabungkan empat bidang dari dua tabel:
SELECT name, price, warranty_available, exclusive_offer
FROM Products UNION ALL SELECT name, price, guarantee_available, exclusive_offer FROM Services ;
Untuk informasi selengkapnya tentang cara menggabungkan pernyataan SELECT dengan menggunakan operator UNION, lihat Menggabungkan hasil beberapa kueri pemilihan menggunakan kueri gabungan.