Menggunakan Select Statement Di MySQL

0
Pada Panduan Tutorial MySQL ini, kita akan belajar tentang Dasar Select Statement. Select statement yaitu perintah di MySQL yang digunakan untuk menampilkan data dari sebuah atau beberapa tabel.

Pada panduan ini, kita akan membahas lebih detail tentang Cara,

  • Menggunakan Select Statement
  • Menggunakan Operasi Matematika Pada Select Statement
  • Menggunakan Alias Pada Select Statement
  • Menggunakan Select Distinct Untuk menghilangkan record yang duplikat. 

Menggunakan Select Statement


Berikut ini adalah sintak dasar dari Select statement di MySQL:

SELECT nama_kolom1, nama_kolom2, nama_kolom3,...
FROM nama_tabel
[WHERE condition]
[GROUP BY nama_kolom]
[HAVING group_condition]
[ORDER BY nama_kolom]

Penjelasan sintak diatas kurang lebih sebagai berikut:

  • nama_kolom1, nama_kolom2. nama_kolom3, dan seterusnya adalah kolom-kolom yang akan ditampilkan.
  • nama_tabel adalah tabel yang ditampilkan datanya
  • WHERE clause digunakan untuk menambahkan kondisi (filter) pada Select statement.
  • GROUP BY clause digunakan untuk mengelompokkan data berdasarkan kolom tertentu.
  • HAVING clause digunakan untuk menambahkan kondisi pada data yang telah dikelompokkan.
  • ORDER BY clause digunakan untuk mengurutkan data dalam format ascending dan descending.
Anda dapat menampilkan semua kolom pada Select statement dengan mengganti nama_kolom dengan tanda asterik (*), sehingga cukup menggunakan sintak berikut:

SELECT * FROM nama_tabel;

Contoh:

Misalkan Anda telah memiliki sebuah tabel "pegawai" dengan data-data sebagai berikut:

+------------+---------------+---------------+-----------+------+----------+------------+
| id_pegawai | nama_lengkap  | jenis_kelamin | alamat    | umur | gaji     | departemen |
+------------+---------------+---------------+-----------+------+----------+------------+
| P001       | Nursalim      | L             | Jakarta   |   27 | 15000000 | IT         |
| P002       | Iskiyati      | P             | Bandung   |   23 |  7000000 | MKT        |
| P003       | Nurul Hikmah  | P             | Semarang  |   20 |  4000000 | HR         |
| P004       | Ahmad Fatoni  | L             | Cirebon   |   26 | 10000000 | IT         |
| P005       | Sri Rahayu    | P             | Surabaya  |   25 |  8000000 | ACC        |
| P006       | Naura Krasiva | P             | Magelang  |   21 |  3000000 | HR         |
| P007       | Ana Fauziyah  | P             | Tegal     |   22 |  4500000 | SLS        |
| P008       | Irwan Gunawan | L             | Tangerang |   30 | 11000000 | FIN        |
| P009       | Ali Amrullah  | L             | Jakarta   |   28 |  8500000 | IT         |
| P010       | Andi Lala     | L             | Bogor     |   23 |  6000000 | FIN        |
+------------+---------------+---------------+-----------+------+----------+------------+

Dari data-data diatas, jika Anda ingin menampilkan data id_pegawai, nama_lengkap, jenis_kelamin, dan gaji, maka Anda dapat menggunakan Select statement berikut ini:

mysql> SELECT id_pegawai, nama_lengkap, jenis_kelamin, gaji
    -> FROM pegawai;
+------------+---------------+---------------+----------+
| id_pegawai | nama_lengkap  | jenis_kelamin | gaji     |
+------------+---------------+---------------+----------+
| P001       | Nursalim      | L             | 15000000 |
| P002       | Iskiyati      | P             |  7000000 |
| P003       | Nurul Hikmah  | P             |  4000000 |
| P004       | Ahmad Fatoni  | L             | 10000000 |
| P005       | Sri Rahayu    | P             |  8000000 |
| P006       | Naura Krasiva | P             |  3000000 |
| P007       | Ana Fauziyah  | P             |  4500000 |
| P008       | Irwan Gunawan | L             | 11000000 |
| P009       | Ali Amrullah  | L             |  8500000 |
| P010       | Andi Lala     | L             |  6000000 |
+------------+---------------+---------------+----------+
10 rows in set (0.50 sec)

