Dalam pengelolaan basis data, mengambil data dari tabel database adalah salah satu tugas paling umum yang dilakukan. Kita juga dapat menyaring, mengurutkan, dan mengambil data tertentu dari tabel sesuai dengan kebutuhan kita. Dalam MySQL, perintah yang digunakan untuk melakukan ini disebut SELECT
. Dalam tutorial ini, kita akan belajar cara menggunakan perintah SELECT
untuk mengambil data dari tabel dengan penjelasan yang insyaAllah mudah dipahami, menggunakan contoh tabel “Pengguna” yang sudah kita buat sebelumnya.
Dasar-Dasar Perintah SELECT
Perintah SELECT
adalah salah satu perintah paling penting dalam SQL karena memungkinkan Anda untuk mengambil data dari satu atau lebih tabel. Inilah format dasar dari perintah SELECT
:
1 2 3 | SELECT kolom1, kolom2, ... FROM nama_tabel WHERE kondisi; |
Keterangan:
kolom1, kolom2, ...
adalah daftar kolom yang ingin diambil dari tabel.nama_tabel
adalah nama tabel dari mana kita ingin mengambil data.WHERE kondisi
adalah bagian opsional yang memungkinkan kita menyaring data sesuai dengan kondisi tertentu.
Sebelum mempraktekkanĀ perintah SELECT, kita akan menambahkan data pada tabel pengguna dengna perintah SQL berikut ini:
1 2 3 4 5 6 7 8 9 10 11 12 | INSERT INTO pengguna (id, nama, email, tanggal_Lahir) VALUES (3, 'Siti Aisyah', 'siti.aisyah@kelasringan.com', '1990-04-15'), (4, 'Budi Santoso', 'budi.santoso@kelasringan.com', '1985-07-28'), (5, 'Dewi Lestari', 'dewi.lestari@kelasringan.com', '1983-02-10'), (6, 'Putra Perdana', 'putra.perdana@kelasringan.com', '1995-09-20'), (7, 'Anita Sari', 'anita.sari@kelasringan.com', '1992-11-05'), (8, 'Hafiz Rahmat', 'hafiz.rahmat@kelasringan.com', '1988-03-08'), (9, 'Rina Putri', 'rina.putri@kelasringan.com', '1997-06-12'), (10, 'Arief Wibowo', 'arief.wibowo@kelasringan.com', '1981-12-18'), (11, 'Mira Susanti', 'mira.susanti@kelasringan.com', '1986-05-30'), (12, 'Rudi Hermawan', 'rudi.hermawan@kelasringan.com', '2000-08-22'); |
Silahkan di ketik atau di copy paste perintah SQL di atas ke MySQL anda, sehingga akan menambahkan 10 data pada tabelĀ pengguna dimulai dari id: 3 sampai dengan 12.
Contoh Penggunaan Perintah SELECT
1. Mengambil Semua Data dari Tabel
Jika kita ingin mengambil semua data dari tabel “pengguna“, kita dapat menggunakan perintah berikut:
1 | SELECT * FROM pengguna; |
Perintah SQL di atas akan mengambil semua kolom dan semua baris dari tabel “pengguna“. Hasilnya dapat kita lihat seperti berikut ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | MariaDB [toko_buku]> select * from pengguna; +----+-----------------+-------------------------------+---------------+ | id | nama | email | tanggal_lahir | +----+-----------------+-------------------------------+---------------+ | 1 | Alexander Paijo | alexander@kelasringan.com | 1990-05-15 | | 2 | Abraham Budi | abraham@kelasringan.com | 1980-09-10 | | 3 | Siti Aisyah | siti.aisyah@kelasringan.com | 1990-04-15 | | 4 | Budi Santoso | budi.santoso@kelasringan.com | 1985-07-28 | | 5 | Dewi Lestari | dewi.lestari@kelasringan.com | 1983-02-10 | | 6 | Putra Perdana | putra.perdana@kelasringan.com | 1995-09-20 | | 7 | Anita Sari | anita.sari@kelasringan.com | 1992-11-05 | | 8 | Hafiz Rahmat | hafiz.rahmat@kelasringan.com | 1988-03-08 | | 9 | Rina Putri | rina.putri@kelasringan.com | 1997-06-12 | | 10 | Arief Wibowo | arief.wibowo@kelasringan.com | 1981-12-18 | | 11 | Mira Susanti | mira.susanti@kelasringan.com | 1986-05-30 | | 12 | Rudi Hermawan | rudi.hermawan@kelasringan.com | 2000-08-22 | +----+-----------------+-------------------------------+---------------+ 12 rows in set (0.001 sec) |
2. Mengambil Data Tertentu
Jika kita ingin mengambil beberapa data pada kolom tertentu saja, kita bisa melakukan seperti ini:
1 | SELECT nama, email FROM pengguna; |
Perintah SQL di atas hanya akan mengambil kolom “nama” dan “email” dari tabel “pengguna“. Hasilnya dapat kita lihat seperti berikut ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | MariaDB [toko_buku]> SELECT nama, email FROM pengguna; +-----------------+-------------------------------+ | nama | email | +-----------------+-------------------------------+ | Alexander Paijo | alexander@kelasringan.com | | Abraham Budi | abraham@kelasringan.com | | Siti Aisyah | siti.aisyah@kelasringan.com | | Budi Santoso | budi.santoso@kelasringan.com | | Dewi Lestari | dewi.lestari@kelasringan.com | | Putra Perdana | putra.perdana@kelasringan.com | | Anita Sari | anita.sari@kelasringan.com | | Hafiz Rahmat | hafiz.rahmat@kelasringan.com | | Rina Putri | rina.putri@kelasringan.com | | Arief Wibowo | arief.wibowo@kelasringan.com | | Mira Susanti | mira.susanti@kelasringan.com | | Rudi Hermawan | rudi.hermawan@kelasringan.com | +-----------------+-------------------------------+ 12 rows in set (0.001 sec) |
3. Menggunakan Kondisi
Kita juga dapat menggunakan kondisi untuk menyaring atau memfilter data. Misalnya, jika kita hanya ingin pengguna yang lahir setelah tahun 1990:
1 | SELECT * FROM pengguna WHERE tanggal_lahir > '1990-01-01'; |
Perintah SQL di atas akan mengambil semua pengguna yang lahir setelah tanggal yang ditentukan. Hasilnya dapat kita lihat seperti berikut ini:
1 2 3 4 5 6 7 8 9 10 11 12 | MariaDB [toko_buku]> SELECT * FROM pengguna WHERE tanggal_lahir > '1990-01-01'; +----+-----------------+-------------------------------+---------------+ | id | nama | email | tanggal_lahir | +----+-----------------+-------------------------------+---------------+ | 1 | Alexander Paijo | alexander@kelasringan.com | 1990-05-15 | | 3 | Siti Aisyah | siti.aisyah@kelasringan.com | 1990-04-15 | | 6 | Putra Perdana | putra.perdana@kelasringan.com | 1995-09-20 | | 7 | Anita Sari | anita.sari@kelasringan.com | 1992-11-05 | | 9 | Rina Putri | rina.putri@kelasringan.com | 1997-06-12 | | 12 | Rudi Hermawan | rudi.hermawan@kelasringan.com | 2000-08-22 | +----+-----------------+-------------------------------+---------------+ 6 rows in set (0.009 sec) |
4. Menggunakan Urutan
Kita dapat mengurutkan data dengan menggunakan klausa ORDER BY
. Misalnya, jika kita ingin mengurutkan pengguna berdasarkan nama secara alfabet:
1 | SELECT * FROM pengguna ORDER BY nama; |
Perintah SQL di atas akan mengambil semua pengguna dan mengurutkannya berdasarkan nama dalam urutan alfabet.Ā Hasilnya dapat kita lihat seperti berikut ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | MariaDB [toko_buku]> SELECT * FROM pengguna ORDER BY nama; +----+-----------------+-------------------------------+---------------+ | id | nama | email | tanggal_lahir | +----+-----------------+-------------------------------+---------------+ | 2 | Abraham Budi | abraham@kelasringan.com | 1980-09-10 | | 1 | Alexander Paijo | alexander@kelasringan.com | 1990-05-15 | | 7 | Anita Sari | anita.sari@kelasringan.com | 1992-11-05 | | 10 | Arief Wibowo | arief.wibowo@kelasringan.com | 1981-12-18 | | 4 | Budi Santoso | budi.santoso@kelasringan.com | 1985-07-28 | | 5 | Dewi Lestari | dewi.lestari@kelasringan.com | 1983-02-10 | | 8 | Hafiz Rahmat | hafiz.rahmat@kelasringan.com | 1988-03-08 | | 11 | Mira Susanti | mira.susanti@kelasringan.com | 1986-05-30 | | 6 | Putra Perdana | putra.perdana@kelasringan.com | 1995-09-20 | | 9 | Rina Putri | rina.putri@kelasringan.com | 1997-06-12 | | 12 | Rudi Hermawan | rudi.hermawan@kelasringan.com | 2000-08-22 | | 3 | Siti Aisyah | siti.aisyah@kelasringan.com | 1990-04-15 | +----+-----------------+-------------------------------+---------------+ 12 rows in set (0.003 sec) |
5. Menggunakan Batasan Jumlah Data
Kita juga dapat membatasi jumlah data yang diambil dengan klausa LIMIT
. Misalnya, jika kita hanya ingin mengambil 5 pengguna pertama:
1 | SELECT * FROM pengguna LIMIT 5; |
Perintah SQL di atas akan mengambil hanya 5 baris pertama dari tabel. Hasilnya dapat kita lihat seperti berikut ini:
1 2 3 4 5 6 7 8 9 10 11 | MariaDB [toko_buku]> SELECT * FROM pengguna LIMIT 5; +----+-----------------+------------------------------+---------------+ | id | nama | email | tanggal_lahir | +----+-----------------+------------------------------+---------------+ | 1 | Alexander Paijo | alexander@kelasringan.com | 1990-05-15 | | 2 | Abraham Budi | abraham@kelasringan.com | 1980-09-10 | | 3 | Siti Aisyah | siti.aisyah@kelasringan.com | 1990-04-15 | | 4 | Budi Santoso | budi.santoso@kelasringan.com | 1985-07-28 | | 5 | Dewi Lestari | dewi.lestari@kelasringan.com | 1983-02-10 | +----+-----------------+------------------------------+---------------+ 5 rows in set (0.001 sec) |
6. Menggunakan Operasi Agregat
Selain mengambil data langsung dari tabel, kita juga dapat menggunakan operasi agregat seperti SUM
, COUNT
, AVG
, dan MAX
untuk menghitung dan mengambil informasi statistik dari data dalam tabel. Misalnya, jika kita ingin menghitung jumlah total pengguna:
1 | SELECT COUNT(*) FROM pengguna; |
Perintah SQL di atas akan menghasilkan jumlah total pengguna dalam tabel “pengguna“. Hasilnya dapat kita lihat seperti berikut ini:
1 2 3 4 5 6 7 | MariaDB [toko_buku]> SELECT COUNT(*) FROM pengguna; +----------+ | COUNT(*) | +----------+ | 12 | +----------+ 1 row in set (0.004 sec) |
7. Menggunakan Grup Data
Kita juga dapat mengelompokkan data berdasarkan nilai dalam kolom tertentu menggunakan klausa GROUP BY
. Misalnya, jika kita ingin menghitung jumlah pengguna per tahun kelahiran:
1 | SELECT YEAR(tanggal_lahir) AS tahun_lahir, COUNT(*) FROM pengguna GROUP BY tahun_lahir; |
Perintah SQL di atas akan mengelompokkan data berdasarkan tahun lahir dan menghitung jumlah pengguna dalam setiap tahun. Hasilnya dapat kita lihat seperti berikut ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | MariaDB [toko_buku]> SELECT YEAR(tanggal_lahir) AS tahun_lahir, COUNT(*) FROM pengguna GROUP BY tahun_lahir; +-------------+----------+ | tahun_lahir | COUNT(*) | +-------------+----------+ | 1980 | 1 | | 1981 | 1 | | 1983 | 1 | | 1985 | 1 | | 1986 | 1 | | 1988 | 1 | | 1990 | 2 | | 1992 | 1 | | 1995 | 1 | | 1997 | 1 | | 2000 | 1 | +-------------+----------+ 11 rows in set (0.004 sec) |
Demikian Tutorial MySQL Dasar: Mengambil Data dari Tabel MySQL dengan Perintah SELECT. Perintah SELECT
digunakan untuk mengambil data dari tabel dalam MySQL. Kita dapat mengambil semua data atau hanya data tertentu, menyaring data dengan kondisi, mengurutkan data, membatasi jumlah data yang diambil, dan bahkan melakukan operasi agregat untuk menghitung statistik. Dengan pemahaman ini, kita dapat mengakses dan mengelola data dengan efisien dalam pengelolaan basis data MySQL.
Daftar atau list tutorial MySQL dapat anda lihat diĀ Index Tutorial MySQL: Belajar MySQL Dari Dasar.