Apa itu SQL?
SQL, singkatan dari Structured Query Language, adalah alat yang kuat untuk menelusuri sejumlah besar data dalam basis data dan mengembalikan informasi spesifik untuk analisis. Mempelajari SQL adalah kemampuan dasar bagi siapa pun yang ingin masuk ke bidang data, baik untuk peran analis bisnis, analis data, data scientist, maupun data engineer.
Dalam tutorial ini, Anda akan mempelajari 25 perintah SQL yang paling umum yang akan cukup untuk sebagian besar tugas terkait basis data Anda.
Perintah SQL dengan Contoh
Tabel contoh
Sepanjang tutorial ini, kita akan menggunakan tabel films dan soundtracks.
|
films |
|||||
|
movie_name |
director |
revenue |
date |
genre |
language |
|
Avengers: Age of Ultron |
J. Whedon |
1400000000 |
2015 |
Aksi |
Inggris |
|
Amelie |
Jean-Pierre Jeunet |
174000000 |
2002 |
Drama |
Prancis |
|
soundtracks |
||
|
soundtrack |
composer |
date |
|
Inception: Music from the Motion Picture |
Hans Zimmer |
2010 |
|
Le Fabuleux Destin D’Amelie Poulain |
Yann Tiersen |
2001 |
1. SELECT
Pernyataan SELECT digunakan untuk menentukan kolom mana dari tabel basis data yang harus disertakan dalam hasil.
Contoh ini hanya memilih kolom movie_name dan director; kolom lainnya tidak dikembalikan.
SELECT movie_name, director
FROM films;
Untuk memilih semua kolom dari sebuah tabel, Anda dapat menjalankan SELECT * (dibaca "bintang"). Contoh ini memilih semua kolom dari tabel films.
SELECT *
FROM films;
2. LIMIT
Membatasi jumlah baris yang dikembalikan dari sebuah tabel adalah trik berguna untuk mempercepat waktu kueri. Untuk membatasi jumlah baris, Anda dapat menggunakan perintah LIMIT. Contoh ini memilih semua kolom dari tabel films lalu membatasi hasil ke sepuluh baris pertama.
SELECT *
FROM films
LIMIT 10;
3. AS
Untuk mengganti nama kolom atau tabel saat mengembalikan hasil, Anda dapat menggunakan perintah AS untuk menetapkan alias pada keluaran. Contoh ini memilih kolom movie_name dan memberinya alias movie_title.
SELECT movie_name AS movie_title
FROM films;
4. SELECT DISTINCT
Sering kali, dataset berisi baris atau nilai duplikat dalam sebuah kolom. Menggabungkan SELECT dengan DISTINCT akan menghapus duplikat. Contoh ini mengembalikan nilai unik pada kolom director.
SELECT DISTINCT director
FROM films;
5. COUNT
COUNT() mengembalikan jumlah baris dalam tabel atau grup. Contoh ini mengembalikan jumlah baris di tabel films, lalu menamai ulang hasilnya sebagai number_of_films.
SELECT COUNT(*) AS number_of_films
FROM films;Mulai Belajar SQL Gratis
Data Manipulation in SQL
6. MIN
MIN() mengembalikan nilai minimum dalam kolom numerik. Untuk kolom teks, MIN() mengembalikan nilai pertama secara alfabet. Contoh ini mengembalikan film dengan pendapatan terendah.
SELECT MIN(revenue) AS minimum_revenue,
FROM films;
7. MAX
MAX() mengembalikan nilai maksimum dalam kolom numerik. Untuk kolom teks, MAX() mengembalikan nilai terakhir secara alfabet. Contoh ini mengembalikan film dengan pendapatan maksimum.
SELECT MAX(revenue) AS maximum_revenue,
FROM films;
8. SUM
SUM() mengembalikan total dari nilai numerik. Contoh ini mengembalikan total pendapatan semua film yang tercantum dalam tabel films.
SELECT SUM(revenue) AS total_revenue
FROM films;
9. AVERAGE
AVERAGE menghitung nilai rata-rata aritmetika dari sebuah kolom. Contoh ini mengembalikan rata-rata pendapatan semua film yang tercantum dalam tabel films.
SELECT AVERAGE(revenue) AS average_earned
FROM films;
10. WHERE
Klausa WHERE memfilter baris yang memenuhi kondisi tertentu. Misalnya, di bawah ini kita memfilter film yang menghasilkan lebih dari 500 juta dolar
SELECT revenue
FROM films
WHERE revenue > 500000000;
Operator kondisional lain dapat digunakan seperti <, >, =>, <=, == (sama dengan), != (tidak sama dengan) untuk pemfilteran.
11. HAVING
Klausa HAVING mirip dengan klausa WHERE, tetapi hanya dapat digunakan dengan fungsi agregat sedangkan WHERE tidak bisa. Misalnya, pada kueri di bawah ini, kita memilih semua genre film yang memiliki setidaknya 50 film dalam kategorinya:
SELECT movie_name, director, date, COUNT(genre)
FROM films
GROUP BY genre
HAVING COUNT(genre) >= 50;
Berikut contoh lain yang mengelompokkan film berdasarkan klasifikasi usia dan hanya memilih klasifikasi dengan rata-rata pendapatan lebih dari 100 juta:
SELECT movie_name, director, date, revenue
FROM films
GROUP BY age_rating
HAVING AVERAGE(genre) >= 100;
12. AND
Operator AND digunakan saat memfilter baris yang memenuhi lebih dari satu kondisi. Pada contoh di bawah, kita akan memfilter film berbahasa Inggris yang meraup lebih dari 500 juta dolar.
SELECT *
FROM films
WHERE revenue > 500000000 AND
language == "English";
13. OR
OR adalah operator kondisional lain yang memungkinkan Anda menyaring baris jika salah satu kondisi yang dipisahkan oleh OR bernilai benar. Contoh ini mengembalikan film berbahasa Inggris yang menghasilkan kurang dari 100 juta dolar atau film berbahasa Prancis yang menghasilkan lebih dari 500 juta dolar.
SELECT *
FROM films
WHERE (revenue < 100000000 AND language == "English") OR
(revenue > 500000000 AND language == “French”);
14. BETWEEN
BETWEEN memungkinkan Anda menyaring baris dalam rentang tertentu, yang membuat klausa WHERE lebih sederhana dan mudah dibaca. Pada contoh di atas, kita memilih semua film yang dirilis antara 2020 dan 2022.
SELECT *
FROM films
WHERE date BETWEEN 2020 AND 2022;
15. IN
Operator IN adalah singkatan untuk beberapa pernyataan OR. Contoh ini mengembalikan semua film yang dirilis pada salah satu tahun berikut—1998, 1966, 2001, dan 2012.
SELECT movie_name, date, revenue
FROM films
WHERE date IN (1998, 1966, 2001, 2012);
16. LIKE
Operator LIKE memungkinkan Anda mencari pola dalam kolom teks menggunakan string khusus yang disebut wildcard. Wildcard membantu Anda menemukan string teks yang sesuai dengan pola tertentu. Misalnya, menggunakan wildcard “A% W%” pada kolom director akan menemukan semua sutradara dengan nama depan berawalan A dan nama belakang berawalan W.
SELECT *
FROM films
WHERE director LIKE "A% W%";
17. GROUP BY
GROUP BY memungkinkan Anda mengelompokkan baris berdasarkan nilai kolom. GROUP BY biasanya digunakan dengan fungsi agregat seperti COUNT, MIN, MAX, AVERAGE, dan lainnya. Pada contoh di bawah, kita mencari rata-rata pendapatan tiap genre film.
SELECT AVERAGE(revenue), movie_name, director, date
FROM films
GROUP BY genre;
Kita juga bisa menggunakan MIN, MAX, atau COUNT(revenue) untuk menemukan pendapatan terendah, tertinggi, atau jumlah film dalam tiap genre. Perhatikan bahwa pernyataan GROUP BY pada praktiknya tidak memengaruhi kueri jika tidak digunakan dengan fungsi agregat.
18. ORDER BY
ORDER BY memungkinkan Anda mengurutkan baris berdasarkan nilai kolom. Anda dapat mengurutkan secara menaik (bawaan) atau menurun dengan menambahkan ASC atau DESC. Contoh ini mengurutkan pendapatan secara menaik.
SELECT *
FROM films
ORDER BY revenue ASC;
19. UPDATE
UPDATE digunakan untuk mengubah nilai sel individual dalam tabel yang sudah ada. Perintah ini digunakan bersama kata kunci SET. Contoh ini memperbarui nama sutradara “J. Whedon” menjadi “Joss Whedon”.
UPDATE films
SET director = "Joss Whedon"
WHERE director = "J. Whedon"
Klausa WHERE sangat penting saat menulis pernyataan UPDATE. Tanpanya, kueri di atas akan menjadikan semua film disutradarai oleh Joss Whedon.
20. ALTER TABLE
Anda dapat menggunakan pernyataan ALTER TABLE untuk memodifikasi properti tabel dan kolomnya (bukan nilai sel aktual). Misalnya, mengubah nama kolom, menambah kolom baru, menghapusnya, atau mengubah tipe datanya. Contoh di bawah menunjukkan penghapusan kolom date dan penambahan kolom age_rating.
ALTER TABLE films
DROP COLUMN date;
ALTER TABLE films
ADD COLUMN age_rating;
21. CREATE TABLE
CREATE TABLE membuat tabel baru dalam basis data. Di bawah ini, kita membuat tabel “libraries” dengan empat kolom—kolom integer bernama id, kolom karakter bernama name, kolom karakter bernama version, dan kolom integer bernama num_downloads.
CREATE TABLE libraries (
lib_id int,
name varchar(100),
version varchar(100),
num_downloads int
)
22. INSERT INTO
Pernyataan INSERT INTO dapat digunakan untuk menambahkan baris baru ke sebuah tabel. Pada contoh ini, kita menambahkan film “Doctor Strange” ke tabel films.
INSERT INTO films (movie_name, director, revenue, date, genre, language)
VALUES ("Doctor Strange 2", “Sam Raimi”, 409000000, 2022, “Action”, “English”)
23. INNER JOIN
Perintah INNER JOIN memilih baris yang memiliki nilai yang cocok di kedua tabel. Misalnya, pada kueri di bawah, kita menggabungkan tabel films dan soundtracks pada kolom date yang sama sehingga mengembalikan film dan soundtrack yang dirilis pada tahun yang sama.
SELECT *
FROM films
INNER JOIN soundtracks
ON films.date = soundtracks.date
LIMIT 10;
24. LEFT JOIN
LEFT JOIN mempertahankan semua rekaman asli di tabel kiri dan mengembalikan nilai kosong untuk kolom mana pun dari tabel kanan jika field penggabung tidak menemukan pasangan yang cocok.
SELECT *
FROM films
LEFT JOIN soundtracks
ON films.date = soundtracks.date
LIMIT 10;
25. RIGHT JOIN
RIGHT JOIN mempertahankan semua rekaman asli di tabel kanan dan mengembalikan nilai kosong untuk kolom mana pun dari tabel kiri jika field penggabung tidak menemukan pasangan yang cocok.
SELECT *
FROM films
LEFT JOIN soundtracks
ON films.date = soundtracks.date
LIMIT 10;
Lembar Contekan Perintah SQL
Untuk mempelajari lebih lanjut tentang SQL, pastikan untuk melihat sumber berikut: