Dasar-dasar SQL

Sebelumnya, Anda telah mempelajari cara menggabungkan data jaringan ke dalam aplikasi dan menggunakan coroutine untuk menangani tugas serentak. Dalam jalur ini, Anda akan mempelajari keterampilan dasar pengembangan Android lainnya yang akan memungkinkan Anda membuat aplikasi berkualitas: persistensi. Meskipun belum pernah mendengar istilah tersebut, Anda mungkin pernah mengalami persistensi saat menggunakan aplikasi. Dari menulis daftar belanja, men-scroll gambar dari beberapa tahun lalu di aplikasi foto, menjeda, dan melanjutkan game, aplikasi menggunakan persistensi untuk memberikan pengalaman pengguna yang lancar. Meskipun mudah bagi pengguna untuk menganggapnya sebagai fitur biasa, mempertahankan data merupakan keterampilan penting bagi developer dalam membuat aplikasi berkualitas tinggi.

Nanti di unit ini, Anda akan mempelajari persistensi di Android lebih lanjut, dan mempelajari library yang disebut Room yang memungkinkan aplikasi membaca dan menulis dari database. Namun, sebelum memulai menggunakan persistensi di Android, Anda harus telah memahami dasar-dasar database relasional, serta cara membaca dan memanipulasi data dengan sesuatu yang disebut SQL (singkatan dari Bahasa Kueri Terstruktur). Jika Anda sudah memahami konsep ini, pertimbangkan pelajaran ini sebagai ulasan untuk memastikan konsep tersebut baru saat Anda mempelajari Room. Jika tidak, tidak apa-apa. Saat ini kami tidak berharap Anda mengetahui apa pun tentang database. Di akhir codelab ini, Anda akan memiliki semua dasar-dasar yang diperlukan untuk mulai mempelajari cara menggunakan database di aplikasi Android.

Prasyarat

  • Menavigasi sebuah project di Android Studio.

Yang akan Anda pelajari

  • Struktur database relasional: tabel, kolom, dan baris
  • Pernyataan SELECT termasuk klausa WHERE, ORDER BY, GROUP BY, dan LIMIT
  • Cara menyisipkan, mengupdate, dan menghapus baris menggunakan SQL

Yang akan Anda butuhkan

  • Komputer yang dilengkapi Android Studio.

Apa yang dimaksud dengan database relasional?

Dalam komputasi, database hanyalah kumpulan data terstruktur yang dapat diakses dan ditulis secara elektronik. Database dapat menyimpan informasi yang sama yang dapat Anda wakili dalam aplikasi menggunakan Kotlin. Di perangkat seluler, database biasanya digunakan untuk menyimpan data dari aplikasi yang sedang berjalan sehingga bisa diakses saat aplikasi dibuka lagi tanpa mengambil data dari sumber lain, seperti internet. Database dikenal sebagai persistensi data.

Saat membahas persistensi data, Anda akan sering mendengar istilah "database relasional". Database relasional adalah jenis database umum yang mengatur data ke dalam tabel, kolom, dan baris. Saat menulis kode Kotlin, Anda membuat class yang mewakili objek. Tabel dalam database relasional berfungsi dengan cara yang sama. Selain mewakili data, tabel juga dapat mereferensikan tabel lain sehingga Anda dapat memiliki hubungan di antara tabel tersebut. Contoh klasik adalah tabel "siswa", "pengajar", dan "kursus". Satu kursus akan memiliki satu pengajar, tetapi seorang siswa mungkin memiliki banyak kursus. Database dapat mewakili hubungan antara tabel ini, itulah sebabnya Anda sering mendengar istilah database relasional.

ef61dd2663e4da82.png

Hubungan dunia nyata dapat diwakili dengan hubungan antartabel.

Tabel, kolom, dan baris

Menentukan tabel, atau data yang Anda wakili, hanyalah langkah pertama dalam membuat database relasional. Anda juga harus memikirkan bagian informasi tertentu yang disimpan di setiap tabel. Properti tertentu diwakili oleh kolom. Kolom terdiri dari nama dan jenis data. Anda sudah terbiasa dengan properti untuk menggunakan class di Kotlin. Anda dapat memikirkan tabel SQL dengan cara yang sama. Tabel mirip dengan definisi class yang menjelaskan jenis "sesuatu" yang ingin Anda wakili. Kolom adalah properti spesifik dari "objek" yang dibuat dengan setiap entri dalam tabel.

