Wednesday, September 28, 2016

Pernyataan SELECT dalam MySQL

Fungsi Pernyataan SELECT

Pernyataan SELECT digunakan untuk meload data/menampilkan data yang dapat difilter dengan kondisi tertentu, dikelompokkan dan diurutkan berdasarkan kolom tertentu.

Sintaks Pernyataan SELECT

Sintak sederhana pernyataan SELECT denga klausa WHERE.
SELECT daftar_field
FROM nama_tabel
[WHERE kriteria]

Catatan:

  • daftar_field, menyatakan field-field yang akan ditampilkan
  • nama_tabel, meyatakan tabel yang akan ditampilkan
  • Klausa WHERE bersifat opsional dan digunakan sebagai filter terhadap data yang akan ditampilkan.
  • kriteria merupakan menyatakan ekpresi logika.
Digram berikut menunjukkan sintak pernyataan SELECT secara lebih lengkap.
Diagram Pernyataan SELECT
Diagram Pernyataan SELECT

Latihan Pernyataan SELECT

Menyiapkan database dan Tabel

Sebelum berlatih menggunakan pernyataan SELECT siapkanlah database akademik dan tabel matakuliah dengan langkah-langkah berikut
  • Jalankan MySQL command prompt, dengan perintah sebagai berikut:
CD C:\xampp\mysql\bin
mysql -u root -p
  • Buat database akademik
mysql> CREATE DATABASE akademik;
Query OK, 1 row affected (0.15 sec)
  • Aktifkan database akademik
mysql> USE akademik;
Database changed
  • Buat tabel matakuliah dengan struktur sebagai berikut
Field Type Index
kode_mk CHAR(4) PRIMARY KEY
nama_mk VARCHAR(30)
sks INT(1)
semester INT(1)
mysql> CREATE TABLE matakuliah
 -> (npm CHAR(4) PRIMARY KEY,
 -> nama_mk VARCHAR(50),
 -> sks INT(1),
 -> semester INT(1));
Query OK, 0 rows affected (2.20 sec)
  • Tampilkan struktur tabel matakuliah
mysql> DESC matakuliah;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| npm      | char(4)     | NO   | PRI | NULL    |       |
| nama_mk  | varchar(50) | YES  |     | NULL    |       |
| sks      | int(1)      | YES  |     | NULL    |       |
| semester | int(1)      | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
4 rows in set (1.14 sec)
  •  Masukkan data-data berikut pada tabel matakuliah
data matakuliah

 mysql> INSERT INTO `matakuliah` (`npm`, `nama_mk`, `sks`, `semester`) VALUES
 -> ('MK01', 'Pengantar Teknologi Informasi', 2, 1),
 -> ('MK02', 'Algoritma Dan Pemrograman', 3, 1),
 -> ('MK03', 'Arsitektur Dan Organisasi Komputer', 4, 1),
 -> ('MK04', 'Desain Web', 4, 1),
 -> ('MK05', 'Aljabar Linier', 2, 2),
 -> ('MK06', 'Instalasi Dan Troubleshooting', 4, 2),
 -> ('MK07', 'Bahasa Inggris', 2, 3),
 -> ('MK08', 'Bahasa Rakitan dan C++', 3, 3),
 -> ('MK09', 'Interaksi Manusia dan Komputer', 3, 3),
 -> ('MK10', 'Bahasa Ingrris Teknik Informatika', 2, 4),
 -> ('MK11', 'Interfacing', 3, 4),
 -> ('MK12', 'Grafika Komputer', 3, 5),
 -> ('MK13', 'Algoritma Genetika', 4, 5),
 -> ('MK14', 'Bisnis Berbasis Internet', 3, 6),
 -> ('MK15', 'Cisco dan Mikrotik', 3, 6),
 -> ('MK16', 'Administrasi Sistem Jaringan', 3, 6),
 -> ('MK17', 'Animasi', 3, 7),
 -> ('MK18', 'Asistensi', 1, 7),
 -> ('MK19', 'Data Mining', 2, 7),
 -> ('MK20', 'e-Commerce', 3, 7);
Query OK, 20 rows affected (0.05 sec)
Records: 20 Duplicates: 0 Warnings: 0

Contoh pernyataan SELECT

  • Tampilkan seluruh field tabel matakuliah
