Lewati ke konten utama

Contoh dan Tutorial Kueri SQL

Jika Anda ingin mulai belajar SQL, kami siap membantu. Dalam tutorial SQL ini, kami akan memperkenalkan Anda pada kueri SQL — alat andal yang memungkinkan kita bekerja dengan data yang tersimpan di basis data.
Diperbarui 28 Sep 2026  · 15 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Apa itu kueri SQL?

SQL adalah singkatan dari Structured Query Language. Orang sering melafalkannya sebagai “S-Q-L” atau “sequel.” SQL digunakan dalam pemrograman dan dirancang untuk mengelola data yang disimpan di basis data menggunakan kueri SQL. 

Jenis sistem manajemen basis data (DBMS) yang paling umum adalah sistem manajemen basis data relasional (RDBMS), tempat kita menyimpan data terstruktur, yaitu data yang memuat relasi antar entitas dan variabel. Entitas dan variabel ini diatur sebagai sekumpulan tabel dengan kolom dan baris. Beberapa RDBMS paling populer adalah MYSQL, Oracle, IBM DB2, dan Microsoft SQL Server.

Data di RDBMS disimpan dalam objek basis data yang disebut tabel. Sebuah basis data sering kali berisi beberapa tabel. Setiap tabel diidentifikasi dengan nama unik dan memuat kumpulan entri data terkait yang terstruktur sebagai baris dan kolom. 

Kolom adalah entitas vertikal; kolom disebut field dan berisi semua informasi yang terkait dengan suatu field tertentu dalam tabel. Setiap baris dalam tabel dikenal sebagai record; ini adalah entitas horizontal dalam tabel.

Struktur sebuah basis data bisa terasa mirip dengan Excel. Namun, secara umum basis data lebih kuat daripada spreadsheet Excel. Berikut tiga alasannya: 

  1. Basis data dapat berinteraksi dengan banyak bahasa pemrograman lain—memberi pengembang kemampuan lebih untuk mengelola dan mengambil informasi dari data.
  2. Basis data dapat memproses lebih banyak data dibandingkan spreadsheet di Excel. Excel dapat menangani hingga 1 juta baris data, sedangkan basis data dapat menangani lebih dari satu miliar baris.
  3. Basis data lebih mudah dihubungkan ke internet, memungkinkan ratusan pengguna dan aplikasi mengaksesnya secara bersamaan.

Tak sabar mulai belajar SQL? DataCamp punya materi hebat untuk memulai; belajar SQL menyoroti track yang dapat Anda ikuti untuk mengasah keterampilan SQL Anda!

Sekarang mari kita menyelami Kueri SQL lebih dalam… 

Sebuah kueri SQL adalah pernyataan yang dibangun dengan menggabungkan berbagai perintah SQL. Perintah SQL tersebut bersama-sama menjalankan tugas tertentu untuk mengakses, mengelola, memodifikasi, memperbarui, mengontrol, dan mengatur data Anda yang disimpan di basis data dan dikelola melalui DBMS. 

Mengapa menggunakan SQL?

SQL sangat serbaguna, digunakan oleh semua orang mulai dari data scientist dan engineer hingga pemasar dan tim sumber daya manusia—pada dasarnya, siapa pun yang ingin lebih melek data!

SQL tidak hanya digunakan di industri teknologi atau terbatas pada perusahaan besar. Banyak industri dari berbagai skala menggunakannya secara langsung atau tidak langsung. Misalnya, para profesional di industri keuangan dan layanan kesehatan sering menggunakan SQL karena banyaknya data yang mereka hasilkan. 

Data adalah komoditas baru, dan SQL adalah alat yang sangat kuat untuk menangani dan mengolah big data. Ingin tahu bagaimana memaksimalkan SQL? Lihat tutorial DataCamp Apa yang dapat Anda lakukan dengan SQL untuk membantu menjawab pertanyaan tersebut.

Cara menulis kueri SQL

Sebelum masuk ke perumusan kueri itu sendiri, mari kita pertimbangkan pertanyaan: “Di mana saya menulis dan mengeksekusi kueri SQL saya?” 

Pusat Belajar SQL DataCamp bisa menjadi titik awal yang baik untuk mulai bekerja dengan SQL di mesin Mac atau Windows.

Namun jika Anda hanya ingin mulai belajar bahasa asli basis data—SQL, Anda dapat memulai dengan kursus Introduction to SQL dari DataCamp. Kursus ini mengajarkan sintaks SQL yang digunakan banyak jenis basis data, seperti PostgreSQL, MySQL, SQL Server, dan Oracle. Anda akan bekerja dengan antarmuka SQL bawaan DataCamp dan tidak perlu berurusan dengan kerepotan penyiapan awal RDBMS. 

DataCamp juga memiliki alat notebook hebat tempat Anda dapat membuat notebook sendiri: DataLab. DataLab adalah notebook kolaboratif berbasis cloud yang memungkinkan Anda menganalisis data, berkolaborasi dengan tim, dan berbagi insight. DataLab dirancang untuk membawa Anda dari belajar data science ke praktik data science. Dengan dataset bawaan, Anda dapat mulai menganalisis data dalam hitungan menit.

Sekarang mari kita lihat dataset yang akan kita gunakan dalam tutorial ini. 

Kita akan mulai dengan ‘films’—sebuah tabel SQL yang memuat data 10 film. Data ini hanyalah subset kecil dari dataset IMDb Film yang digunakan dalam kursus Introduction to SQL DataCamp yang disebutkan sebelumnya.

 

title

release_year

budget

gross

imdb_score

1

The Godfather

1972

6000000

134821952

9.2

2

The Dark Knight

2008

185000000

533316061

9

3

The Godfather: Part II

1974

13000000

57300000

9

4

Schindler's List

1993

22000000

96067179

8.9

5

Pulp Fiction

1994

8000000

107930000

8.9

6

The Lord of the Rings: The Return of the King

2003

94000000

377019252

8.9

7

Fight Club

1999

63000000

37023395

8.8

8

Inception

2010

160000000

292568851

8.8

9

Star Wars: Episode V - The Empire Strikes Back

1980

18000000

290158751

8.8

10

The Shawshank Redemption

1994

25000000

28341469

9.3

Tabel ‘films’ memiliki sepuluh record—nama film disimpan pada 10 baris. Field adalah lima kolom di tabel yang memuat informasi terkait film. 

  • ‘title’ adalah nama film
  • ‘release_year’ adalah tahun rilis film
  • ‘budget’ adalah biaya produksi film dalam dolar Amerika
  • ‘gross’ adalah pendapatan film dalam dolar Amerika. 
  • ‘imdb_score’ menunjukkan rating yang dihasilkan dari suara pengguna IMDb, bukan kritikus film. 

Mari mulai latihan dengan beberapa perintah SQL dasar untuk mengeksplorasi tabel ‘films’ di atas. Kami tidak mengharapkan Anda langsung mengeksekusi kueri solusi… melainkan menggunakannya sebagai dasar untuk mempelajari konsep kunci. Jadi jangan khawatir jika Anda belum memutuskan platform tempat menjalankan kueri.

Kueri SQL dasar

Perlu diingat bahwa kata kunci atau perintah SQL tidak peka huruf besar/kecil; menulis ‘select’ sama dengan menulis ‘SELECT’. 

Kita akan menggunakan titik koma di akhir setiap pernyataan SQL yang kita tulis. Ini adalah kebiasaan pada beberapa sistem basis data, dan dilakukan untuk memisahkan setiap pernyataan SQL agar dapat dieksekusi dalam panggilan yang sama ke server. 

Mari mulai dengan sebuah pertanyaan. Q1: Apa saja film yang disimpan di tabel?

SELECT - FROM

Pernyataan SELECT digunakan untuk memilih field yang ingin Anda lihat dari tabel basis data. Untuk Q1, Anda menginginkan field ‘title’.

Perintah/kata kunci FROM menentukan tabel tertentu dalam basis data dari mana Anda ingin menarik data. Ingat, sebuah basis data dapat berisi banyak tabel.

Sintaks: SELECT column1, column2, … FROM table_name;

Kueri SQL: SELECT title FROM films;

Hasil: 

 

title

1

The Godfather

2

The Dark Knight

3

The Godfather: Part II

4

Schindler's List

5

Pulp Fiction

6

The Lord of the Rings: The Return of the King

7

Fight Club

8

Inception

9

