Insert Statement Di MySQL

0
Pada Panduan Tutorial MySQL ini, kita akan bahas lebih detail pembahasan Insert statement untuk memasukkan data ke dalam sebuah tabel. Pada pokok bahasan ini, yang akan kita bahas:

  • Dasar Insert Statement
  • Insert Statement Menggunakan Select Statement

Dasar Insert Statement


Untuk memasukkan data kedalam sebuah tabel, Anda dapat menggunakan perintah Insert seperti sintak berikut ini:

INSERT INTO nama_tabel (nama_kolom1, nama_kolom2, nama_kolom3,...nama_kolomN)  
VALUES (nilai_1, nilai_2, nilai_3,...nilai_N);

Penjelasan sintak diatas, kurang lebih sebagai berikut:

  • nama_tabel adalah tabel yang akan dimasukkan datanya.
  • nama_kolom1, nama_kolom2, nama_kolom3, dan seterusnya adalah kolom-kolom dimana datanya akan dimasukkan.
  • nilai_1, nilai_2, nilai_3, dan seterusnya adalah nilai atau data yang akan dimasukkan kedalam kolom-kolom yang bersangkutan. Data yang dimasukkan harus sesuai dengan tipe data yang ada di kolom. Untuk data jenis string atau karakter dimasukkan ke dalam tipe data string.

Anda juga boleh menggunakan Insert statement tanpa harus menyertakan nama kolom, yang penting urutan data yang akan dimasukkan harus sama dengan urutan kolom pada sebuah tabel.

Berikut tabel contoh penggunaan data yang dimasukkan:

Tipe Data Contoh Penggunaan
String 'Ahmad Subardjo', 'Jalan Tubagus Ismail Dalam'
Integer/Numerik 1, 1000.00, 0.25
Date/Time '2016-01-25','2016-01-25 23:56:25'

Contoh

Sebagai contoh, misalkan Anda telah memiliki dua buah tabel yaitu pegawai dan departemen dengan struktur sebagai berikut:

mysql> DESC pegawai;
+---------------+---------------+------+-----+---------+-------+
| Field         | Type          | Null | Key | Default | Extra |
+---------------+---------------+------+-----+---------+-------+
| id_pegawai    | varchar(5)    | NO   | PRI | NULL    |       |
| nama_lengkap  | varchar(30)   | NO   |     | NULL    |       |
| jenis_kelamin | char(1)       | YES  |     | NULL    |       |
| alamat        | varchar(30)   | NO   |     | NULL    |       |
| umur          | int(3)        | YES  |     | 0       |       |
| gaji          | decimal(10,0) | YES  |     | NULL    |       |
| departemen    | varchar(5)    | YES  |     | NULL    |       |
+---------------+---------------+------+-----+---------+-------+
7 rows in set (0.36 sec)
mysql> DESC departemen;
+-----------------+-------------+------+-----+---------+-------+
| Field           | Type        | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| id_departemen   | varchar(5)  | NO   |     | NULL    |       |
| nama_departemen | varchar(20) | NO   |     | NULL    |       |
+-----------------+-------------+------+-----+---------+-------+
2 rows in set (0.19 sec)

Di bawah ini adalah langkah-langkah untuk untuk menjalankan insert statement pada kedua tabel diatas:

  • Login ke MySQL server menggunakan user dan password yang sah. Pada contoh ini, saya menggunakan user root dengan password kosong.
    # mysql -u root
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 6
    Server version: 5.5.36 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    
  • Pilih database dimana tabel yang bersangkutan berada. Pada contoh ini, kita menggunakan database simpeg.
    mysql> USE simpeg;
    Database changed
    
    
  • Jalankan insert statement berikut ini untuk memasukkan data pada kedua tabel diatas:
    INSERT INTO departemen VALUES ('ACC','Accounting');
    INSERT INTO departemen VALUES ('HR','Human Resource');
    INSERT INTO departemen VALUES ('FIN','Finance');
    INSERT INTO departemen VALUES ('IT','Information Technology');
    INSERT INTO departemen VALUES ('MKT','Marketing');
    INSERT INTO departemen VALUES ('SLS','Sales');
    
    INSERT INTO pegawai(id_pegawai, nama_lengkap, jenis_kelamin, alamat, umur, gaji, departemen)
       VALUES('P001','Nursalim','L','Jakarta',27,15000000,'IT');
    INSERT INTO pegawai(id_pegawai, nama_lengkap, jenis_kelamin, alamat, umur, gaji, departemen)
       VALUES('P002','Iskiyati','P','Bandung',23,7000000,'MKT');
    INSERT INTO pegawai(id_pegawai, nama_lengkap, jenis_kelamin, alamat, umur, gaji, departemen)
       VALUES('P003','Nurul Hikmah','P','Semarang',20,4000000,'HR');
    INSERT INTO pegawai(id_pegawai, nama_lengkap, jenis_kelamin, alamat, umur, gaji, departemen)
       VALUES('P004','Ahmad Fatoni','L','Cirebon',26,10000000,'IT');
    INSERT INTO pegawai(id_pegawai, nama_lengkap, jenis_kelamin, alamat, umur, gaji, departemen)
       VALUES('P005','Sri Rahayu','P','Surabaya',25,8000000,'ACC');
    INSERT INTO pegawai(id_pegawai, nama_lengkap, jenis_kelamin, alamat, umur, gaji, departemen)
       VALUES('P006','Naura Krasiva','P','Magelang',21,3000000,'HR');
    INSERT INTO pegawai(id_pegawai, nama_lengkap, jenis_kelamin, alamat, umur, gaji, departemen)
       VALUES('P007','Ana Fauziyah','P','Tegal',22,4500000,'SLS');
    INSERT INTO pegawai(id_pegawai, nama_lengkap, jenis_kelamin, alamat, umur, gaji, departemen)
       VALUES('P008','Irwan Gunawan','L','Tangerang',30,11000000,'FIN');
    INSERT INTO pegawai(id_pegawai, nama_lengkap, jenis_kelamin, alamat, umur, gaji, departemen)
       VALUES('P009','Ali Amrullah','L','Jakarta',28,8500000,'IT');
    INSERT INTO pegawai(id_pegawai, nama_lengkap, jenis_kelamin, alamat, umur, gaji, departemen)
       VALUES('P010','Andi Lala','L','Bogor',23,6000000,'FIN');
    

