MySQL adalah sebuah sistem manajemen basis data relasional yang sering digunakan untuk mengelola data dalam sebuah aplikasi. Salah satu perintah dasar dalam MySQL adalah perintah SELECT, yang digunakan untuk menampilkan data dari sebuah tabel.
Tabel "provinces" memiliki kolom-kolom "id", "name", "created_by", "updated_by", "owned_by", "created_at", dan "updated_at". Berikut ini adalah contoh data dari tabel tersebut:
id | name | created_by | updated_by | owned_by | created_at | updated_at |
---|---|---|---|---|---|---|
1 | Aceh | admin | admin | admin | 2021-01-01 00:00:00 | 2021-01-01 00:00:00 |
2 | Bali | admin | admin | admin | 2021-01-02 00:00:00 | 2021-01-02 00:00:00 |
3 | Bangka Belit | admin | admin | admin | 2021-01-03 00:00:00 | 2021-01-03 00:00:00 |
4 | Banten | admin | admin | admin | 2021-01-04 00:00:00 | 2021-01-04 00:00:00 |
5 | Bengkulu | admin | admin | admin | 2021-01-05 00:00:00 | 2021-01-05 00:00:00 |
6 | Gorontalo | admin | admin | admin | 2021-01-06 00:00:00 | 2021-01-06 00:00:00 |
7 | Jakarta | admin | admin | admin | 2021-01-07 00:00:00 | 2021-01-07 00:00:00 |
8 | Jambi | admin | admin | admin | 2021-01-08 00:00:00 | 2021-01-08 00:00:00 |
9 | Jawa Barat | admin | admin | admin | 2021-01-09 00:00:00 | 2021-01-09 00:00:00 |
10 | Jawa Tengah | admin | admin | admin | 2021-01-10 00:00:00 | 2021-01-10 00:00:00 |
Berikut ini adalah beberapa variasi perintah SELECT yang dapat digunakan untuk memilih data dari tabel "provinces":
Memilih semua data dari tabel "provinces"
SELECT * FROM provinces;
Perintah tersebut akan menampilkan semua data dari tabel "provinces", yaitu:
| id | name | created_by | updated_by | owned_by | created_at | updated_at | |----|--------------|------------|------------|----------|---------------------|---------------------| | 1 | Aceh | admin | admin | admin | 2021-01-01 00:00
Memilih kolom tertentu dari tabel "provinces"
Jika hanya ingin memilih kolom-kolom tertentu dari tabel "provinces", dapat digunakan perintah SELECT dengan menyebutkan nama kolom-kolom yang diinginkan, seperti berikut:
SELECT id, name, created_at FROM provinces;
Perintah tersebut akan menampilkan data dari kolom "id", "name", dan "created_at" saja dari tabel "provinces", yaitu:
| id | name | created_at | |----|--------------|---------------------| | 1 | Aceh | 2021-01-01 00:00:00 | | 2 | Bali | 2021-01-02 00:00:00 | | 3 | Bangka Belit | 2021-01-03 00:00:00 | | 4 | Banten | 2021-01-04 00:00:00 | | 5 | Bengkulu | 2021-01-05 00:00:00 | | 6 | Gorontalo | 2021-01-06 00:00:00 | | 7 | Jakarta | 2021-01-07 00:00:00 | | 8 | Jambi | 2021-01-08 00:00:00 | | 9 | Jawa Barat | 2021-01-09 00:00:00 | | 10 | Jawa Tengah | 2021-01-10 00:00:00 |
Memilih data dengan kondisi tertentu
Jika hanya ingin memilih data dengan kondisi tertentu, dapat digunakan perintah SELECT dengan menambahkan klausa WHERE yang berisi kondisi yang diinginkan, seperti berikut:
SELECT * FROM provinces WHERE id > 5;
Perintah tersebut akan menampilkan data dari tabel "provinces" yang memiliki nilai kolom "id" lebih besar dari 5, yaitu:
| id | name | created_by | updated_by | owned_by | created_at | updated_at | |----|-------------|------------|------------|----------|---------------------|---------------------| | 6 | Gorontalo | admin | admin | admin | 2021-01-06 00:00:00 | 2021-01-06 00:00:00 | | 7 | Jakarta | admin | admin | admin | 2021-01-07 00:00:00 | 2021-01-07 00:00:00 | | 8 | Jambi | admin | admin | admin | 2021-01-08 00:00:00 | 2021-01-08 00:00:00 | | 9 | Jawa Barat | admin | admin | admin | 2021-01-09 00:00:00 | 2021-01-09 00:00:00 | | 10 | Jawa Tengah | admin | admin | admin | 2021-01-10 00:00:00 | 2021-01-10 00:00:00 |
Memilih data dengan kondisi dan urutan tertentu
SELECT * FROM provinces WHERE owned_by='Indonesia' ORDER BY name ASC;
Perintah tersebut akan menampilkan data dari tabel "provinces" yang memiliki nilai kolom "owned_by" sama dengan "Indonesia" dan diurutkan berdasarkan kolom "name" secara ascending, yaitu:
| id | name | created_by | updated_by | owned_by | created_at | updated_at |
|----|-------------|------------|------------|--------------|---------------------|---------------------|
| 1 | Aceh | admin | admin | Indonesia | 2021-01-01 00:00:00 | 2021-01-01 00:00:00 |
| 2 | Bali | admin | admin | Indonesia | 2021-01-02 00:00:00 | 2021-01-02 00:00:00 |
| 4 | Banten | admin | admin | Indonesia | 2021-01-04 00:00:00 | 2021-01-04 00:00:00 |
| 5 | Bengkulu | admin | admin | Indonesia | 2021-01-05 00:00:00 | 2021-01-05 00:00:00 |
| 9 | Jawa Barat | admin | admin | Indonesia | 2021-01-09 00:00:00 | 2021-01-09 00:00:00 |
| 10 | Jawa Tengah | admin | admin | Indonesia | 2021-01-10 00:00:00 | 2021-01-10 00:00:00 |
Menampilkan data dengan jumlah terbatas
Jika hanya ingin menampilkan sebagian data dengan jumlah tertentu dari tabel "provinces", dapat digunakan perintah SELECT dengan menambahkan klausa LIMIT, seperti berikut:
SELECT * FROM provinces LIMIT 5;
Perintah tersebut akan menampilkan data dari tabel "provinces" dengan jumlah terbatas sebanyak 5 baris, yaitu:
| id | name | created_by | updated_by | owned_by | created_at | updated_at |
|----|--------------|------------|------------|--------------|---------------------|---------------------|
| 1 | Aceh | admin | admin | Indonesia | 2021-01-01 00:00:00 | 2021-01-01 00:00:00 |
| 2 | Bali | admin | admin | Indonesia | 2021-01-02 00:00:00 | 2021-01-02 00:00:00 |
| 3 | Bangka Belit | admin | admin | Indonesia | 2021-01-03 00:00:00 | 2021-01-03 00:00:00 |
| 4 | Banten | admin | admin | Indonesia | 2021-01-04 00:00:00 | 2021-01-04 00:00:00 |
| 5 | Bengkulu | admin | admin | Indonesia | 2021-01-05 00:00:00 | 2021-01-05 00:00:00
Menampilkan data dengan pengelompokan (GROUP BY)
Jika ingin mengelompokkan data berdasarkan nilai tertentu dari salah satu kolom, dapat digunakan perintah SELECT dengan menambahkan klausa GROUP BY, seperti berikut:
SELECT owned_by, COUNT(*) as total FROM provinces GROUP BY owned_by;
Perintah tersebut akan menampilkan data dari tabel "provinces" yang dikelompokkan berdasarkan nilai kolom "owned_by" dan menghitung jumlah data pada setiap kelompok, yaitu:
| owned_by | total | |--------------|-------| | Indonesia | 10 | | Malaysia | 5 |
Menampilkan data dengan penggabungan (JOIN)
Jika ingin menggabungkan data dari dua tabel atau lebih, dapat digunakan perintah SELECT dengan menambahkan klausa JOIN, seperti berikut:
SELECT provinces.name, cities.name FROM provinces JOIN cities ON provinces.id=cities.province_id;
Perintah tersebut akan menggabungkan data dari tabel "provinces" dan "cities" berdasarkan nilai kolom "id" pada tabel "provinces" dan kolom "province_id" pada tabel "cities", kemudian menampilkan nilai kolom "name" dari kedua tabel, yaitu:
| name | name | |-------------|------------------| | Aceh | Banda Aceh | | Bali | Denpasar | | Bangka Belit | Pangkal Pinang | | Banten | Serang | | Bengkulu | Bengkulu | | Jawa Barat | Bandung | | Jawa Tengah | Semarang | | Johor | Johor Bahru | | Kedah | Alor Setar | | Kelantan | Kota Bharu | | ... | ... |
Dalam contoh di atas, perintah JOIN menggabungkan data dari tabel "provinces" dan "cities" berdasarkan nilai kolom "id" pada tabel "provinces" dan kolom "province_id" pada tabel "cities". Kemudian, perintah SELECT hanya menampilkan nilai kolom "name" dari kedua tabel.
Menampilkan data dengan batasan jumlah baris (LIMIT)
Jika ingin menampilkan sejumlah data tertentu dari tabel, dapat digunakan perintah SELECT dengan menambahkan klausa LIMIT, seperti berikut:
SELECT * FROM provinces LIMIT 5;
Perintah tersebut akan menampilkan 5 baris data pertama dari tabel "provinces".
| id | name | created_by | updated_by | owned_by | created_at | updated_at | |----|----------------|------------|------------|--------------|---------------------|---------------------| | 1 | Aceh | John Doe | Jane Doe | Indonesia | 2020-01-01 00:00:00 | 2020-01-01 00:00:00 | | 2 | Bali | John Doe | Jane Doe | Indonesia | 2020-01-02 00:00:00 | 2020-01-02 00:00:00 | | 3 | Bangka Belitung | John Doe | Jane Doe | Indonesia | 2020-01-03 00:00:00 | 2020-01-03 00:00:00 | | 4 | Banten | John Doe | Jane Doe | Indonesia | 2020-01-04 00:00:00 | 2020-01-04 00:00:00 | | 5 | Bengkulu | John Doe | Jane Doe | Indonesia | 2020-01-05 00:00:00 | 2020-01-05 00:00:00 |
Perintah tersebut akan membatasi jumlah baris yang ditampilkan menjadi 5 baris pertama dari tabel "provinces".
Kita juga dapat menambahkan offset (pergeseran) pada LIMIT untuk menampilkan data mulai dari baris tertentu. Contohnya, untuk menampilkan data dari baris ke-6 hingga ke-10, dapat digunakan perintah seperti berikut:
SELECT * FROM provinces LIMIT 5, 5;
| id | name | created_by | updated_by | owned_by | created_at | updated_at | |----|----------------|------------|------------|--------------|---------------------|---------------------| | 6 | Jawa Barat | John Doe | Jane Doe | Indonesia | 2020-01-06 00:00:00 | 2020-01-06 00:00:00 | | 7 | Jawa Tengah | John Doe | Jane Doe | Indonesia | 2020-01-07 00:00:00 | 2020-01-07 00:00:00 | | 8 | Johor | John Doe | Jane Doe | Malaysia | 2020-01-08 00:00:00 | 2020-01-08 00:00:00 | | 9 | Kedah | John Doe | Jane Doe | Malaysia | 2020-01-09 00:00:00 | 2020-01-09 00:00:00 | | 10 | Kelantan | John Doe | Jane Doe | Malaysia | 2020-01-10 00:00:00 | 2020-03-10 00:00:00
Menampilkan data secara terurut (ORDER BY)
Kita juga dapat mengurutkan data dalam tabel menggunakan perintah ORDER BY. Misalnya, untuk menampilkan data provinsi yang diurutkan berdasarkan nama secara ascending, dapat digunakan perintah seperti berikut:
SELECT * FROM provinces ORDER BY name ASC;
Perintah tersebut akan menampilkan data provinsi dalam tabel "provinces" yang diurutkan berdasarkan nama secara ascending (A-Z).
| id | name | created_by | updated_by | owned_by | created_at | updated_at | |----|----------------|------------|------------|--------------|---------------------|---------------------| | 1 | Aceh | John Doe | Jane Doe | Indonesia | 2020-01-01 00:00:00 | 2020-01-01 00:00:00 | | 2 | Bali | John Doe | Jane Doe | Indonesia | 2020-01-02 00:00:00 | 2020-01-02 00:00:00 | | 3 | Bangka Belitung | John Doe | Jane Doe | Indonesia | 2020-01-03 00:00:00 | 2020-01-03 00:00:00 | | 4 | Banten | John Doe | Jane Doe | Indonesia | 2020-01-04 00:00:00 | 2020-01-04 00:00:00 | | 5 | Bengkulu | John Doe | Jane Doe | Indonesia | 2020-01-05 00:00:00 | 2020-01-05 00:00:00 | | 6 | Jawa Barat | John Doe | Jane Doe | Indonesia | 2020-01-06 00:00:00 | 2020-01-06 00:00:00 | | 7 | Jawa Tengah | John Doe | Jane Doe | Indonesia | 2020-01-07 00:00:00 | 2020-01-07 00:00:00 | | 8 | Johor | John Doe | Jane Doe | Malaysia | 2020-01-08 00:00:00 | 2020-01-08 00:00:00 | | 9 | Kedah | John Doe | Jane Doe | Malaysia | 2020-01-09 00:00:00 | 2020-01-09 00:00:00 | | 10 | Kelantan | John Doe | Jane Doe | Malaysia | 2020-01-10 00:00:00 | 2020-01-10 00:00:00 |
Dalam perintah tersebut, klausa ASC (ascending) menandakan bahwa data diurutkan dari nilai terkecil ke nilai terbesar. Jika ingin mengurutkan data secara descending (dari nilai terbesar ke nilai terkecil), kita dapat menggunakan klausa DESC (descending) pada perintah ORDER BY. Misalnya, untuk menampilkan data provinsi yang diurutkan berdasarkan nama secara descending, dapat digunakan perintah seperti berikut:
SELECT * FROM provinces ORDER BY name DESC;
Perintah tersebut akan menampilkan data dalam tabel "provinces" yang diurutkan berdasarkan kolom "name" secara descending.
| id | name | created_by | updated_by | owned_by | created_at | updated_at |
|----|----------------|------------|------------|--------------|---------------------|---------------------|
| 6 | Yogyakarta | John Doe | Jane Doe | Indonesia | 2020-01-06 00:00:00 | 2020-01-06 00:00:00 |
| 5 | West Sumatra | John Doe | Jane Doe | Indonesia | 2020-01-05 00:00:00 | 2020-01-05 00:00:00 |
| 4 | Banten | John Doe | Jane Doe | Indonesia | 2020-01-04 00:00:00 | 2020-01-04 00:00:00 |
| 3 | Bangka Belitung | John Doe | Jane Doe | Indonesia | 2020-01-03 00:00:00 | 2020-01-03 00:00:00 |
| 2 | Bali | John Doe | Jane Doe | Indonesia | 2020-01-02 00:00:00 | 2020-01-02 00:00:00 |
| 1 | Aceh | John Doe | Jane Doe | Indonesia | 2020-01-01 00:00:00 | 2020-01-01 00:00:00 |
Summary
Dalam artikel ini kita telah membahas beberapa perintah SELECT yang berguna untuk memilih data dari tabel di MySQL, yaitu SELECT * untuk memilih semua kolom, SELECT dengan spesifik nama kolom untuk memilih kolom tertentu, SELECT DISTINCT untuk memilih nilai unik, dan SELECT dengan fungsi agregat seperti COUNT(), SUM(), MAX(), dan AVG() untuk mengambil informasi statistik dari data. Selain itu, kita juga membahas penggunaan LIMIT untuk membatasi jumlah baris yang ditampilkan dan ORDER BY untuk mengurutkan data berdasarkan kolom tertentu, termasuk contoh pengurutan secara descending dengan perintah ORDER BY ... DESC.
Komentar
Posting Komentar