Star Wars: Episode V - The Empire Strikes Back

10

The Shawshank Redemption

Anda mungkin bertanya-tanya, bagaimana jika Anda belum pernah melihat tabel di atas sehingga tidak tahu nama kolom untuk ditentukan dalam pernyataan SELECT. Pertanyaan bagus! Kita akan mempelajari ‘*’ (asterisk) yang “magis” nanti dalam tutorial. 

WHERE

Q2: Apa saja film yang dirilis pada 2010?

Untuk pertanyaan ini, Anda ingin “menyaring” film sehingga Anda memiliki nama film yang memenuhi kondisi: ‘release_year’ adalah 2010. 

Anda dapat menggunakan klausa ‘WHERE’ untuk mengekstrak hanya record yang memenuhi kondisi tertentu.

Sintaks: SELECT column1, column2, … FROM table_name WHERE condition; 

Kueri SQL: SELECT title, release_year FROM films WHERE release_year = 2010;

Hasil: 

 

title

release_year

1

Inception

2010

Operator dalam Klausa WHERE

Operator berikut dapat digunakan dalam klausa WHERE:

Operator

Deskripsi

=

Sama dengan

>

Lebih besar dari

<

Lebih kecil dari

>=

Lebih besar dari atau sama dengan

<=

Lebih kecil dari atau sama dengan

<> atau !=

Tidak sama dengan. 

BETWEEN

Di antara suatu rentang tertentu

LIKE

Mencari pola yang cocok dengan pola yang diberikan

IN

Menentukan beberapa nilai yang mungkin 

Aritmetika di SQL

Anda dapat melakukan aritmetika sederhana di SQL menggunakan simbol matematika: +, -, *, /. Namun, Anda hanya dapat melakukan operasi antar kolom menggunakan simbol aritmetika ini. Anda juga dapat menggunakan tanda kurung untuk mengatur urutan operasi.

Tetapi jangan khawatir, untuk operasi yang lebih rumit—SQL memiliki fungsi agregat yang memungkinkan Anda melakukan operasi dalam baris yang sama. Kita bahas topik ini nanti dalam tutorial.

Q3: Hitung laba yang diperoleh setiap film dalam tabel ‘films’. 

Petunjuk: Lakukan Gross - Budget dan simpan hasilnya di kolom bernama ‘movie_profit’ menggunakan AS

Kueri SQL: SELECT title, (gross - budget) AS movie_profit FROM films

Hasil: 

 

title

movie_profit

1

The Godfather

128821952

2

The Dark Knight

348316061

3

The Godfather: Part II

44300000

4

Schindler's List

74067179

5

Pulp Fiction

99930000

6

The Lord of the Rings: The Return of the King

283019252

7

Fight Club

-25976605

8

Inception

132568851

9

Star Wars: Episode V - The Empire Strikes Back

272158751

10

The Shawshank Redemption

3341469

Disclaimer: Para penggemar film mungkin terganggu oleh laba negatif untuk Fight Club. Rumus yang digunakan ((gross - budget) AS movie_profit) sangat sederhana dan memang, sesuai rumus dan data, hasilnya benar. 

Tetapi contoh di atas mengingatkan Anda untuk memperhatikan proses pengumpulan data! Bahkan eksplorasi data sederhana dapat mengungkap kesalahan data yang mungkin disebabkan oleh kesalahan dalam proses pengumpulan atau penyimpanan data (perubahan tipe data, dll)—mungkin itulah yang terjadi saat menyusun dataset yang digunakan. 

Selalu perhatikan data yang Anda kerjakan!

AND, OR, NOT

Klausa WHERE dapat dikombinasikan dengan klausa kondisional lain menggunakan operator AND, OR, dan NOT. Operator AND dan OR digunakan untuk memfilter record berdasarkan lebih dari satu kondisi, dan operator NOT digunakan untuk menegasikan suatu kondisi. 

Mari lihat penggunaannya dengan contoh:

Q4: Apa saja film yang dirilis pada 2010 dan memiliki rating lebih tinggi dari 9?

Sintaks: SELECT column1, column2, … FROM table_name WHERE condition1 AND condition2 AND condition3 AND condition4…..;

Kueri SQL: SELECT title, release_year, imdb_score FROM films WHERE release_year = 2010 AND imdb_score >= 9;

