SELECT SQL Adalah: Cara Membaca Data dari Database (Panduan Pemula)
SELECT SQL adalah perintah untuk membaca data dari tabel database. Pelajari cara memilih kolom, memakai FROM & WHERE, SELECT * vs kolom tertentu, plus ORDER BY & LIMIT.
Pembuat Hyper Sheets & BelajarWeb.dev
SELECT adalah perintah SQL untuk membaca (mengambil) data dari satu atau beberapa tabel di database. Hampir semua interaksi dengan database dimulai dari sini: menampilkan daftar pengguna, mencari produk, menghitung penjualan, semuanya diawali dengan SELECT. Kalau SQL itu bahasa untuk “ngobrol” dengan database, maka SELECT adalah cara kamu bertanya “tolong tunjukkan data ini”, dan database menjawab dengan sebuah tabel hasil.
Kalau kamu baru pertama kali menyentuh database dan bingung dari mana harus mulai, artikel ini titik awalnya. Kita bahas berurutan: bentuk dasar SELECT ... FROM, cara memilih kolom tertentu, SELECT * dan kapan sebaiknya dihindari, menyaring baris dengan WHERE, sampai mengurutkan hasil dengan ORDER BY dan membatasinya dengan LIMIT. Semua contoh memakai satu tabel kecil users supaya gampang diikuti, tinggal bayangkan (atau jalankan) di MySQL, PostgreSQL, atau SQLite.
SELECT SQL Adalah… (Bentuk Dasar SELECT dan FROM)
Bentuk paling dasar sebuah query adalah SELECT <kolom> FROM <tabel>, kamu menyebut kolom apa yang ingin dilihat, lalu dari tabel mana. Dua kata kunci ini pasangan yang tak terpisahkan: SELECT menentukan apa yang ditampilkan, FROM menentukan dari mana datanya diambil. Sintaks dasarnya begini:
SELECT nama, umur
FROM users;
Query di atas dibaca seperti kalimat biasa: “ambil kolom nama dan umur dari tabel users”. Hasilnya adalah tabel baru berisi dua kolom itu untuk semua baris yang ada. Titik koma (;) di akhir menandai akhir sebuah statement, di banyak tool ia wajib, di sebagian lain opsional, tapi biasakan menulisnya.
Sekarang tambahkan satu kata kunci lagi, WHERE untuk menyaring baris, dan kamu sudah punya query yang mengerjakan tiga hal sekaligus. Diagram di bawah memetakan setiap klausa ke apa yang dikerjakannya pada tabel users:
- SELECTmemilih kolom yang mau ditampilkan (
nama,umur) - FROMmemilih tabel sumber data (
users) - WHEREmenyaring baris sesuai kondisi (
umur > 20)
users| nama | umur | kota |
|---|---|---|
| Andi | 24 | Bandung |
| Budi | 19 | Jakarta |
| Citra | 31 | Surabaya |
| Dewi | 18 | Medan |
Perhatikan pembagian tugasnya: SELECT memilih kolom (arah vertikal, kolom nama dan umur menyala, kota diabaikan), FROM menunjuk tabel sumbernya, dan WHERE menyaring baris (arah horizontal, hanya baris yang umur-nya di atas 20 yang lolos). Begitu kamu paham tiga sumbu ini, sebagian besar query SELECT yang akan kamu tulis cuma variasi dari pola yang sama.
Memilih Kolom Tertentu
Untuk memilih kolom tertentu, tulis nama-nama kolomnya setelah SELECT, dipisah koma, sesuai urutan yang kamu inginkan di hasil. Urutan penulisan kolom di query menentukan urutan kolom di tabel hasil, jadi SELECT umur, nama dan SELECT nama, umur menghasilkan kolom yang sama tapi susunannya bertukar.
-- Cuma butuh nama dan kota, umur tidak usah
SELECT nama, kota
FROM users;
Kamu juga bisa mengganti nama kolom di hasil pakai AS (disebut alias), berguna kalau nama aslinya kurang jelas atau kamu ingin label yang lebih rapi:
SELECT nama AS nama_lengkap, kota AS asal
FROM users;
Kolom hasil sekarang berlabel nama_lengkap dan asal, walaupun di tabel aslinya tetap bernama nama dan kota. Alias tidak mengubah data, cuma label tampilannya.
SELECT * vs Kolom Tertentu: Kapan Pakai yang Mana
Tanda bintang (SELECT *) berarti “ambil semua kolom”. Praktis untuk eksplorasi cepat, kamu belum tahu isi tabelnya, jadi ingin lihat semuanya sekaligus:
-- Tampilkan SEMUA kolom dari users
SELECT *
FROM users;
Masalahnya muncul ketika SELECT * dipakai di kode aplikasi yang jalan berulang-ulang. Ia mengambil kolom yang tidak kamu butuhkan (boros), dan hasilnya ikut berubah diam-diam setiap kali ada kolom baru ditambahkan ke tabel, yang bisa merusak kode yang mengandalkan urutan atau jumlah kolom tertentu. Ini perbandingannya:
| Aspek | SELECT * |
SELECT kolom tertentu |
|---|---|---|
| Kapan dipakai | Eksplorasi cepat, cek isi tabel | Kode aplikasi & query produksi |
| Performa | Lebih boros (baca & kirim semua kolom) | Lebih hemat (hanya kolom yang dibutuhkan) |
| Kejelasan | Samar, pembaca tak tahu kolom apa yang dipakai | Jelas, niat query terbaca dari daftar kolom |
| Tahan perubahan skema | Rapuh, hasil berubah kalau kolom ditambah/diubah | Stabil, hanya kolom yang disebut yang terpengaruh |
Menyaring Baris dengan WHERE
WHERE menyaring baris: hanya baris yang memenuhi kondisi yang ikut ke hasil. Kalau SELECT memilih kolom (vertikal), WHERE memilih baris (horizontal). Contoh, hanya pengguna yang umurnya di atas 20:
SELECT nama, umur
FROM users
WHERE umur > 20;
Kondisi di WHERE bisa memakai operator perbandingan biasa: = (sama dengan), > < >= <=, dan <> atau != (tidak sama dengan). Untuk teks, bungkus nilainya dengan tanda kutip tunggal:
SELECT nama, kota
FROM users
WHERE kota = 'Bandung';
Beberapa kondisi bisa digabung dengan AND (dua-duanya harus benar) dan OR (salah satu benar), misalnya WHERE umur > 20 AND kota = 'Bandung'. WHERE adalah topik yang cukup luas sendiri, operator seperti LIKE (pencocokan pola teks), IN (cocok dengan salah satu dari daftar), dan BETWEEN (rentang nilai) semuanya hidup di sini, dan masing-masing punya trik tersendiri.
Mengurutkan dan Membatasi: ORDER BY & LIMIT
Setelah bisa memilih kolom dan menyaring baris, dua kata kunci terakhir melengkapi query dasar. ORDER BY mengurutkan hasil, dan LIMIT membatasi berapa baris yang ditampilkan.
ORDER BY mengurutkan berdasarkan satu kolom atau lebih, menaik (ASC, default) atau menurun (DESC):
-- Urutkan dari yang paling tua
SELECT nama, umur
FROM users
ORDER BY umur DESC;
LIMIT memotong hasil hanya sejumlah baris teratas, sering dipasangkan dengan ORDER BY untuk menjawab pertanyaan seperti “3 pengguna termuda”:
SELECT nama, umur
FROM users
ORDER BY umur ASC
LIMIT 3;
Catatan kecil soal LIMIT: MySQL, PostgreSQL, dan SQLite memakai LIMIT, tapi SQL Server memakai TOP dan Oracle (versi lama) memakai ROWNUM. Untuk belajar, ketiga database pertama itu paling ramah pemula.
Apa yang dihasilkan query: SELECT nama FROM users; ?
FAQ Seputar SELECT SQL
SELECT SQL adalah apa?
SELECT adalah perintah SQL untuk membaca data dari tabel database. Kamu menyebut kolom yang ingin ditampilkan setelah SELECT, lalu tabel sumbernya setelah FROM. Hasilnya berupa tabel baru berisi data yang diminta. SELECT adalah perintah SQL yang paling sering dipakai karena hampir semua pekerjaan dengan database dimulai dari membaca data.
Apa beda SELECT * dan SELECT nama_kolom?
SELECT * mengambil semua kolom di tabel, sedangkan SELECT nama_kolom hanya mengambil kolom yang kamu sebut. SELECT * praktis untuk eksplorasi cepat, tapi di kode aplikasi sebaiknya sebutkan kolomnya satu per satu, lebih hemat, lebih jelas maksudnya, dan tidak rusak diam-diam kalau struktur tabel berubah.
Apa fungsi WHERE di SELECT?
WHERE menyaring baris: hanya baris yang memenuhi kondisi yang ikut ke hasil. Misalnya WHERE umur > 20 hanya menampilkan baris yang nilai umur-nya lebih dari 20. Kalau SELECT menentukan kolom (vertikal), WHERE menentukan baris (horizontal).
Apakah SELECT harus ditulis huruf kapital?
Tidak wajib. Kata kunci SQL seperti SELECT, FROM, dan WHERE bersifat case-insensitive, select dan SELECT sama saja. Menulisnya kapital hanyalah konvensi supaya kata kunci menonjol dari nama tabel dan kolom, bukan aturan yang dipaksakan database.
Langkah Selanjutnya
Kamu sekarang sudah pegang fondasi membaca data: SELECT untuk memilih kolom, FROM untuk menunjuk tabel, WHERE untuk menyaring baris, plus ORDER BY dan LIMIT untuk merapikan hasil. Ini adalah pola yang akan kamu pakai di hampir setiap query SQL, semakin dini melekat, semakin mudah topik-topik lanjutan seperti JOIN dan agregasi nantinya.
Seperti biasa, yang membedakan paham dan bisa adalah latihan langsung. Mulai dari lesson membaca data dengan SELECT di Hyper Sheets yang latihannya langsung dinilai di browser, kamu menulis query sungguhan dan melihat hasilnya seketika, tanpa perlu menginstal database apa pun. Selamat ngoding!