PlantidINTEGERspeciesTEXT (string)nameTEXT (string)colorTEXT (string)

GardenidINTEGERnameTEXT (string)lengthINTEGERwidthINTEGER

Tanaman

id

BILANGAN BULAT

spesies

TEKS (string)

nama

TEKS (string)

warna

TEKS (string)

Taman

id

BILANGAN BULAT

nama

TEKS (string)

panjang

BILANGAN BULAT

lebar

BILANGAN BULAT

Entri tabel individu disebut baris. Entri tabel ini mirip seperti instance class di Kotlin. Setiap baris memiliki data yang sesuai dengan setiap kolom. Tabel menyediakan template, tetapi baris menentukan data sebenarnya yang disimpan di tabel.

id

spesies

nama

warna

1

Camellia Sinensis

Pabrik Teh

hijau

2

Echinacea Purpurea

Bunga Cone ungu

ungu

3

Ferula Foetida

Asafoetida

hijau

Kunci Utama

Dalam contoh di atas, perhatikan bagaimana ada kolom yang tersedia untuk properti id. Meskipun kemungkinannya adalah spesies tanaman atau apa pun yang Anda wakili dalam database, kolom mungkin tidak memiliki ID yang dapat dengan mudah diberi nomor sehingga baris dalam tabel data harus memiliki semacam ID unik. Ini biasanya dikenal sebagai kunci utama dan bersifat unik untuk setiap baris dalam tabel. Kunci utama ini berguna jika Anda perlu mereferensikan baris dalam satu tabel data dari tabel lain. Misalnya, ada tabel lain yang disebut "taman" tempat Anda ingin mengaitkan taman dengan semua spesies tanaman di dalamnya. Anda dapat menggunakan kunci utama dalam tabel tanaman untuk merujuk tanaman dari entri dalam tabel taman atau tabel lainnya dalam database.

Kunci utama memungkinkan adanya hubungan dalam database relasional. Meskipun dalam kursus ini Anda tidak akan menggunakan database dengan lebih dari satu tabel, tidak ada salahnya untuk memiliki ID unik karena akan membantu membuat kueri, mengupdate, dan menghapus item yang ada dalam tabel.

Jenis Data

Sama seperti dengan menentukan properti class Kotlin, kolom dalam database dapat menjadi salah satu dari banyak jenis data yang mungkin. Kolom dapat merepresentasikan karakter, string, angka (dengan atau tanpa desimal), atau data biner. Data lain seperti tanggal dan waktu dapat direpresentasikan secara numerik atau sebagai string, bergantung pada kasus penggunaan. Saat menggunakan Room, Anda akan lebih banyak menggunakan jenis Kotlin, tetapi jenis ini memetakan ke jenis SQL di balik layar.

SQL

Saat mengakses database relasional, baik menggunakan library-nya sendiri atau library seperti Room, Anda memerlukan SQL.

Apa itu SQL? SQL (terkadang diucapkan "sequel") adalah singkatan dari Structured Query Language (Bahasa Kueri Terstruktur), dan memungkinkan Anda membaca serta memanipulasi data dalam database relasional. Jangan khawatir karena Anda tidak perlu mempelajari bahasa pemrograman yang baru untuk mengimplementasikan persistensi dalam aplikasi. Tidak seperti bahasa pemrograman seperti Kotlin, SQL hanya terdiri dari beberapa jenis pernyataan untuk membaca dan menulis dari database. Setelah mempelajari format dasar masing-masing, Anda cukup mengisi kolom kosong untuk informasi spesifik yang Anda baca atau tulis dari database.

Berikut adalah pernyataan SQL yang paling umum dan merupakan pernyataan yang akan Anda gunakan.

SELECT

Mendapatkan informasi spesifik dari tabel data dan hasilnya dapat difilter serta diurutkan dengan berbagai cara.

INSERT

Menambahkan baris baru ke tabel.

UPDATE

Memperbarui baris yang ada (atau baris) dalam tabel.

DELETE

Menghapus baris (atau baris) yang ada dari tabel.

Sekarang, sebelum dapat melakukan apa pun di SQL, Anda memerlukan database. Di layar berikutnya, Anda akan menyiapkan project contoh yang menyertakan database untuk mempraktikkan kueri SQL.

Kode awal yang akan Anda download akan sedikit berbeda dengan kode untuk codelab sebelumnya. Daripada mem-build project yang sudah ada, kami akan menyediakan project Android Studio sederhana dengan kemampuan membuat database yang bisa Anda gunakan untuk mempraktikkan kueri SQL. Setelah menjalankan aplikasi satu kali, Anda dapat mengakses database menggunakan fitur Android Studio yang disebut Database Inspector.