Operator AND menampilkan record jika semua kondisi yang dipisahkan oleh AND bernilai benar.

Dalam tabel ‘films’, kita memiliki film ‘Inception’. Ini adalah satu-satunya nilai yang benar untuk release_year = 2010, tetapi salah untuk imdb_score >= 9 dan karena itu tidak memenuhi kedua set kondisi AND. Maka kueri mengembalikan himpunan hasil kosong.

Q5: Apa saja film yang dirilis pada 2010 atau memiliki rating lebih tinggi dari 9?

Sintaks: SELECT column1, column2, … FROM table_name WHERE condition1 OR condition2 OR condition3 OR condition4…..;

Kueri SQL: SELECT title, release_year, imdb_score FROM films WHERE release_year = 2010 OR imdb_score >= 9;

Hasil: 

 

title

release_year

imdb_score

1

The Godfather

1972

9.2

2

The Dark Knight

2008

9

3

The Godfather: Part II

1974

9

4

Inception

2010

8.8

5

The Shawshank Redemption

1994

9.3

Operator OR menampilkan record jika salah satu dari kondisi yang dipisahkan oleh OR bernilai TRUE.

Film: The Godfather, The Dark Knight, The Godfather: Part II, The Shawshank Redemption bernilai benar untuk imdb_score >= 9, sedangkan Inception bernilai benar untuk release_year = 2010, sehingga semuanya lolos pada kondisi OR.

Q6: Apa saja film yang tahun rilisnya bukan 2010?

Sintaks: SELECT column1, column2, … FROM table_name WHERE NOT condition1;

Kueri SQL: SELECT title, release_year FROM films WHERE NOT release_year = 2010;

Hasil: 

 

title

release_year

1

The Godfather

1972

2

The Dark Knight

2008

3

The Godfather: Part II

1974

4

Schindler's List

1993

5

Pulp Fiction

1994

6

The Lord of the Rings: The Return of the King

2003

7

Fight Club

1999

8

Star Wars: Episode V - The Empire Strikes Back

1980

9

The Shawshank Redemption

1994

Anda juga bisa menulis: SELECT title, release_year FROM films WHERE release_year != 2010;

Ini juga akan memberi hasil yang sama seperti di atas.Ada banyak cara untuk mencapai hasil yang sama di SQL. Namun, beberapa kueri mungkin lebih bertenaga kinerja dibanding yang lain. Kinerja dapat bergantung pada banyak faktor—jumlah data, perintah yang digunakan dalam kueri, bagaimana basis data disusun, tipe data, dll. Ini adalah topik yang agak lebih rumit dan lanjutan yang tidak akan kita bahas dalam tutorial kueri SQL ini. 

Tetapi jika Anda tertarik, kursus Database Design DataCamp membahas lebih dalam topik-topik ini.

ORDER BY

Kata kunci ORDER BY digunakan untuk mengurutkan hasil baik secara menaik (menggunakan kata kunci ASC) atau menurun (menggunakan kata kunci DESC). Secara default pengurutan dilakukan secara menaik.

Q7: Apa saja film yang disimpan di tabel? Urutkan menurun berdasarkan release_year.

Sintaks: SELECT column1, column2, … FROM table_name ORDER BY column1, column2, ... ASC|DESC;

Kueri SQL: SELECT title, release_year FROM films ORDER BY release_year DESC;

Hasil: 

 

title

release_year

1

Inception

2010

2

The Dark Knight

2008

3

The Lord of the Rings: The Return of the King

2003

4

Fight Club

1999

5

Pulp Fiction

1994

6

The Shawshank Redemption

1994

7

Schindler's List

1993

8

Star Wars: Episode V - The Empire Strikes Back

1980

9

The Godfather: Part II

1974

10

The Godfather

1972

LIMIT

Terkadang basis data membutuhkan waktu lama untuk menjalankan kueri Anda; terutama jika jumlah data yang disimpan sangat besar. 

Cara mudah dan cepat untuk menguji kueri atau mengambil sampel jenis hasil yang Anda peroleh adalah menggunakan fungsi LIMIT. LIMIT memungkinkan Anda membatasi jumlah hasil yang didapat.

Q8: Apa saja 5 film terbaru yang disimpan di tabel? 

