SELECT mengambil data daripada satu atau lebih jadual — ia ialah penyataan SQL yang paling kerap digunakan. Anda menentukan lajur mana yang anda mahu dan daripada jadual mana, secara pilihan menapis, mengisih, dan mengehadkan keputusan.
SELECT asas
SELECT name, email -- specific columns
FROM users;
SELECT * -- ALL columns (convenient, but avoid in production code)
FROM users;
SELECT name AS full_name -- AS gives a column an alias (renamed in the output)
FROM users;
Anda menyenaraikan lajur untuk dikembalikan selepas SELECT (atau * untuk semua), dan jadual selepas FROM. Alias (AS) menamakan semula lajur dalam keputusan.
Elakkan SELECT * dalam kod aplikasi
-- ❌ SELECT * fetches every column — wasteful, fragile (breaks if columns change)
SELECT * FROM users;
-- ✅ select only what you need — less data transferred, clearer intent, more stable
SELECT id, name, email FROM users;
Walaupun SELECT * mudah untuk penerokaan, dalam kod sebenar anda patut memilih hanya lajur yang anda perlukan — ia memindahkan kurang data, menjadikan niat jelas, dan tidak akan rosak jika lajur jadual berubah.
Lajur dan ungkapan terkira
SELECT
name,
price * quantity AS total, -- a calculated column
UPPER(name) AS name_upper, -- a function applied to a column
price * 1.1 AS price_with_tax
FROM orders;
SELECT boleh memasukkan ungkapan dan fungsi, bukan sekadar lajur biasa.
Susunan logik sesuatu pertanyaan
SELECT name -- 5. select columns (runs near-last logically)
FROM users -- 1. from the table
WHERE active = true -- 2. filter rows
GROUP BY country -- 3. group
HAVING COUNT(*) > 5 -- 4. filter groups
ORDER BY name -- 6. sort
LIMIT 10; -- 7. limit
LOGICAL execution order (NOT the written order):
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT
→ This is why you can't use a SELECT alias in WHERE (WHERE runs before SELECT).
Mengapa ia penting
SELECT ialah asas membuat pertanyaan data — penyataan SQL yang paling kerap digunakan, pusat kepada membaca daripada mana-mana pangkalan data hubungan, jadi menguasainya adalah pengetahuan harian yang penting.
Memahami cara menentukan lajur, menggunakan alias, dan memasukkan ungkapan terkira meliputi asas mengambil dan membentuk data.
Amalan penting ialah mengelakkan SELECT * dalam kod aplikasi (memilih hanya lajur yang diperlukan memindahkan kurang data, lebih jelas, dan lebih teguh terhadap perubahan skema — amalan terbaik yang biasa).
Yang sangat berharga ialah memahami susunan pelaksanaan logik sesuatu pertanyaan (FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT), yang berbeza daripada susunan tertulis dan menerangkan kelakuan sebenar — seperti mengapa anda tidak boleh merujuk alias SELECT dalam klausa WHERE (kerana WHERE secara logik berjalan sebelum SELECT).
Model mental tentang bagaimana pertanyaan sebenarnya diproses ini adalah asas kepada menulis pertanyaan yang betul dan menyahpepijat ralat yang mengelirukan.
Memandangkan membaca data dengan SELECT ialah operasi pangkalan data yang paling biasa, dan memandangkan memahami pemilihan lajur, alias, ungkapan, dan terutamanya susunan pertanyaan logik adalah asas kepada semua pertanyaan, menguasai penyataan SELECT ialah pengetahuan teras yang wajib diketahui bagi sesiapa yang bekerja dengan pangkalan data SQL.