Untuk mendapatkan kode codelab ini dan membukanya di Android Studio, lakukan hal berikut.

Mendapatkan kode

  1. Klik URL yang diberikan. Tindakan ini akan membuka halaman GitHub project di browser.
  2. Di halaman GitHub project, klik tombol Code yang akan menampilkan dialog.

5b0a76c50478a73f.png

  1. Di dialog, klik tombol Download ZIP untuk menyimpan project di komputer. Tunggu download selesai.
  2. Temukan file di komputer Anda (mungkin di folder Downloads).
  3. Klik dua kali pada file ZIP untuk mengekstraknya. Tindakan ini akan membuat folder baru yang berisi file project.

Membuka project di Android Studio

  1. Mulai Android Studio.
  2. Di jendela Welcome to Android Studio, klik Open an existing Android Studio project.

36cc44fcf0f89a1d.png

Catatan: Jika Android Studio sudah terbuka, pilih opsi menu File > New > Import Project.

21f3eec988dcfbe9.png

  1. Di dialog Import Project, buka lokasi folder project yang telah diekstrak (kemungkinan ada di folder Downloads).
  2. Klik dua kali pada folder project tersebut.
  3. Tunggu Android Studio membuka project.
  4. Klik tombol Run 11c34fc5e516fb1c.png untuk mem-build dan menjalankan aplikasi. Pastikan aplikasi di-build seperti yang diharapkan.
  5. Cari file project di jendela alat Project untuk melihat cara aplikasi disiapkan.

Sebelum melanjutkan ke bagian berikutnya, selesaikan langkah-langkah berikut untuk memastikan Anda sudah menyiapkan project awal.

  1. Jalankan aplikasi. Aplikasi akan menampilkan satu layar yang terlihat seperti ini.

144a660216180865.png

  1. Di Android Studio, buka Database Inspector melalui View > Tool Windows > Database Inspector.
  2. Anda akan melihat tab baru di bagian bawah berlabel "Database Inspector". Mungkin pemuatan akan memerlukan waktu beberapa detik, tetapi Anda akan melihat daftar di sebelah kiri dengan tabel data yang dapat Anda pilih untuk menjalankan kueri.

af7dd66d193c7d55.png

Untuk latihan berikut, Anda akan menjalankan kueri di Database Inspector. Pastikan Anda memilih tabel yang benar di panel kiri (park), klik tombol Open New Query Tab dan Anda akan melihat kotak teks tempat mengetik perintah SQL.

ce1c1d86d460427d.png

Pernyataan SQL adalah perintah, semacam baris kode, yang mengakses (membaca atau menulis) database. Hal paling dasar yang bisa Anda lakukan di SQL adalah mendapatkan semua data dalam tabel. Untuk melakukannya, Anda mulai dengan kata SELECT yang artinya Anda ingin membaca data. Kemudian, Anda menambahkan sebuah bintang (*). Ini adalah tempat Anda menentukan kolom yang ingin dipilih, dan menggunakan bintang adalah cara pintas untuk memilih semua kolom. Kemudian, gunakan kata kunci FROM diikuti dengan nama tabel data, park. Jalankan perintah berikut di Database Inspector, dan amati seluruh tabel dengan semua baris dan kolom.

SELECT * FROM park

Anda dapat menentukan nama kolom jika hanya ingin memilih kolom tertentu, bukan semua kolom dalam tabel data.

SELECT city FROM park

Anda juga dapat memilih beberapa kolom tertentu, masing-masing dipisahkan dengan koma.

SELECT name, established, city FROM park

Terkadang Anda tidak harus memilih semua baris dalam database. Anda dapat menambahkan klausa, bagian pernyataan SQL, untuk lebih mempersempit hasil.

Satu klausa adalah LIMIT yang memungkinkan Anda menetapkan batas jumlah baris yang dikembalikan. Jadi, daripada menampilkan 23 hasil, kueri berikut hanya menampilkan lima hasil yang pertama.

SELECT name FROM park
LIMIT 5

Salah satu klausul yang paling umum dan berguna adalah klausul WHERE. Dengan klausa WHERE, Anda dapat memfilter hasil berdasarkan satu atau beberapa kolom.

SELECT name FROM park
WHERE type = "national_park"

