1. Sebelum memulai
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 mem-build aplikasi berkualitas: persistensi. Meskipun belum pernah mendengar istilah tersebut, Anda mungkin pernah mengalami persistensi saat menggunakan aplikasi. Mulai dari menulis daftar belanja, men-scroll gambar dari beberapa tahun lalu di aplikasi foto, hingga 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 mem-build 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 Structured Query Language/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 klausulWHERE
,ORDER BY
,GROUP BY
, danLIMIT
- Cara menyisipkan, memperbarui, dan menghapus baris menggunakan SQL
Yang akan Anda butuhkan
- Komputer yang dilengkapi Android Studio.
2. Ringkasan database relasional
Apa yang dimaksud dengan database relasional?
Dalam komputasi, database hanyalah kumpulan data terstruktur yang dapat diakses dan ditulisi 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. Sebuah contoh yang pas adalah tabel "student" (siswa), "teacher" (pengajar), dan "course" (kursus). Satu kursus akan memiliki satu pengajar, tetapi seorang siswa mungkin memiliki banyak kursus. Database dapat mewakili hubungan antara tabel ini, itulah sebabnya Anda akan sering mendengar istilah database relasional.
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 karena 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 "sesuatu" yang dibuat dengan setiap entri dalam tabel.
Tanaman | ||
id | BILANGAN BULAT | |
spesies | TEKS (string) | |
nama | TEKS (string) | |
warna | TEKS (string) |
Kebun | ||
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 | Tanaman 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 spesies tanaman, atau apa pun yang Anda wakili dalam database, 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 "kebun" tempat Anda ingin mengaitkan kebun dengan semua spesies tanaman di dalamnya. Anda dapat menggunakan kunci utama dalam tabel tanaman untuk merujuk tanaman dari entri dalam tabel kebun 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, memperbarui, 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 (atau beberapa baris) yang ada dalam tabel. |
DELETE | Menghapus baris (atau beberapa 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.
3. Kode awal - Database Park
Kode awal yang akan Anda download sedikit berbeda dengan kode untuk codelab sebelumnya. Daripada mem-build menggunakan 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 alat Android Studio yang disebut Database Inspector.
Untuk mendapatkan kode codelab ini dan membukanya di Android Studio, lakukan hal berikut.
Mendapatkan kode
- Klik URL yang diberikan. Tindakan ini akan membuka halaman GitHub project di browser.
- Di halaman GitHub project, klik tombol Code yang akan menampilkan dialog.
- Di dialog, klik tombol Download ZIP untuk menyimpan project di komputer. Tunggu download selesai.
- Temukan file di komputer Anda (mungkin di folder Downloads).
- Klik dua kali pada file ZIP untuk mengekstraknya. Tindakan ini akan membuat folder baru yang berisi file project.
Membuka project di Android Studio
- Mulai Android Studio.
- Di jendela Welcome to Android Studio, klik Open an existing Android Studio project.
Catatan: Jika Android Studio sudah terbuka, pilih opsi menu File > New > Import Project.
- Di dialog Import Project, buka lokasi folder project yang telah diekstrak (kemungkinan ada di folder Downloads).
- Klik dua kali pada folder project tersebut.
- Tunggu Android Studio membuka project.
- Klik tombol Run untuk membangun dan menjalankan aplikasi. Pastikan aplikasi dibangun seperti yang diharapkan.
- 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.
- Jalankan aplikasi. Aplikasi akan menampilkan satu layar yang terlihat seperti ini.
- Di Android Studio, buka Database Inspector melalui View > Tool Windows > Database Inspector.
- 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.
4. Pernyataan SELECT dasar
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.
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 klausul (bagian pernyataan SQL) untuk lebih mempersempit hasil.
Salah satu klausul adalah LIMIT
yang memungkinkan Anda menetapkan batas jumlah baris yang ditampilkan. 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 klausul 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 100.000 ekar yang bukan recreation_area
. Dengan klausul WHERE
, Anda juga dapat menggunakan operator Boolean seperti AND
atau OR
untuk menambahkan lebih dari satu kondisi.
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.
5. Fungsi SQL umum
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, jadilah sespesifik mungkin agar dapat 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 masing-masing nilai terbesar atau terkecil.
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.
6. Mengurutkan dan mengelompokkan hasil kueri
Pada contoh sebelumnya, entri tertentu mungkin sulit ditemukan. Untungnya, Anda juga dapat mengurutkan hasil pernyataan SELECT
menggunakan klausul ORDER BY
. Anda menambahkan klausul ORDER BY
di akhir kueri setelah klausul 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 abjad.
SELECT name FROM park
ORDER BY name
Secara default, hasil diurutkan dalam urutan menaik, tetapi Anda dapat menambahkan kata kunci ASC
atau DESC
ke urutan menurut klausul untuk mengurutkan dalam urutan menaik atau menurun. Anda tidak perlu menentukan ASC
karena kueri pertama mencantumkan hasil dalam urutan menaik sebagai permulaan, tetapi jika Anda ingin mendapatkan hasil dalam urutan menurun, tambahkan kata kunci DESC
di akhir klausul ORDER BY
.
SELECT name FROM park
ORDER BY name DESC
Anda juga memiliki opsi untuk mengelompokkannya berdasarkan kolom agar hasil lebih mudah dibaca. Sebelum klausul ORDER BY
(jika ada), Anda dapat secara opsional menentukan klausul 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.
Soal 4: Tulis kueri SQL ke 5 nama taman teratas beserta jumlah pengunjungnya dengan jumlah pengunjung terbanyak dalam urutan menurun.
7. Menyisipkan dan menghapus baris
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, memperbarui, 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, berikan nilai untuk setiap kolom (secara berurutan) 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 memperbarui baris setelah disisipkan.
INSERT INTO park
VALUES (null, 'Googleplex', 'Mountain View', 12, null, 0, '')
Perhatikan juga bahwa Anda meneruskan null
untuk ID-nya. 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 klausul 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 klausul 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 ada diperbarui, dan beberapa kolom lain diisi (kolom ini sebelumnya memiliki nilai, tetapi stringnya kosong, ""
). Anda dapat memperbarui beberapa (atau semua) kolom sekaligus dengan pernyataan UPDATE
.
UPDATE park
SET area_acres = 46,
established = 1088640000,
type = 'office'
WHERE name = 'Googleplex'
Lihat pembaruan 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
, gunakan klausul WHERE
untuk memberikan kriteria bagi baris yang ingin dihapus. Anda dapat menghapus beberapa baris dengan satu perintah karena klausul 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'
Dan seperti itulah cara untuk menyisipkan, memperbarui, 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, memperbarui, dan menghapus data akan dibahas secara mendetail dalam Jalur 2.
8. Solusi untuk latihan
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
Soal 1: Tulis kueri SQL untuk mendapatkan nama semua taman yang memiliki jumlah pengunjung kurang dari 1.000.000.
Soal ini meminta nama taman (satu kolom) dengan persyaratan jumlah pengunjung kurang dari 1.000.000 orang, yang dapat ditentukan dalam klausul WHERE
.
SELECT name FROM park
WHERE park_visitors < 1000000
Soal 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 fungsi COUNT()
.
SELECT COUNT(DISTINCT city) FROM park
Soal 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 klausul WHERE
untuk menentukan hanya taman yang berlokasi di San Fransisco.
SELECT SUM(park_visitors) FROM park
WHERE city = "San Francisco"
Soal 4: Tulis kueri SQL ke 5 taman teratas (hanya nama) yang memiliki jumlah pengunjung terbanyak dalam urutan menurun.
Kueri tersebut harus mendapatkan kolom name dan park_visitors. Hasilnya diurutkan di kolom park_visitors
dalam urutan menurun menggunakan klausul ORDER BY
. Klausul 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
9. Selamat
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 klausul dalam pernyataan
SELECT
termasukWHERE
,GROUP BY
,ORDER BY
, danLIMIT
agar kueri Anda lebih spesifik. - Anda dapat menggunakan fungsi agregat untuk menggabungkan data dari beberapa baris menjadi satu kolom.
- Anda dapat menambahkan, memperbarui, dan menghapus baris dalam database menggunakan pernyataan SQL masing-masing
INSERT
,UPDATE
, danDELETE
.