Dynamic Blinkie Text Generator at TextSpace.net

Feedburner

I heart FeedBurner

Jumat, 22 Januari 2016

Cara copy isi tabel mysql

Dalam tutorial belajar MySQL kali ini saya akan membahas query untuk menduplikasi tabel MySQL. Kita akan mempelajari cara mengcopy struktur tabel MySQL berserta isi tabel MySQL.
Tutorial ini menggunakan database mahasiswa yang dibuat pada tutorial Cara Menjalankan Query MySQL dari File Teks.

Cara Mengcopy Struktur Tabel MySQL

Terdapat beberapa cara untuk menduplikasi tabel di dalam MySQL, salah satunya menggunakan perintah mysqldump. Namun kali ini saya akan membahas cara mencopy tabel MySQL menggunakan query dari dalam MySQL.
Untuk membuat struktur tabel baru yang sama persis dengan tabel yang sudah ada, bisa menggunakan format query sebagai berikut:
1
CREATE TABLE nama_tabel_baru LIKE nama_tabel_lama;
Sebagai contoh, saya akan menduplikasi tabel daftar_dosen menggunakan perintah berikut ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mysql> CREATE TABLE daftar_dosen_baru LIKE daftar_dosen;
Query OK, 0 rows affected (0.09 sec)
 
mysql> DESCRIBE daftar_dosen_baru;
+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| NIP        | char(10)     | NO   | PRI | NULL    |       |
| nama_dosen | varchar(50)  | NO   |     | NULL    |       |
| no_hp      | char(13)     | YES  |     | NULL    |       |
| alamat     | varchar(100) | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+
4 rows in set (0.06 sec)
  
mysql> SELECT * FROM daftar_dosen_baru;
Empty set (0.00 sec)
Pada query pertama, saya menggunakan perintah CREATE TABLE daftar_dosen_baru LIKE daftar_dosen untuk membuat tabel daftar_dosen_baru yang akan menggunakan struktur yang sama dengan tabel daftar_dosen.
Perintah DESCRIBE daftar_dosen_baru memperlihatkan bahwa strukur tabel daftar_dosen_baru sama persis dengan struktur tabel aslinya: daftar_dosen.
Bagaimana dengan isi dari tabel ini? Dari query SELECT * FROM daftar_dosen_baru, terlihat bahwa tabel ini tidak berisi data apapun.

Cara Mengcopy Isi Tabel MySQL

Untuk mengcopy isi sebuah tabel ke tabel lain di dalam MySQL kita bisa memanfaatkan gabungan query INSERT dengan query SELECT. Sebagai contoh, untuk menduplikasi isi tabel daftar_dosen ke tabel daftar_dosen_baru, saya bisa menggunakan query berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mysql> INSERT INTO daftar_dosen_baru SELECT * FROM daftar_dosen;
Query OK, 8 rows affected (0.06 sec)
Records: 8  Duplicates: 0  Warnings: 0
  
mysql> SELECT * FROM daftar_dosen_baru;
+------------+------------------+------------+-----------+
| NIP        | nama_dosen       | no_hp      | alamat    |
+------------+------------------+------------+-----------+
| 0160436012 | Sabrina Sari     | 0812349900 | Pekanbaru |
| 0260432002 | Maya Ari Putri   | 0812345234 | Palembang |
| 0275430005 | Susi Indriani    | 0812656532 | Palembang |
| 0480432066 | Tia SariSantrini | 0812451177 | Padang    |
| 0576431001 | M. Siddiq        | 0812979005 | Jakarta   |
| 0770435006 | Rubin Hadi       | 0812567678 | Papua     |
| 0869437003 | Arif Mustalifah  | 0812338877 | Aceh      |
| 1080432007 | Arif Budiman     | 0812456345 | Jakarta   |
+------------+------------------+------------+-----------+
8 rows in set (0.00 sec)
Dengan menggunakan query diatas, seluruh isi tabel daftar_dosen akan dicopy kedalam tabel daftar_dosen_baru.
Bagaimana jika saya hanya butuh sebagian data saja?
Jika kita cuma butuh mengcopy sebagian data dari tabel lama (tidak semua data), cukup memberikan tambahan perintah kondisi seperti WHERE pada query SELECT. Sebagai contoh, jika saya ingin mengcopy hanya dosen yang beralamat di Palembang, saya bisa menggunakan query berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
mysql> TRUNCATE daftar_dosen_baru;
Query OK, 0 rows affected (0.14 sec)
  
mysql> SELECT * FROM daftar_dosen_baru;
Empty set (0.00 sec)
  
mysql> INSERT INTO daftar_dosen_baru SELECT * FROM
daftar_dosen WHERE alamat = 'Palembang';
Query OK, 2 rows affected (0.04 sec)
Records: 2  Duplicates: 0  Warnings: 0
  
mysql> SELECT * FROM daftar_dosen_baru;
+------------+----------------+------------+-----------+
| NIP        | nama_dosen     | no_hp      | alamat    |
+------------+----------------+------------+-----------+
| 0260432002 | Maya Ari Putri | 0812345234 | Palembang |
| 0275430005 | Susi Indriani  | 0812656532 | Palembang |
+------------+----------------+------------+-----------+
2 rows in set (0.00 sec)
Query TRUNCATE daftar_dosen_baru digunakan untuk mengosongkan isi tabel daftar_dosen_baru.
Selanjutnya saya memastikan tabel daftar_dosen_baru sudah kosong dari perintah SELECT * FROM daftar_dosen_baru. Terkahir, saya mengcopy data dari tabel daftar_dosen, namun hanya dosen yang beralamat di Palembang menggunakan kondisi WHERE alamat = ‘Palembang’.

Tutorial cara mengcopy atau menduplikasi tabel MySQL ini kadang diperlukan dalam kasus dimana kita butuh membuat tabel yang sama persis. Tabel ini bisa digunakan sebagai tabel ‘percobaan’ untuk mengamankan tabel asli dari perubahan.

Tidak ada komentar:

Posting Komentar