DataLens

SELECT dan FROM

Minta persis kolom-kolom yang kamu butuhkan, dalam urutan yang kamu mau, dan baca hasilnya seperti seorang profesional.

Level: Dasar · 9 menit baca

Latihan modul ini

Soal-soal untuk pelajaran ini berjalan di browser-mu dan langsung mengecek jawabanmu.

Idenya

SELECT * FROM products; menampilkan semuanya. Itu praktis untuk melihat pertama kali, tapi di tempat kerja kamu hampir tidak pernah menginginkan semuanya. Laporan tentang harga tidak butuh tingkat stok, dan daftar email pelanggan tidak butuh tanggal pendaftaran. SELECT memungkinkanmu memilih persis kolom-kolom yang kamu butuhkan, dan itulah langkah pertama setiap query yang akan kamu tulis.

Bayangkan tabel sebagai spreadsheet yang lebar. FROM mengatakan sheet mana yang dibuka. SELECT mengatakan kolom mana yang tetap terlihat, dan dalam urutan apa.

Memilih kolom

Misalkan tim marketing sedang menyusun daftar harga untuk website. Mereka butuh nama dan harga setiap produk, tidak lebih. Tulis kolom-kolom yang kamu inginkan setelah SELECT, dipisahkan koma, dan database akan meninggalkan kolom lainnya:

SELECT name, price
FROM products;
 name                 | price
----------------------+--------
 French Press 600ml   | 185000
 Pour-over Kettle     | 320000
 Arabica Gayo 250g    |  95000
 Robusta Lampung 250g |  65000
 Toraja Kalosi 250g   | 110000
 Ceramic Mug          |  55000
 Notebook A5 Dotted   |  45000
 Gel Pen Set          |  38000
 Desk Organizer       |  89000
 Wireless Mouse       | 175000
 USB-C Hub            | 289000
 Desk Lamp LED        | 245000
 Scented Candle       |  75000
 Throw Pillow         | 120000
 Bamboo Plant         |  60000
(15 rows)

Kamu bisa menaruh kolom-kolom dalam urutan apa pun yang kamu suka:

SELECT price, name, category
FROM products;
 price  | name                 | category
--------+----------------------+-------------
 185000 | French Press 600ml   | Kitchen
 320000 | Pour-over Kettle     | Kitchen
  95000 | Arabica Gayo 250g    | Coffee
...
(15 rows)

Cara SQL membaca query-mu

Kamu menulis SELECT lebih dulu, tapi database membaca FROM lebih dulu. Ia membuka tabelnya, lalu memilih kolom-kolomnya. Ingat itu, karena ini menjelaskan banyak aturan nanti:

Kamu menulisDatabase melakukan
SELECT name, price2. simpan hanya kolom-kolom ini
FROM products1. buka tabel ini

Urutan ini akan bertambah saat kamu mempelajari WHERE, GROUP BY, dan ORDER BY, dan mengetahuinya menghemat berjam-jam kebingungan.

Saat ada yang salah

Error SQL terlihat menakutkan, tapi sangat spesifik. Minta kolom yang tidak ada:

SELECT name, prices
FROM products;
ERROR: column "prices" does not exist

Database memberi tahu persis nama mana yang tidak bisa ditemukannya. Perbaikannya hampir selalu salah ketik: di sini, kolomnya price, bukan prices. Cek tab Tables setiap kali kamu tidak yakin dengan sebuah nama.

Sekarang koma di belakang:

SELECT name, price,
FROM products;
ERROR: syntax error at or near "FROM"

"Syntax error at or near FROM" berarti "ada yang salah tepat sebelum FROM". Database membaca komanya, mengharapkan kolom lain, dan malah menemukan FROM.

Tips

Saat kamu mendapat syntax error, lihat kata yang disebutkannya, lalu lihat tepat sebelum kata itu. Di situlah kesalahannya biasanya berada.

Komentar

Dua tanda strip memulai komentar: semua yang ada setelah -- di baris itu diabaikan database. Pakai komentar untuk menjelaskan mengapa sebuah query ada:

-- Daftar harga untuk tim marketing, kampanye Juli
SELECT name, category, price
FROM products;
 name                 | category    | price
----------------------+-------------+--------
 French Press 600ml   | Kitchen     | 185000
 Pour-over Kettle     | Kitchen     | 320000
 Arabica Gayo 250g    | Coffee      |  95000
...
(15 rows)

Kenapa tidak selalu memakai SELECT *?

* sempurna untuk menjelajahi tabel yang belum kamu kenal. Di query yang akan kamu simpan, sebutkan kolom-kolomnya:

Ide utama

Pakai SELECT * untuk melihat. Pakai kolom bernama untuk bekerja.

Beberapa query sekaligus

Kamu bisa menjalankan lebih dari satu pernyataan sekaligus, mengakhiri masing-masing dengan titik koma. Situs ini menampilkan setiap hasilnya secara terpisah:

SELECT name, city FROM customers;
SELECT name, department FROM employees;
 name            | department
-----------------+------------
 Rina Hartono    | Management
 Agus Salim      | Sales
 Maya Anggraini  | Operations
...
(12 rows)

Output di atas menampilkan hasil terakhir. Di editor, kamu akan melihat keduanya, satu setelah yang lain.

Gaya format

Tidak ada satu gaya resmi, tapi gaya ini dipakai luas dan mudah dibaca:

SELECT
    name,
    category,
    price
FROM products;

Mengapa ini penting untuk kode bersih

Memilih kolom dengan sengaja adalah versi SQL dari menamai variabel dengan baik: maksudmu jadi jelas. Query yang berbunyi SELECT name, email FROM customers mendokumentasikan dirinya sendiri. Dirimu di masa depan, rekan-rekan timmu, dan script-script Python-mu semuanya diuntungkan oleh query yang mengembalikan persis apa yang dijanjikannya, tidak lebih.

Rangkuman

Latihan modul ini

Soal-soal untuk pelajaran ini berjalan di browser-mu dan langsung mengecek jawabanmu.

Berikutnya: WHERE dan operator perbandingan →