Ada juga operator "tidak sama dengan" (!=). Kueri berikut mencantumkan semua taman di atas lahan seluas 40.000 hektar yang bukan recreation_area. Dengan WHERE klausa, Anda juga dapat menggunakan operator Boolean seperti AND atau OR untuk menambahkan lebih dari satu ketentuan.

SELECT name FROM park
WHERE type != "recreation_area"
AND area_acres > 100000

Praktik

Kueri SQL dapat berguna untuk menjawab berbagai pertanyaan tentang data Anda, dan cara berlatih terbaik adalah dengan menulis kueri Anda sendiri. Selama mempraktikkan beberapa langkah berikutnya, Anda akan memiliki kesempatan untuk menulis kueri untuk menjawab pertanyaan tertentu. Pastikan Anda telah mengujinya di Database Inspector sebelum melanjutkan.

Semua latihan akan menambah pengetahuan kumulatif dari semua bagian sebelumnya, dan akan tersedia panduan di akhir codelab untuk memeriksa jawaban Anda.

Kueri pertama yang Anda tulis hanya menampilkan setiap baris dalam database.

SELECT * FROM park

Namun, mungkin Anda tidak ingin menampilkan daftar hasil yang panjang. SQL juga menawarkan fungsi agregat yang dapat membantu Anda mereduksi data menjadi satu nilai yang bermakna. Misalnya, Anda ingin mengetahui jumlah baris dalam tabel park. Daripada menggunakan SELECT * ..., gunakan fungsi COUNT() dan masukkan * (untuk semua baris) atau nama kolom, dan kueri akan menampilkan jumlah semua baris.

SELECT COUNT(*) FROM park

Fungsi agregat yang berguna lainnya adalah fungsi SUM(), untuk menambahkan nilai dalam kolom. Kueri ini hanya memfilter taman nasional (karena ini adalah satu-satunya entri dengan kolom park_visitors yang bukan null), dan menambahkan jumlah total pengunjung untuk setiap taman.

SELECT SUM(park_visitors) FROM park
WHERE type = "national_park"

Perlu diperhatikan bahwa Anda masih dapat menggunakan SUM() di nilai null, tetapi nilai akan diperlakukan sebagai nol. Kueri berikut akan menampilkan hasil yang sama seperti di atas. Akan tetapi, Anda sebaiknya menghindari bug saat mulai menggunakan SQL di aplikasi.

SELECT SUM(park_visitors) FROM park

Selain menggabungkan nilai, tersedia fungsi berguna lainnya, seperti MAX() dan MIN() untuk mendapatkan nilai terbesar atau terkecil masing-masing.

SELECT MAX(area_acres) FROM park
WHERE type = 'national_park'

Mendapatkan nilai DISTINCT

Anda mungkin melihat bahwa untuk beberapa baris, kolom tersebut memiliki nilai yang sama dengan baris lainnya. Misalnya, kolom jenis hanya memiliki sejumlah kemungkinan nilai yang terbatas. Anda dapat menghapus nilai duplikat dari hasil kueri menggunakan kata kunci DISTINCT. Misalnya, untuk mendapatkan semua nilai unik untuk kolom jenis, Anda dapat menggunakan kueri berikut.

SELECT DISTINCT type FROM park

Anda juga dapat menggunakan DISTINCT dalam fungsi agregat sehingga daripada mencantumkan type unik dan menghitungnya sendiri, Anda dapat menampilkan jumlahnya.

SELECT COUNT(DISTINCT type) FROM park

Praktik

Luangkan waktu untuk menerapkan pengetahuan yang telah Anda pelajari dan lihat apakah Anda dapat menulis kueri berikut. Pastikan Anda menggunakan Database Inspector untuk memastikan bahwa kode Anda berfungsi.

Pada contoh sebelumnya, entri tertentu mungkin sulit ditemukan. Untungnya, Anda juga dapat mengurutkan hasil pernyataan SELECT menggunakan klausa ORDER BY. Anda menambahkan klausa ORDER BY di akhir kueri setelah klausa WHERE (jika ada) dan cukup tentukan nama kolom yang ingin Anda urutkan. Contoh berikut mengambil nama setiap taman dalam database, tetapi hasilnya diurutkan sesuai urutan alfabet.

SELECT name FROM park
ORDER BY name

Secara default, hasil diurutkan dalam urutan naik, tetapi Anda dapat menambahkan kata kunci ASC atau DESC ke urutan menurut klausa untuk mengurutkan dalam urutan naik atau turun. Anda tidak perlu menentukan ASC karena kueri pertama mencantumkan hasil dalam urutan naik untuk memulai, tetapi jika Anda ingin mendapatkan hasil dalam urutan turun, tambahkan kata kunci DESC di akhir klausa ORDER BY.