Petunjuk: Urutkan himpunan hasil secara menurun terkait release_year lalu gunakan LIMIT.

Sintaks: SELECT column1, column2, … FROM table_name LIMIT x;

Kueri SQL: SELECT title, release_year FROM films ORDER BY release_year DESC LIMIT 5;

Hasil: 

 

title

release_year

1

Inception

2010

2

The Dark Knight

2008

3

The Lord of the Rings: The Return of the King

2003

4

Fight Club

1999

5

Pulp Fiction

1994

INSERT INTO

INSERT INTO digunakan untuk menambahkan record baru ke tabel basis data. Anda dapat menulis pernyataan INSERT INTO dengan dua cara: 

  • Menentukan nama kolom beserta nilai yang sesuai

Sintaks: INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);

  • Jika Anda menambahkan nilai untuk SEMUA kolom tabel, Anda tidak perlu menyebutkan nama kolom dalam kueri. Berhati-hatilah saat menggunakan metode ini, dan pastikan urutan nilai sama dengan urutan kolom di tabel. 

Sintaks: INSERT INTO table_name VALUES (value1, value2, value3, ...);

Q9: Tambahkan entri untuk ‘The Godfather: Part III’ ke tabel dengan detail: (‘The Godfather: Part III’, 1990, 54000000, 136900000, 7.6)

Sintaks: SELECT column1, column2, … FROM table_name ORDER BY column1, column2,... ASC|DESC;

Kueri SQL: INSERT INTO films (title, release_year, budget, gross, imdb_score)

VALUES (‘The Godfather: Part III’, 1970, 54000000, 136900000, 7.6);

Tabel hasil: 

 

title

release_year

budget

gross

imdb_score

1

The Godfather

1972

6000000

134821952

9.2

2

The Dark Knight

2008

185000000

533316061

9

3

The Godfather: Part II

1974

13000000

57300000

9

4

Schindler's List

1993

22000000

96067179

8.9

5

Pulp Fiction

1994

8000000

107930000

8.9

6

The Lord of the Rings: The Return of the King

2003

94000000

377019252

8.9

7

Fight Club

1999

63000000

37023395

8.8

8

Inception

2010

160000000

292568851

8.8

9

Star Wars: Episode V - The Empire Strikes Back

1980

18000000

290158751

8.8

10

The Shawshank Redemption

1994

25000000

28341469

9.3

11

The Godfather: Part III

1970

54000000

136900000

7.6

UPDATE

Kita menggunakan pernyataan UPDATE untuk memodifikasi record yang ada dalam tabel. 

Q10: Koreksi release_year untuk ‘The Godfather: Part III’ menjadi 1990 alih-alih 1970

Sintaks: UPDATE table_name SET column1 = value1, column2 = value2, ...WHERE condition;

Kueri SQL: UPDATE films SET release_year = 1990 WHERE title = ‘The Godfather: Part III’;

Tabel hasil: 

 

title

release_year

budget

gross

imdb_score

1

The Godfather

1972

6000000

134821952

9.2

2

The Dark Knight

2008

185000000

533316061

9

3

The Godfather: Part II

1974

13000000

57300000

9

4

Schindler's List

1993

22000000

96067179

8.9

5

Pulp Fiction

1994

8000000

107930000

8.9

6

The Lord of the Rings: The Return of the King

2003

94000000

377019252

8.9

7

Fight Club

1999

63000000

37023395

8.8

8

Inception

2010

160000000

292568851

8.8

9

Star Wars: Episode V - The Empire Strikes Back

1980

18000000

290158751

8.8

10

The Shawshank Redemption

1994

25000000

28341469

9.3

11

The Godfather: Part III

1990

54000000

136900000

7.6

DELETE

Pernyataan DELETE digunakan untuk menghapus record yang ada dalam tabel. 

Q11: Hapus entri ‘The Godfather: Part III’ dari tabel ‘films’.

Sintaks: DELETE FROM table_name WHERE condition;

Kueri SQL: DELETE FROM films WHERE title = ‘The Godfather: Part III’;

Tabel hasil: Sama seperti tabel asli yang kita mulai dengan total 10 record.

Kueri SQL lanjutan