mysql> SELECT * FROM matakuliah;
+------+------------------------------------+------+----------+
| npm  | nama_mk                            | sks  | semester |
+------+------------------------------------+------+----------+
| MK01 | Pengantar Teknologi Informasi      |    2 |        1 |
| MK02 | Algoritma Dan Pemrograman          |    3 |        1 |
| MK03 | Arsitektur Dan Organisasi Komputer |    4 |        1 |
| MK04 | Desain Web                         |    4 |        1 |
| MK05 | Aljabar Linier                     |    2 |        2 |
| MK06 | Instalasi Dan Troubleshooting      |    4 |        2 |
| MK07 | Bahasa Inggris                     |    2 |        3 |
| MK08 | Bahasa Rakitan dan C++             |    3 |        3 |
| MK09 | Interaksi Manusia dan Komputer     |    3 |        3 |
| MK10 | Bahasa Ingrris Teknik Informatika  |    2 |        4 |
| MK11 | Interfacing                        |    3 |        4 |
| MK12 | Grafika Komputer                   |    3 |        5 |
| MK13 | Algoritma Genetika                 |    4 |        5 |
| MK14 | Bisnis Berbasis Internet           |    3 |        6 |
| MK15 | Cisco dan Mikrotik                 |    3 |        6 |
| MK16 | Administrasi Sistem Jaringan       |    3 |        6 |
| MK17 | Animasi                            |    3 |        7 |
| MK18 | Asistensi                          |    1 |        7 |
| MK19 | Data Mining                        |    2 |        7 |
| MK20 | e-Commerce                         |    3 |        7 |
+------+------------------------------------+------+----------+
20 rows in set (0.00 sec)
  • Tampilkan field semester dan nama_mk tabel matakuliah
mysql> SELECT semester, nama_mk 
    -> FROM matakuliah;
+----------+------------------------------------+
| semester | nama_mk                            |
+----------+------------------------------------+
|        1 | Pengantar Teknologi Informasi      |
|        1 | Algoritma Dan Pemrograman          |
|        1 | Arsitektur Dan Organisasi Komputer |
|        1 | Desain Web                         |
|        2 | Aljabar Linier                     |
|        2 | Instalasi Dan Troubleshooting      |
|        3 | Bahasa Inggris                     |
|        3 | Bahasa Rakitan dan C++             |
|        3 | Interaksi Manusia dan Komputer     |
|        4 | Bahasa Ingrris Teknik Informatika  |
|        4 | Interfacing                        |
|        5 | Grafika Komputer                   |
|        5 | Algoritma Genetika                 |
|        6 | Bisnis Berbasis Internet           |
|        6 | Cisco dan Mikrotik                 |
|        6 | Administrasi Sistem Jaringan       |
|        7 | Animasi                            |
|        7 | Asistensi                          |
|        7 | Data Mining                        |
|        7 | e-Commerce                         |
+----------+------------------------------------+
20 rows in set (0.00 sec)
  • Tampilkan semester dan nama matakuliah khusus semester satu saja
mysql> SELECT semester, nama_mk 
    -> FROM matakuliah
    -> WHERE semester=1;
+----------+------------------------------------+
| semester | nama_mk                            |
+----------+------------------------------------+
|        1 | Pengantar Teknologi Informasi      |
|        1 | Algoritma Dan Pemrograman          |
|        1 | Arsitektur Dan Organisasi Komputer |
|        1 | Desain Web                         |
+----------+------------------------------------+
4 rows in set (0.04 sec)
  • Tampilkan semester dan nama matakuliah khusus semester selain semester satu
mysql> SELECT semester, nama_mk FROM matakuliah
    -> WHERE NOT(semester=1);
+----------+-----------------------------------+
| semester | nama_mk                           |
+----------+-----------------------------------+
|        2 | Aljabar Linier                    |
|        2 | Instalasi Dan Troubleshooting     |
|        3 | Bahasa Inggris                    |
|        3 | Bahasa Rakitan dan C++            |
|        3 | Interaksi Manusia dan Komputer    |
|        4 | Bahasa Ingrris Teknik Informatika |
|        4 | Interfacing                       |
|        5 | Grafika Komputer                  |
|        5 | Algoritma Genetika                |
|        6 | Bisnis Berbasis Internet          |
|        6 | Cisco dan Mikrotik                |
|        6 | Administrasi Sistem Jaringan      |
|        7 | Animasi                           |
|        7 | Asistensi                         |
|        7 | Data Mining                       |
|        7 | e-Commerce                        |
+----------+-----------------------------------+
16 rows in set (0.00 sec)
  • Tampilkan semester dan nama matakuliah khusus semester sebelum semester tiga
mysql> SELECT semester, nama_mk FROM matakuliah
    -> WHERE semester < 3;
+----------+------------------------------------+
| semester | nama_mk                            |
+----------+------------------------------------+
|        1 | Pengantar Teknologi Informasi      |
|        1 | Algoritma Dan Pemrograman          |
|        1 | Arsitektur Dan Organisasi Komputer |
|        1 | Desain Web                         |
|        2 | Aljabar Linier                     |
|        2 | Instalasi Dan Troubleshooting      |
+----------+------------------------------------+
6 rows in set (0.00 sec)
  • Tampilkan semester dan nama matakuliah untuk semester tiga keatas