SELECT name FROM park
ORDER BY name DESC

Anda juga memiliki opsi untuk mengelompokkannya berdasarkan kolom agar hasil lebih mudah dibaca. Sebelum klausa ORDER BY (jika ada), Anda dapat secara opsional menentukan klausa GROUP BY dan kolom. Tindakan ini akan memisahkan hasil ke dalam subset khusus untuk kolom di GROUP BY, dan untuk setiap kolom, hasil akan difilter dan diurutkan sesuai dengan kueri lainnya.

SELECT type, name FROM park
GROUP BY type
ORDER BY name

Cara ini idealnya dipahami menggunakan contoh. Daripada menghitung semua taman dalam database, Anda dapat melihat berapa banyak taman dari setiap jenis yang ada dan mendapatkan jumlah terpisah untuk setiap taman.

SELECT type, COUNT(*) FROM park
GROUP BY type
ORDER BY type

Praktik

Luangkan waktu untuk menerapkan pengetahuan yang telah Anda pelajari dan lihat apakah Anda dapat menulis kueri berikut. Pastikan Anda menggunakan Database Inspector untuk memastikan bahwa kode Anda berfungsi.

Masalah 4: Tulis kueri SQL ke 5 nama taman teratas beserta jumlah pengunjungnya dengan jumlah pengunjung terbanyak dalam urutan turun.

Anda harus dapat menulis data agar dapat sepenuhnya memanfaatkan data yang ada di Android dengan Room. Selain membuat kueri database, ada juga pernyataan SQL untuk menyisipkan, mengupdate, dan menghapus baris. Anda akan memerlukan pengetahuan dasar mengenai hal ini saat mempelajari cara menulis data dengan Room di Jalur 2 nanti.

Pernyataan INSERT

Untuk menambahkan baris baru, gunakan pernyataan INSERT. Pernyataan INSERT diikuti dengan kata kunci INTO dan nama tabel tempat Anda ingin menambahkan baris. Setelah kata kunci VALUES, Anda memberikan nilai untuk setiap kolom (dalam urutan) dalam tanda kurung, dengan setiap kolom dipisahkan dengan koma. Format pernyataan INSERT adalah sebagai berikut.

INSERT INTO table_name
VALUES (column1, column2, ...)

Untuk menambahkan baris ke tabel park, pernyataan INSERT akan terlihat seperti ini. Nilai cocok dengan urutan kolom yang ditentukan untuk tabel park. Perhatikan bahwa beberapa data tidak ditentukan. Tidak apa-apa untuk saat ini karena Anda selalu dapat mengupdate baris setelah disisipkan.

INSERT INTO park
VALUES (null, 'Googleplex', 'Mountain View', 12, null, 0, '')

Perhatikan juga bahwa Anda meneruskan null untuk ID. Meskipun Anda dapat memberikan nomor tertentu, cara ini tidak praktis karena aplikasi harus melacak ID terbaru untuk memastikan tidak ada duplikat. Namun, Anda dapat mengonfigurasi database agar kunci utama bertambah secara otomatis seperti yang telah dilakukan di sini. Dengan begitu, Anda dapat meneruskan null, dan ID berikutnya dipilih secara otomatis.

Verifikasi bahwa entri telah dibuat, menggunakan klausa WHERE untuk menentukan taman bernama "Googleplex".

SELECT * FROM park
WHERE name = 'Googleplex'

Pernyataan UPDATE

Setelah baris dibuat, Anda dapat mengubah kontennya kapan saja. Anda dapat melakukannya menggunakan pernyataan UPDATE. Seperti semua pernyataan SQL lain yang telah Anda lihat, pertama-tama Anda harus menentukan nama tabel. Dalam klausa SET, cukup tetapkan setiap kolom yang ingin diubah ke nilai baru.

UPDATE table_name
SET column1 = ...,
column2 = ...,
...
WHERE column_name = ...
...

Untuk entri Googleplex, satu properti yang sudah ada diupdate, dan beberapa kolom lain diisi (kolom ini sebelumnya memiliki nilai, tetapi stringnya kosong, ""). Anda dapat mengupdate beberapa (atau semua) kolom sekaligus dengan pernyataan UPDATE.

UPDATE park
SET area_acres = 46,
established = 1088640000,
type = 'office'
WHERE name = 'Googleplex'

Lihat update yang tercermin dalam hasil kueri

SELECT * FROM park
WHERE name = 'Googleplex'

Pernyataan DELETE

Terakhir, Anda juga dapat menggunakan perintah SQL untuk menghapus baris dari database. Sekali lagi, tentukan nama tabel, dan seperti yang Anda lakukan dengan pernyataan SELECT, Anda menggunakan klausa WHERE untuk memberikan kriteria untuk baris yang ingin Anda hapus. Anda dapat menghapus beberapa baris dengan satu perintah karena klausa WHERE dapat mencocokkan beberapa baris.

DELETE FROM table_name
WHERE <column_name> = ...

Karena Googleplex bukan taman nasional, coba gunakan pernyataan DELETE untuk menghapus entri ini dari database.

DELETE FROM park
WHERE name = 'Googleplex'

Verifikasi untuk memastikan baris dihapus menggunakan pernyataan SELECT. Kueri seharusnya tidak menampilkan hasil yang artinya semua baris dengan nama "Googleplex" berhasil dihapus.

SELECT * FROM park
WHERE name = 'Googleplex'

Anda hanya perlu menyisipkan, mengupdate, dan menghapus data. Anda hanya perlu mengetahui format perintah SQL yang ingin Anda lakukan, dan menentukan nilai yang cocok dengan kolom dalam database. Saat kami memperkenalkan Room di codelab berikutnya, fokus utama Anda adalah membaca dari database. Menyisipkan, mengupdate, dan menghapus data akan dibahas secara mendetail dalam Jalur 2.

Semoga latihan praktik ini dapat membantu memperkuat pemahaman Anda tentang konsep SQL. Jika Anda tidak dapat mengaksesnya atau ingin memeriksa jawaban Anda, silakan lihat jawaban kami di bawah

Masalah 1: Tulis kueri SQL untuk mendapatkan nama semua taman yang memiliki jumlah pengunjung kurang dari 1.000.000.

Masalah ini meminta nama taman (satu kolom) dengan persyaratan jumlah pengunjung kurang dari 1.000.000 orang, yang dapat ditentukan dalam klausa WHERE.

SELECT name FROM park
WHERE park_visitors < 1000000

Masalah 2: Tulis kueri SQL untuk mendapatkan jumlah kota yang berbeda di tabel park

Jumlah total kolom dapat dihitung menggunakan fungsi COUNT(), tetapi karena Anda hanya ingin kota yang berbeda (karena beberapa kota memiliki beberapa taman), Anda dapat menggunakan kata kunci DISTINCT sebelum nama kolom di COUNT().

SELECT COUNT(DISTINCT city) FROM park

Masalah 3: Tulis kueri SQL untuk mendapatkan jumlah total pengunjung taman di San Francisco.

Jumlah total pengunjung dapat dihitung menggunakan fungsi SUM(). Selain itu, Anda juga memerlukan klausa WHERE untuk menentukan hanya taman yang berlokasi di Jakarta.

SELECT SUM(park_visitors) FROM park
WHERE city = "San Francisco"

Masalah 4: Tulis kueri SQL ke 5 taman teratas (hanya nama) yang memiliki jumlah pengunjung terbanyak dalam urutan turun.

Kueri harus mendapatkan kolom nama dan kolom pengunjung. Hasilnya diurutkan di kolom park_visitors dalam urutan turun menggunakan klausa ORDER BY. Klausa GROUP BY tidak diperlukan karena Anda tidak ingin mengelompokkan hasil di kolom lain dan mengurutkannya dalam grup tersebut.

SELECT name, park_visitors FROM park
ORDER BY park_visitors DESC
LIMIT 5

Rangkuman:

  • Database relasional memungkinkan Anda menyimpan data yang telah disusun ke dalam tabel, kolom, dan baris.
  • Anda dapat mengambil data dari database menggunakan pernyataan SQL SELECT.
  • Anda dapat menggunakan berbagai klausa dalam pernyataan SELECT termasuk WHERE, GROUP BY, ORDER BY, dan LIMIT agar kueri Anda lebih spesifik.
  • Anda dapat menggunakan fungsi gabungan untuk menggabungkan data dari beberapa baris menjadi satu kolom.
  • Anda dapat menambahkan, mengupdate, dan menghapus baris dalam database menggunakan pernyataan SQL INSERT, UPDATE, dan DELETE masing-masing.

Pelajari lebih lanjut