Ingat kita menunda pembahasan ‘*’ yang “magis” di akhir Q1? Tanda * adalah asterisk. Ini adalah karakter menyeluruh yang bisa kita baca sebagai ‘semua’. 

Kembali ke Q1: Apa saja film yang disimpan di tabel?

Kita menggunakan SELECT - FROM dengan Sintaks: SELECT column1, column2, … FROM table_name;

Kita menggunakan kueri: SELECT title FROM films;

Tetapi bagaimana jika Anda tidak tahu ‘title’ adalah field dalam tabel ‘films’? Atau nama field apa pun dalam tabel? Atau Anda sekadar ingin semua field dalam tabel untuk merasakan datanya? Nah, di sinilah * berguna.

Kita bisa menulis ulang kueri menjadi: SELECT * FROM films; 

Ini akan mengambil semua field yang tersedia di tabel.

Karakter Wildcard SQL

LIKE

Operator LIKE digunakan dalam klausa WHERE untuk mencari pola tertentu dalam sebuah kolom. 

Q12: Ambil semua nama film yang diawali dengan ‘The’

Sintaks: SELECT column1, column2, … FROM table_name WHERE column1 LIKE patternToMatch;

Kueri SQL: Select * FROM films WHERE title LIKE ‘The%’;

Tabel hasil:

 

title

release_year

budget

gross

imdb_score

1

The Godfather

1972

6000000

134821952

9.2

2

The Dark Knight

2008

185000000

533316061

9

3

The Godfather: Part II

1974

13000000

57300000

9

4

The Lord of the Rings: The Return of the King

2003

94000000

377019252

8.9

5

The Shawshank Redemption

1994

25000000

28341469

9.3

Karakter Wildcard

Deskripsi

Penggunaan: Contoh

% (Persen)

Mewakili nol atau lebih karakter

The%: The, The Godfather, Theodore

_ (Garis bawah)

Mewakili satu karakter

T_e: The, Tie

[ ] (Tanda kurung siku)

Mewakili satu karakter apa pun di dalam tanda kurung

C[ao]t: Cat, Cot tetapi bukan Coat

^ (Tanda sisipan)

Mewakili karakter apa pun yang tidak ada di dalam tanda kurung

Ca[^r]: Cat, Cab, Can tetapi bukan Car

- (Tanda hubung)

Mewakili satu karakter apa pun dalam rentang yang ditentukan

C[a-o]: Can, Cab tetapi bukan Car, Cat

Yang hebat adalah kita dapat menggunakan wildcard dalam kombinasi! Jadi Anda bisa membuat pernyataan pencocokan yang cukup kompleks menggunakan karakter wildcard bersama LIKE.

Fungsi Agregat

SQL sangat baik dalam mengagregasi data seperti yang Anda lakukan pada pivot table di Excel. Fungsi agregat dapat melakukan perhitungan bukan antar dua kolom tetapi dalam satu kolom, sehingga bekerja dengan semua atau sebagian baris dalam kolom yang sama. 

Berikut fungsi agregat dalam SQL: 

Fungsi

Deskripsi

COUNT

Menghitung jumlah record dalam kolom tertentu

SUM

Menjumlahkan semua nilai dalam kolom tertentu

MIN

Mengembalikan nilai terendah dalam kolom tertentu

MAX

Mengembalikan nilai tertinggi dalam kolom tertentu

AVG

Mengembalikan nilai rata-rata untuk kelompok terpilih 

Q13: Apa film terbaru yang disimpan di tabel?

Kueri SQL: SELECT title AS latest_movie, MAX(release_year) AS released_in FROM films;

Hasil: 

 

latest_movie

released_in

1

Inception

2010

GROUP BY

Fungsi agregat SQL mengagregasi seluruh kolom. Namun bagaimana jika Anda ingin mengagregasi hanya sebagian kolom? Misalnya, Anda mungkin ingin menghitung jumlah film yang dirilis dalam satu tahun.

Di sinilah Anda memerlukan klausa GROUP BY. GROUP BY memungkinkan Anda memisahkan data ke dalam kelompok, yang kemudian dapat diagregasi secara independen satu sama lain.

Q13: Hitung jumlah film yang dirilis dalam satu tahun.

Kueri SQL: SELECT release_year, COUNT(*) AS number_of_movies FROM films GROUP BY release_year;