Apabila sudah selesai. Untuk menampilkan datanya, Anda tinggal menggunakan Select statement seperti contoh berikut ini:

mysql> SELECT * FROM departemen;
+---------------+----------------------+
| id_departemen | nama_departemen      |
+---------------+----------------------+
| ACC           | Accounting           |
| HR            | Human Resource       |
| FIN           | Finance              |
| IT            | Information Technolo |
| MKT           | Marketing            |
| SLS           | Sales                |
+---------------+----------------------+
6 rows in set (0.05 sec)
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)

Select statement akan kita bahas lebih detail pada tutorial berikutnya.

Insert Statement Menggunakan Select Statement


Selain menggunakan perintah Insert secara langsung, Anda juga dapat menggunakan Insert statement yang dikombinasikan dengan Select statement. Yaitu memasukkan sebuah data ke dalam tabel, yang datanya diambil dari tabel lainnya.

Contoh,

Buatlah sebuah tabel dengan nama "karyawan" dimana struktur kolomnya diambil dari tabel "pegawai" yang telah Anda buat sebelumnya. Untuk membuatnya, Anda bisa menggunakan query berikut ini.

CREATE TABLE karyawan
AS SELECT * FROM pegawai
WHERE 1=2;

Perintah diatas adalah salah satu trik untuk membuat tabel duplikat "karyawan" dari tabel "pegawai". Dimana, perintah WHERE 1 = 2 merupakan logika yang akan menghasilkan nilai false. Sehingga yang dibuat hanya strukturnya saja, tanpa menduplikasi datanya.

Sebagai bukti, kita bisa menampilkan struktur tabel "karyawan" dengan menjalankan perintah berikut:

mysql> DESC karyawan;
+---------------+---------------+------+-----+---------+-------+
| Field         | Type          | Null | Key | Default | Extra |
+---------------+---------------+------+-----+---------+-------+
| id_pegawai    | varchar(5)    | NO   |     | NULL    |       |
| nama_lengkap  | varchar(30)   | NO   |     | NULL    |       |
| jenis_kelamin | char(1)       | YES  |     | NULL    |       |
| alamat        | varchar(30)   | NO   |     | NULL    |       |
| umur          | int(3)        | YES  |     | 0       |       |
| gaji          | decimal(10,0) | YES  |     | NULL    |       |
| departemen    | varchar(5)    | YES  |     | NULL    |       |
+---------------+---------------+------+-----+---------+-------+
7 rows in set (0.00 sec)

Selanjutnya, Anda tinggal memasukkan data ke tabel "karyawan" dengan data yang berasal dari tabel "pegawai" dengan cara sebagai berikut:

mysql> INSERT INTO karyawan
    -> SELECT * FROM pegawai;
Query OK, 10 rows affected (0.04 sec)
Records: 10  Duplicates: 0  Warnings: 0

Terakhir, Anda tampilkan data dari tabel "karyawan" menggunakan Select statement berikut:

mysql> SELECT * FROM karyawan;
+------------+---------------+---------------+-----------+------+----------+------------+
| 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)

Isinya sama bukan...?

Sekian tutorial singkan Panduan MySQL tentang Insert Statement. Semoga bermanfaat & Happy Learning MySQL.

Salam,

Nursalim

0 Comments