Sintak Dasar
Di bawah ini adalah sintak dasar Insert statement menggunakan data dari table lain :
INSERT INTO table_name [(column_name1, column_name2, ... column_nameN)] SELECT column_name1, column_name2, ...column_nameN FROM source_table_name [WHERE condition];
Penjelasan sintak:
- table_name adalah table tujuan dimana data akan di masukkan.
- source_table_name adalah table asal yang datanya akan diambil untuk dimasukkan ke dalam table tujuan.
Contoh
Misalkan Anda telah memiliki table dengan nama "employee" dengan data-data sebagai berikut:
mysql> SELECT * FROM employee; +-------------+---------------+--------+----------+---------+------------+ | employee_id | employee_name | gender | address | salary | departemen | +-------------+---------------+--------+----------+---------+------------+ | 001 | Nursalim | L | Jakarta | 3000000 | IT | | 002 | Naura | P | Bandung | 2000000 | HRD | | 003 | Ahmad | L | Semarang | 5000000 | ACC | | 004 | Nani | P | Surabaya | 2500000 | FIN | | 005 | Nurul | P | Tegal | 4500000 | FIN | +-------------+---------------+--------+----------+---------+------------+ 5 rows in set (0.13 sec)
Dari data diatas, buatlah sebuah table dengan nam "employee_pria" dengan menjalankan script berikut ini:
mysql> CREATE TABLE employee_pria( -> employee_id VARCHAR(5), -> employee_name VARCHAR(20), -> salary numeric -> ); Query OK, 0 rows affected (0.21 sec)Selanjutnua, masukkan data kedalam table "employee_pria" diatas, dimana datanya diambil dari table "employee" yang memiliki jenis kelamin atau gender laki-laki.
mysql> INSERT INTO employee_pria -> SELECT employee_id, employee_name, salary -> FROM employee -> WHERE gender = 'L'; Query OK, 2 rows affected (0.07 sec) Records: 2 Duplicates: 0 Warnings: 0
Selanjutnya, coba Anda tampilkan data dari table "employee_pria" dengan menjalankan select statement berikut:
mysql> SELECT * FROM employee_pria; +-------------+---------------+---------+ | employee_id | employee_name | salary | +-------------+---------------+---------+ | 001 | Nursalim | 3000000 | | 003 | Ahmad | 5000000 | +-------------+---------------+---------+ 2 rows in set (0.00 sec)