Hasil: 

 

release_year

number_of_movies

1

1972

1

2

2008

1

3

1974

1

4

1993

1

5

1994

2

6

2003

1

7

1999

1

8

2010

1

9

1980

1

Contoh Kueri SQL dari beberapa tabel

Sejauh ini, kita hanya bekerja dengan satu tabel pada satu waktu. Namun kekuatan nyata dari basis data dan SQL berasal dari kemampuan untuk bekerja dengan data dari banyak tabel. 

Istilah "basis data relasional" dalam RDBMS berasal dari fakta bahwa tabel dalam basis data saling berelasi. Tabel-tabel tersebut memiliki pengidentifikasi umum yang memungkinkan data dari banyak tabel dikombinasikan dengan mudah. Di sinilah kita menggunakan JOIN tabel SQL.

Mari lihat contoh sederhana untuk membiasakan diri dengan sintaks JOIN dan juga mempelajari sedikit tentang berbagai jenis JOIN yang mungkin.

Pertimbangkan tabel lain bernama ‘movieDirectors’ yang memuat nama sutradara untuk beberapa film yang kita miliki di tabel ‘films’. 

 

title

director

1

The Godfather

Francis Ford Coppola

2

The Godfather: Part II

Francis Ford Coppola

3

The Godfather: Part III

Francis Ford Coppola

4

Schindler's List

Steven Spielberg

5

The Dark Knight Rises

Christopher Nolan

Kita dapat menggabungkan data di kedua tabel ini menggunakan pengidentifikasi umum: ‘title’.

Q14: Tambahkan kolom ke tabel ‘films’, mengisinya dengan nama sutradara dari tabel ‘movieDirectors’.

Sintaks: SELECT leftTable.column1, rightTable.column1, leftTable.column2…. FROM leftTable INNER JOIN rightTable ON leftTable.commonIdentifier = rightTable.commonIdentifier;

Kueri SQL: Select films.title, films.release_year, movieDirectors.director FROM films INNER JOIN movieDirectors ON films.title = movieDirectors.title

Hasil: 

 

title

release_year

director

1

The Godfather

1972

Francis Ford Coppola

2

The Godfather: Part II

1974

Francis Ford Coppola

3

Schindler's List

1993

Steven Spielberg

Berbagai jenis SQL Join

JOIN

Deskripsi

Diagram

Inner Join

Mengembalikan hanya record yang memiliki nilai yang cocok di kedua tabel

Inner Join

Left (Outer) Join

Mengembalikan semua record dari tabel kiri, dan record yang cocok dari tabel kanan

Left (outer) join

Right (Outer) Join

Mengembalikan semua record dari tabel kanan, dan record yang cocok dari tabel kiri

Right (outer) join

Full (Outer) Join

Mengembalikan semua record ketika ada kecocokan di tabel kiri atau kanan

Full (outer) join

Pada kueri contoh di atas, ‘films’ adalah tabel kiri dan ‘movieDirectors’ adalah tabel kanan. Jadi dengan INNER JOIN yang kita lakukan, kita hanya mendapatkan film yang ada di kedua tabel. Himpunan hasilnya adalah irisan dari kedua tabel.

SQL UNION

SQL JOIN memungkinkan Anda menggabungkan dua dataset secara berdampingan. Namun dengan SQL UNION Anda dapat menumpuk satu dataset di atas dataset lainnya. Operator UNION digunakan untuk menggabungkan himpunan hasil dari dua atau lebih pernyataan SELECT ketika “aturan” berikut terpenuhi: 

  1. Setiap pernyataan SELECT harus memiliki jumlah kolom yang sama.
  2. Kolom-kolom tersebut juga harus memiliki tipe data yang serupa.
  3. Kolom yang digunakan dalam pernyataan SELECT harus dalam urutan yang sama.

Sintaks: SELECT column_name(s) FROM table1 UNION ALL SELECT column_name(s) FROM table2;

Pertimbangkan tabel ‘movies_2000s’:

 

title

release_year

budget

gross

imdb_score

1

Inception

2010

160000000

292568851

8.8

2

The Trial of the Chicago 7 

2020

35000000

 

7.7

Sekarang jika kita gabungkan kedua tabel…

