Soal 1Apa arti * di SELECT * FROM user;?
SELECT — Mengambil Data dari Tabel
Pelajari pernyataan SQL SELECT dari dasar. Mencakup pemilihan semua kolom dan kolom tertentu, alias AS, penyaringan baris dengan WHERE, serta kombinasi operator pembanding dengan AND / OR — semuanya berjalan langsung di browser kamu.
Tentang SQL yang dipelajari di kursus ini
Kursus ini mengajarkan sintaks SQL universal yang berjalan di RDBMS utama — MySQL, Oracle, PostgreSQL, SQL Server, dan lainnya. Dasar-dasar seperti CREATE TABLE / SELECT / WHERE / JOIN / GROUP BY ditulis dengan cara yang sama, tidak peduli database mana yang kamu pakai.
Karena alasan teknis, konsol di browser ini menjalankan SQLite, tapi setiap kali ada fitur yang berbeda antar database (penegakan panjang pada tipe, cara menampilkan daftar tabel, dll.), kamu akan menemukan catatan berdampingan seperti Di MySQL kamu akan menulis... supaya kamu tahu apa yang dipakai di tempat lain.
SELECT — ambil semua kolom
Untuk mengambil data dari tabel, kamu memakai pernyataan SELECT. SELECT adalah konstruksi yang paling banyak dipakai di SQL: pembuatan laporan, render layar, analisis data, batch processing — hampir semua operasi yang "membaca" data dimulai dengan SELECT.
Mari mulai dengan bentuk yang mengambil semua kolom dari tabel apa adanya. * (asterisk) di SELECT * adalah simbol untuk "semua kolom," dan FROM nama_tabel yang mengikutinya menentukan tabel mana yang diambil.
-- Ambil semua kolom dan semua baris dari tabel user
SELECT * FROM user;
Mengambil hanya kolom tertentu
SELECT * praktis, tapi di aplikasi sungguhan sering lebih baik mengambil hanya kolom yang kamu butuhkan. Volume data yang dikirim dan diterima berkurang, hanya kolom yang ingin kamu tampilkan yang kembali, dan pemrosesan setelahnya jadi lebih sederhana.
Untuk memilih kolom, daftar nama kolom yang dipisah koma tepat setelah SELECT. Urutan yang kamu tulis adalah urutan tampilannya di hasil.
-- Ambil hanya name dan age (2 kolom)
SELECT name, age FROM user;
-- Kamu juga bisa mengubah urutan kolom
SELECT city, name FROM user;
AS — memberi alias pada kolom
Secara default, header kolom di hasil SELECT menampilkan nama kolom asli. Dengan kolom AS alias kamu bisa mengubah nama kolom di sisi hasil menjadi apa pun yang kamu mau. Ini tidak mengubah nama kolom di tabel asli — itu hanyalah "apa yang harus kolom ini disebut di hasil SELECT ini."
Alias juga berguna saat kamu ingin memberi nama pada ekspresi. Aritmetika seperti age + 1 atau hasil fungsi agregat seperti SUM(price) tidak punya nama kolom default, jadi tanpa AS, header akan menjadi ekspresi mentahnya — tidak nyaman ditampilkan atau dipakai dari kode aplikasi kamu.
-- Beri alias pada kolom
SELECT name AS user_name, age AS user_age FROM user;
-- Beri alias pada ekspresi (menghitung umur tahun depan)
SELECT name, age + 1 AS next_year_age FROM user;
AS bisa dihilangkan
SELECT name AS user_name FROM user; dan SELECT name user_name FROM user; (dengan AS dihilangkan) artinya sama. Walau begitu, menulis AS membuat "ini sekarang alias" jelas bagi pembaca, jadi kursus ini selalu menulis AS secara eksplisit.
Kalau kamu butuh spasi atau karakter non-ASCII di alias, bungkus dengan tanda kutip ganda: AS "Umur Tahun Depan".
WHERE — menyaring baris berdasarkan kondisi
Sejauh ini kamu sudah belajar memilih kolom. Sekarang mari lihat menyaring baris. Dengan menambahkan WHERE kondisi setelah SELECT kolom FROM tabel, hanya baris yang memenuhi kondisi yang masuk ke hasil.
Membantu jika kamu menganggap SELECT memilih secara vertikal (kolom) dan WHERE memilih secara horizontal (baris).
Operator pembanding
Di dalam WHERE, kondisi memakai operator pembanding (simbol yang membandingkan nilai dan mengembalikan true/false). Operator pembanding SQL mirip dengan bahasa pemrograman lain, dengan satu catatan: kesetaraan ditulis dengan satu =, bukan ==.
| Operator | Arti | Contoh |
|---|---|---|
| = | Sama dengan | age = 30 |
| <> | Tidak sama dengan (!= juga bisa) | city <> 'Tokyo' |
| < | Lebih kecil dari | age < 30 |
| > | Lebih besar dari | age > 30 |
| <= | Lebih kecil atau sama dengan | age <= 30 |
| >= | Lebih besar atau sama dengan | age >= 30 |
-- Ambil pengguna berusia 30 ke atas
SELECT * FROM user WHERE age >= 30;
-- Ambil baris yang city-nya Tokyo (string ditulis dalam tanda kutip tunggal)
SELECT * FROM user WHERE city = 'Tokyo';
-- Ambil baris yang city-nya selain Tokyo
SELECT * FROM user WHERE city <> 'Tokyo';
Perbandingan string dengan `=` sensitif huruf besar/kecil
Di konsol kursus ini, perbandingan string dengan `=` sensitif huruf besar/kecil. WHERE name = 'alice' tidak akan cocok dengan 'Alice' — hasilnya 0 baris. Di MySQL, collation sering membuat perbandingan ini tidak sensitif huruf besar/kecil secara default, jadi query yang sama bisa mengembalikan 1 baris.
`WHERE kolom = NULL` tidak bekerja seperti yang kamu harapkan
Menulis WHERE name = NULL tidak akan mengambil "baris yang name-nya NULL." Di SQL, NULL diperlakukan sebagai "tidak diketahui," dan = NULL selalu mengevaluasi menjadi NULL — yang disaring keluar oleh WHERE. Untuk mengambil baris NULL, pakai WHERE kolom IS NULL yang khusus. Kita membahas ini secara rinci di artikel WHERE lanjutan — untuk sekarang, ingat saja "jangan pakai = NULL."
AND / OR — menggabungkan banyak kondisi
Dalam pekerjaan sungguhan kamu sering perlu menggabungkan kondisi: "pengguna di Tokyo berusia 30 ke atas," "anggota dengan rank gold atau platinum." SQL menggabungkan kondisi dengan AND (keduanya benar) dan OR (salah satu benar).
Satu operator lain yang berguna adalah NOT (negasi kondisi). NOT (city = 'Tokyo') artinya "bukan Tokyo." <> melakukan tugas yang sama, jadi untuk sekarang fokus saja pada AND dan OR.
| Operator logika | Arti | Contoh |
|---|---|---|
| AND | Kedua kondisi benar | age >= 30 AND city = 'Tokyo' |
| OR | Salah satu kondisi benar | city = 'Tokyo' OR city = 'Osaka' |
| NOT | Negasi kondisi | NOT (city = 'Tokyo') |
-- Pengguna di Tokyo berusia 30 ke atas
SELECT name, age, city FROM user WHERE city = 'Tokyo' AND age >= 30;
-- Pengguna di Tokyo atau Osaka
SELECT name, city FROM user WHERE city = 'Tokyo' OR city = 'Osaka';
Pakai tanda kurung saat mencampur AND dan OR
Saat AND dan OR muncul di WHERE yang sama, AND dievaluasi sebelum OR. A OR B AND C sebenarnya berarti A OR (B AND C) — bukan urutan yang kamu tulis.
Untuk menghindari kejutan, buat urutan evaluasi eksplisit dengan tanda kurung saat mencampur AND dan OR. Misalnya, "(Tokyo atau Osaka) dan 30 ke atas" adalah WHERE (city = 'Tokyo' OR city = 'Osaka') AND age >= 30. Tanda kurung juga membuat maksudmu jelas bagi pembaca — kalau ragu, tambahkan saja.
Cek Pemahaman
Jawab setiap pertanyaan satu per satu.
Soal 2Mana yang paling tepat menggambarkan peran SELECT dan WHERE?
Soal 3Apa arti operator pembanding SQL <>?