mysql> SELECT semester, nama_mk FROM matakuliah
    -> WHERE semester >= 3;
+----------+-----------------------------------+
| semester | nama_mk                           |
+----------+-----------------------------------+
|        3 | Bahasa Inggris                    |
|        3 | Bahasa Rakitan dan C++            |
|        3 | Interaksi Manusia dan Komputer    |
|        4 | Bahasa Ingrris Teknik Informatika |
|        4 | Interfacing                       |
|        5 | Grafika Komputer                  |
|        5 | Algoritma Genetika                |
|        6 | Bisnis Berbasis Internet          |
|        6 | Cisco dan Mikrotik                |
|        6 | Administrasi Sistem Jaringan      |
|        7 | Animasi                           |
|        7 | Asistensi                         |
|        7 | Data Mining                       |
|        7 | e-Commerce                        |
+----------+-----------------------------------+
14 rows in set (0.00 sec)
  • Tampilkan semester dan nama matakuliah untuk semester tdua dan empat
mysql> SELECT semester, nama_mk FROM matakuliah
    -> WHERE (semester = 2) OR (semester=4);
+----------+-----------------------------------+
| semester | nama_mk                           |
+----------+-----------------------------------+
|        2 | Aljabar Linier                    |
|        2 | Instalasi Dan Troubleshooting     |
|        4 | Bahasa Ingrris Teknik Informatika |
|        4 | Interfacing                       |
+----------+-----------------------------------+
4 rows in set (0.00 sec)
  • Tampilkan matakuliah semester dua yang sks-nya  tiga keatas
mysql> SELECT * FROM matakuliah
    -> WHERE (semester = 1) AND (sks>=3);
+------+------------------------------------+------+----------+
| npm  | nama_mk                            | sks  | semester |
+------+------------------------------------+------+----------+
| MK02 | Algoritma Dan Pemrograman          |    3 |        1 |
| MK03 | Arsitektur Dan Organisasi Komputer |    4 |        1 |
| MK04 | Desain Web                         |    4 |        1 |
+------+------------------------------------+------+----------+
3 rows in set (0.00 sec)
  • Tampilkan nama matakuliah  dan sks yang nama matakuliahnya berawalan huruf A
mysql> SELECT nama_mk, sks FROM matakuliah
    -> WHERE nama_mk LIKE 'A%';
+------------------------------------+------+
| nama_mk                            | sks  |
+------------------------------------+------+
| Algoritma Dan Pemrograman          |    3 |
| Arsitektur Dan Organisasi Komputer |    4 |
| Aljabar Linier                     |    2 |
| Algoritma Genetika                 |    4 |
| Administrasi Sistem Jaringan       |    3 |
| Animasi                            |    3 |
| Asistensi                          |    1 |
+------------------------------------+------+
7 rows in set (0.04 sec)

  • Tampilkan nama matakuliah  dan sks yang nama matakuliahnya mengandung kata ‘dan’
mysql> SELECT nama_mk, sks FROM matakuliah
    -> WHERE nama_mk LIKE '%dan%';
+------------------------------------+------+
| nama_mk                            | sks  |
+------------------------------------+------+
| Algoritma Dan Pemrograman          |    3 |
| Arsitektur Dan Organisasi Komputer |    4 |
| Instalasi Dan Troubleshooting      |    4 |
| Bahasa Rakitan dan C++             |    3 |
| Interaksi Manusia dan Komputer     |    3 |
| Cisco dan Mikrotik                 |    3 |
+------------------------------------+------+
6 rows in set (0.00 sec)
  •  Tampilkan nama matakuliah  dan sks yang nama matakuliahnya diakhir kata ‘Komputer’
mysql> SELECT nama_mk, sks FROM matakuliah
 -> WHERE nama_mk LIKE '%Komputer';
+------------------------------------+------+
| nama_mk                            | sks  |
+------------------------------------+------+
| Arsitektur Dan Organisasi Komputer |  4   |
| Interaksi Manusia dan Komputer     |  3   |
| Grafika Komputer                   |  3   |
+------------------------------------+------+
3 rows in set (0.00 sec)
  •  Tampilkan nama matakuliah  dan sks yang nama yang huruf keduanya “a”
mysql> SELECT nama_mk, sks FROM matakuliah
    -> WHERE nama_mk LIKE '_a%';
+-----------------------------------+------+
| nama_mk                           | sks  |
+-----------------------------------+------+
| Bahasa Inggris                    |    2 |
| Bahasa Rakitan dan C++            |    3 |
| Bahasa Ingrris Teknik Informatika |    2 |
| Data Mining                       |    2 |
+-----------------------------------+------+
4 rows in set (0.00 sec)