Kueri SQL: SELECT title FROM films UNION SELECT title FROM movies_2000s;

Hasil: 

 

title

1

The Godfather

2

The Dark Knight

3

The Godfather: Part II

4

Schindler's List

5

Pulp Fiction

6

The Lord of the Rings: The Return of the King

7

Fight Club

8

Inception

9

Star Wars: Episode V - The Empire Strikes Back

10

The Shawshank Redemption

12

The Trial of the Chicago 7 

Anda mungkin memperhatikan bahwa ‘Inception’ hanya muncul sekali dalam himpunan hasil. Ini karena UNION hanya memilih nilai yang unik; jika Anda menginginkan semua nilai, gunakan UNION ALL.

Kueri SQL Bersarang

SQL mampu melakukan hal-hal hebat dengan data. Kueri bersarang adalah alat lain dalam SQL yang membuatnya layak untuk dipelajari. Kueri bersarang tidak lain adalah kueri di dalam kueri (Seperti mimpi dalam Inception!)

Dengan kueri bersarang, Anda dapat melakukan operasi yang sangat rumit tetapi dalam beberapa langkah sambil menjaga keterbacaan dan pemahaman kode tetap terjaga.

Q15: Tentukan profitabilitas rata-rata film dalam tabel ‘films’.

Petunjuk: Anda menghitung profitabilitas sebelumnya, pada Q3. Sekarang Anda harus mengambil hasil dari kueri tersebut dan menerapkan fungsi AVG padanya.

Kueri SQL Bersarang: 

SELECT AVG(*) AS average_profit FROM 

(SELECT title, (gross - budget) AS movie_profit FROM films where gross > budget);

Kami menghapus nilai negatif dari ‘Fight Club’ dalam perhitungan pada kueri SQL bagian dalam dengan menambahkan gross > budget. 

Dalam kueri bersarang di atas, pertama kueri bagian dalam dijalankan lalu himpunan hasil ini digunakan sebagai tabel sementara untuk kueri bagian luar guna mengambil data. 

Kami tidak akan terlalu jauh membahas topik kueri SQL bersarang. Namun kami sangat merekomendasikan Anda mengikuti kursus Intermediate SQL DataCamp untuk menguasai kueri SQL. Anda akan bermain dengan European Soccer Database sambil mempelajari lebih lanjut tentang kueri bersarang. Anda juga akan mempelajari pernyataan CASE dan window functions—topik yang tidak sempat kami bahas dalam tutorial kueri SQL ini. 

Pemikiran akhir

Anda telah mempelajari banyak hal tentang kueri SQL dan berada pada posisi yang baik untuk memulai perjalanan pemecahan masalah dunia nyata menggunakan SQL. Dalam tutorial kueri SQL ini, Anda mempelajari apa itu kueri SQL dan cara menulis kueri SQL. 

Anda melihat sintaks kueri dan menjawab beberapa pertanyaan sepanjang jalan. Kita mulai dengan contoh kueri SQL sederhana menggunakan pernyataan SELECT - FROM - WHERE dan berlanjut ke kueri SQL yang sedikit lebih kompleks menggunakan join, union, dan kueri bersarang. 

Kami membahas banyak hal dalam tutorial ini, namun ini BUKAN daftar lengkap semua kemungkinan kueri SQL sederhana dan lanjutan—masih banyak lagi. Dan kami sangat merekomendasikan mengikuti track SQL Fundamentals DataCamp untuk mendapatkan pemahaman SQL yang lebih dalam dan komprehensif. 

Ingat, latihan adalah kunci menguasai keterampilan apa pun dan SQL bukan pengecualian! Latihan akan membawa keterampilan SQL Anda dari pemula menjadi mahir.

Jadi, ayo mulai dan selamat berkueri!

Topik
SQL
Data Science

Kursus untuk SQL

{count, plural, one {Kursus} other {Kursus}}

Menganalisis Data Bisnis di SQL

{hours} jam
48.5K
Pelajari cara menulis kueri SQL untuk menghitung metrik utama yang digunakan bisnis untuk mengukur kinerja.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

{count, plural, one {blog} other {blogs}}

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

{count, plural, one {blog} other {blogs}}

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

{count, plural, one {blog} other {blogs}}

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

{count, plural, one {blog} other {blogs}}

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya