SELECT adalah cara membaca data dari tabel. Kamu menyebut kolom mana yang mau diambil dan dari tabel mana, lalu database menjawab dengan tabel hasil. Bayangin minta fotokopi ke petugas TU: "tolong fotokopikan kolom nama dan kota dari buku induk". Kamu dapat lembar baru berisi dua kolom itu untuk semua siswa, dan buku induknya sendiri gak berubah sama sekali.
🧪 Tebakan cepat:
SELECT name city FROM students;(koma di antaranamedancitylupa ditulis). Hasilnya apa? Tebak dulu, jawabannya ada di bagian "Alias dengan AS".
SELECT dan FROM
Tabel students sekarang berisi 5 siswa. Dewi, Rizky dan Maya dari pelajaran sebelumnya, ditambah Andi dan Budi:
SELECT * FROM students;
| id | name | grade | city |
|---|---|---|---|
| 1 | Dewi | 90 | Jakarta |
| 2 | Rizky | 85 | Bandung |
| 3 | Maya | 92 | Surabaya |
| 4 | Andi | 90 | Jakarta |
| 5 | Budi | 88 | Bandung |
Butuh nama dan kota saja? Sebut kolomnya, dipisah koma:
SELECT name, city FROM students;
| name | city |
|---|---|
| Dewi | Jakarta |
| Rizky | Bandung |
| Maya | Surabaya |
| Andi | Jakarta |
| Budi | Bandung |
SELECTdiikuti daftar kolom yang mau diambil, dipisah koma. Urutan kolom di hasil mengikuti urutan yang kamu tulis.*artinya semua kolom.FROM studentsmenyebut tabel sumbernya.- Barisnya tetap 5. SELECT memilih kolom; menyaring baris itu tugas
WHERE, di pelajaran Filter Data.
Alias dengan AS
AS memberi kolom hasil judul baru:
SELECT name AS nama, city AS kota FROM students;
| nama | kota |
|---|---|
| Dewi | Jakarta |
| Rizky | Bandung |
| Maya | Surabaya |
| Andi | Jakarta |
| Budi | Bandung |
name AS namaartinya "ambil kolomname, beri judulnamadi hasil".- Yang berubah cuma judul di hasil query ini. Di tabelnya, kolom itu tetap
name, jadiSELECT nama FROM students;dijawabno such column: nama. - Judul yang mengandung spasi ditulis dalam kutip:
name AS "nama siswa".
Kata AS sebenarnya boleh dihilangkan: name nama juga berarti alias. Itu sebabnya koma yang lupa ditulis gak bikin error. SELECT name city FROM students; dibaca "kolom name, dengan judul city". Hasilnya satu kolom berjudul city yang isinya nama-nama siswa. Itu jawaban tebakannya.
DISTINCT: buang baris kembar
SELECT city FROM students;
menghasilkan 5 baris: Jakarta, Bandung, Surabaya, Jakarta, Bandung. Pakai DISTINCT untuk membuang yang kembar:
SELECT DISTINCT city FROM students;
| city |
|---|
| Jakarta |
| Bandung |
| Surabaya |
5 baris jadi 3. DISTINCT ditulis tepat setelah SELECT dan berlaku untuk seluruh baris hasil, bukan satu kolom: SELECT DISTINCT name, city tetap 5 baris, karena gak ada dua siswa dengan nama dan kota yang sama.
⚠️ Jebakan yang sering ketemu
- Koma setelah kolom terakhir.
SELECT name, city, FROM students;dijawabnear "FROM": syntax error. - Lupa koma di antara kolom. Gak ada error, tapi kolom kedua jadi alias kolom pertama. Cek judul kolom di hasilnya.
- Memakai alias seperti nama kolom. Alias cuma ada di hasil query itu:
no such column: nama. SELECT *di kode aplikasi. Oke untuk mengintip isi tabel. Di aplikasi, sebut kolom yang dipakai, supaya kolom rahasia sepertipasswordgak ikut terambil.
TL;DR: SELECT kolom1, kolom2 FROM tabel; membaca kolom yang kamu sebut dari semua baris; * artinya semua kolom. AS memberi judul baru di hasil (name AS nama) tanpa mengubah tabelnya, dan tanpa koma, kata berikutnya juga dibaca sebagai alias. DISTINCT membuang baris hasil yang persis sama: SELECT DISTINCT city memberi 3 kota dari 5 siswa.