Selanjutnya, jika Anda ingin menampilkan data nama_lengkap, alamat, umur, dan departemen, maka Anda dapat menggunakan query berikut ini:

mysql> SELECT nama_lengkap, alamat, umur, departemen
    -> FROM pegawai;
+---------------+-----------+------+------------+
| nama_lengkap  | alamat    | umur | departemen |
+---------------+-----------+------+------------+
| Nursalim      | Jakarta   |   27 | IT         |
| Iskiyati      | Bandung   |   23 | MKT        |
| Nurul Hikmah  | Semarang  |   20 | HR         |
| Ahmad Fatoni  | Cirebon   |   26 | IT         |
| Sri Rahayu    | Surabaya  |   25 | ACC        |
| Naura Krasiva | Magelang  |   21 | HR         |
| Ana Fauziyah  | Tegal     |   22 | SLS        |
| Irwan Gunawan | Tangerang |   30 | FIN        |
| Ali Amrullah  | Jakarta   |   28 | IT         |
| Andi Lala     | Bogor     |   23 | FIN        |
+---------------+-----------+------+------------+
10 rows in set (0.00 sec)

Sedangkan jika ingin menampilkan seluruh data pada tabel pegawai, dapat Anda gunakan tanda "*" pada Select statement seperti berikut ini:

mysql> SELECT * FROM pegawai;
+------------+---------------+---------------+-----------+------+----------+------------+
| id_pegawai | nama_lengkap  | jenis_kelamin | alamat    | umur | gaji     | departemen |
+------------+---------------+---------------+-----------+------+----------+------------+
| P001       | Nursalim      | L             | Jakarta   |   27 | 15000000 | IT         |
| P002       | Iskiyati      | P             | Bandung   |   23 |  7000000 | MKT        |
| P003       | Nurul Hikmah  | P             | Semarang  |   20 |  4000000 | HR         |
| P004       | Ahmad Fatoni  | L             | Cirebon   |   26 | 10000000 | IT         |
| P005       | Sri Rahayu    | P             | Surabaya  |   25 |  8000000 | ACC        |
| P006       | Naura Krasiva | P             | Magelang  |   21 |  3000000 | HR         |
| P007       | Ana Fauziyah  | P             | Tegal     |   22 |  4500000 | SLS        |
| P008       | Irwan Gunawan | L             | Tangerang |   30 | 11000000 | FIN        |
| P009       | Ali Amrullah  | L             | Jakarta   |   28 |  8500000 | IT         |
| P010       | Andi Lala     | L             | Bogor     |   23 |  6000000 | FIN        |
+------------+---------------+---------------+-----------+------+----------+------------+
10 rows in set (0.00 sec)


Menggunakan Operasi Matematika


Anda dapat menggunakan operasi matematika pada Select statement untuk melakukan perhitungan matematika seperti penjumlahan, pengurangan, pembagian, dan perkalian.

Contoh,

Di bawah ini adalah contoh operasi matematika pada Select statement:

mysql> SELECT 15+10 "Penjumlahan", 15-10 "Pengurangan",
    -> 15*10 "Perkalian", 15/10 "Pembagian";
+-------------+-------------+-----------+-----------+
| Penjumlahan | Pengurangan | Perkalian | Pembagian |
+-------------+-------------+-----------+-----------+
|          25 |           5 |       150 |    1.5000 |
+-------------+-------------+-----------+-----------+
1 row in set (0.01 sec)


Menggunakan Alias


Alias adalah nama temporary atau sementara dari sebuah tabel atau kolom. Alias biasanya digunakan agar nama tabel atau nama kolom lebih jelas di bacanya atau alias bisa digunakan untuk mempersingkat penulisan sebuah query atau script SQL.

Misalkan sebuah sebuah tabel "pegawai" dapat anda aliaskan menjadi nama "pgw", dan kolom "jenis_kelamin" dapat Anda aliaskan menjadi "jk".

Untuk menambahkan alias pada kolom atau tabel, Anda dapat menggunakan kata atau keyword AS atau juga bisa menggunakan tanda petik dua "nama_alias".

Contoh

Misalkan Anda memiliki sebuah tabel pegawai dengan data-data seperti berikut:

+------------+---------------+---------------+-----------+------+----------+------------+
| id_pegawai | nama_lengkap  | jenis_kelamin | alamat    | umur | gaji     | departemen |
+------------+---------------+---------------+-----------+------+----------+------------+
| P001       | Nursalim      | L             | Jakarta   |   27 | 15000000 | IT         |
| P002       | Iskiyati      | P             | Bandung   |   23 |  7000000 | MKT        |
| P003       | Nurul Hikmah  | P             | Semarang  |   20 |  4000000 | HR         |
| P004       | Ahmad Fatoni  | L             | Cirebon   |   26 | 10000000 | IT         |
| P005       | Sri Rahayu    | P             | Surabaya  |   25 |  8000000 | ACC        |
| P006       | Naura Krasiva | P             | Magelang  |   21 |  3000000 | HR         |
| P007       | Ana Fauziyah  | P             | Tegal     |   22 |  4500000 | SLS        |
| P008       | Irwan Gunawan | L             | Tangerang |   30 | 11000000 | FIN        |
| P009       | Ali Amrullah  | L             | Jakarta   |   28 |  8500000 | IT         |
| P010       | Andi Lala     | L             | Bogor     |   23 |  6000000 | FIN        |
+------------+---------------+---------------+-----------+------+----------+------------+

Misalkan Anda ingin mengubah nama kolom "nama_lengkap" menjadi "nama", "id_pegawai" menjadi "nik", "jenis_kelamin" menjadi "gender", maka Anda dapat menggunakan query berikut ini:

mysql> SELECT id_pegawai AS nik, nama_lengkap AS nama, jenis_kelamin AS gender,
    -> alamat, umur, gaji, departemen
    -> FROM pegawai;
+------+---------------+--------+-----------+------+----------+------------+
| nik  | nama          | gender | alamat    | umur | gaji     | departemen |
+------+---------------+--------+-----------+------+----------+------------+
| P001 | Nursalim      | L      | Jakarta   |   27 | 15000000 | IT         |
| P002 | Iskiyati      | P      | Bandung   |   23 |  7000000 | MKT        |
| P003 | Nurul Hikmah  | P      | Semarang  |   20 |  4000000 | HR         |
| P004 | Ahmad Fatoni  | L      | Cirebon   |   26 | 10000000 | IT         |
| P005 | Sri Rahayu    | P      | Surabaya  |   25 |  8000000 | ACC        |
| P006 | Naura Krasiva | P      | Magelang  |   21 |  3000000 | HR         |
| P007 | Ana Fauziyah  | P      | Tegal     |   22 |  4500000 | SLS        |
| P008 | Irwan Gunawan | L      | Tangerang |   30 | 11000000 | FIN        |
| P009 | Ali Amrullah  | L      | Jakarta   |   28 |  8500000 | IT         |
| P010 | Andi Lala     | L      | Bogor     |   23 |  6000000 | FIN        |
+------+---------------+--------+-----------+------+----------+------------+
10 rows in set (0.32 sec)

Atau Anda juga bisa menggunakan alias seperti query berikut ini:

mysql> SELECT id_pegawai nik, nama_lengkap nama, jenis_kelamin gender,
    -> alamat, umur, gaji, departemen
    -> FROM pegawai;
+------+---------------+--------+-----------+------+----------+------------+
| nik  | nama          | gender | alamat    | umur | gaji     | departemen |
+------+---------------+--------+-----------+------+----------+------------+
| P001 | Nursalim      | L      | Jakarta   |   27 | 15000000 | IT         |
| P002 | Iskiyati      | P      | Bandung   |   23 |  7000000 | MKT        |
| P003 | Nurul Hikmah  | P      | Semarang  |   20 |  4000000 | HR         |
| P004 | Ahmad Fatoni  | L      | Cirebon   |   26 | 10000000 | IT         |
| P005 | Sri Rahayu    | P      | Surabaya  |   25 |  8000000 | ACC        |
| P006 | Naura Krasiva | P      | Magelang  |   21 |  3000000 | HR         |
| P007 | Ana Fauziyah  | P      | Tegal     |   22 |  4500000 | SLS        |
| P008 | Irwan Gunawan | L      | Tangerang |   30 | 11000000 | FIN        |
| P009 | Ali Amrullah  | L      | Jakarta   |   28 |  8500000 | IT         |
| P010 | Andi Lala     | L      | Bogor     |   23 |  6000000 | FIN        |
+------+---------------+--------+-----------+------+----------+------------+
10 rows in set (0.00 sec)

Terakhir, Anda dapat menggunakan alias dengan menambahkan tanda petik dua pada kolom atau tabel alias seperti contoh berikut ini:

mysql> SELECT id_pegawai "Nomor Induk Karyawan", nama_lengkap AS "Full Name", jenis_kelamin AS "Gender",
    -> alamat, umur, gaji, departemen
    -> FROM pegawai;
+----------------------+---------------+--------+-----------+------+----------+------------+
| Nomor Induk Karyawan | Full Name     | Gender | alamat    | umur | gaji     | departemen |
+----------------------+---------------+--------+-----------+------+----------+------------+
| P001                 | Nursalim      | L      | Jakarta   |   27 | 15000000 | IT         |
| P002                 | Iskiyati      | P      | Bandung   |   23 |  7000000 | MKT        |
| P003                 | Nurul Hikmah  | P      | Semarang  |   20 |  4000000 | HR         |
| P004                 | Ahmad Fatoni  | L      | Cirebon   |   26 | 10000000 | IT         |
| P005                 | Sri Rahayu    | P      | Surabaya  |   25 |  8000000 | ACC        |
| P006                 | Naura Krasiva | P      | Magelang  |   21 |  3000000 | HR         |
| P007                 | Ana Fauziyah  | P      | Tegal     |   22 |  4500000 | SLS        |
| P008                 | Irwan Gunawan | L      | Tangerang |   30 | 11000000 | FIN        |
| P009                 | Ali Amrullah  | L      | Jakarta   |   28 |  8500000 | IT         |
| P010                 | Andi Lala     | L      | Bogor     |   23 |  6000000 | FIN        |
+----------------------+---------------+--------+-----------+------+----------+------------+
10 rows in set (0.00 sec)

Menggunakan Select Distinct


Select Distinct digunakan untuk mengeliminasi record atau data yang duplikat hasil dari Select statement.

Contoh

Misalkan data pada kolom departemen pada tabel pegawai memiliki record yang duplikat seperti berikut:

mysql> SELECT departemen
    -> FROM pegawai;
+------------+
| departemen |
+------------+
| IT         |
| MKT        |
| HR         |
| IT         |
| ACC        |
| HR         |
| SLS        |
| FIN        |
| IT         |
| FIN        |
+------------+
10 rows in set (0.00 sec)

Hasil query diatas terlihat ada dua data departemen yang duplikat, yaitu "IT" dan "HR", maka untuk mengeliminasi record yang duplikat tersebut, Anda dapat menambahkan keyword DISTINCT pada query diatas, seperti berikut ini:

mysql> SELECT DISTINCT departemen
    -> FROM pegawai;
+------------+
| departemen |
+------------+
| IT         |
| MKT        |
| HR         |
| ACC        |
| SLS        |
| FIN        |
+------------+
6 rows in set (0.03 sec)

Sekian Panduan Tutorial MySQL tentang Penggunaan Select Statement. Semoga bermanfaat & Happy Learning MySQL.

Salam,

Nursalim

0 Comments