Mengekspor, Impor dan Menyalin Database di MySQL

Administrator Database pasti sering sekali malakukan ekspor, import dan salin databasenya. Seorang programmer database juga mesti tahu cara mengekspor, import dan salin databasenya. Berikut ini adalah tuturial sederhana mengekspor, import dan menyalin data pada database dengan menggunakan MySQL.

Meng-Ekspor Database
Sebelumnya, untuk mempermudah tutorial ini, copy dulu code ini ke MySQL kamu :


CREATE DATABASE test2;

use test2;

CREATE TABLE CD
(
Kode SMALLINT NOT NULL PRIMARY KEY,
NamaCD VARCHAR(50) NOT NULL,
Stok SMALLINT UNSIGNED NOT NULL,
Kategori VARCHAR(20)
);

INSERT INTO cd VALUES
(101,’Bloodshot’,10,’Rock’),
(102,’New Orleans Jazz’,17,’Jazz’),
(103,’Music for Ballet Class’,9,’Classical’),
(104,’Music for Solo Violin’,24,”),
(105,’Mississippi Blues’,2,’Blues’),
(106,’Mud on the Tires’,12,’Country’),
(107,’The Essence’,5,’New Age’),
(108,’The Magic of Satie’,42,’Classical’),
(109,’La Boheme’,20,’Opera’),
(110,’Ain\’t Ever Satisfied’,23,’Country’),
(111,’Live in Paris’,18,’Jazz’),
(112,’Richland Woman Blues’,22,’Blues’),
(113,’Stages’,42,’Blues’);

Bila sudah,,mari kita mulai.
Listing kode untuk mengekspor data seperti ini :


SELECT [ data/field ]
INTO OUTFILE ‘nama_file’
FIELDS
TERMINATED BY ‘isi’
ENCLOSED BY ‘isi’
ESCAPED BY ‘isi’
LINES
STARTING BY ‘isi’
TERMINATED BY ‘isi’
FROM nama_tabel;

Dalam proses mengekspor data, pasti kegiatan ini tidak lepas dari seleksi data. Nah, itulah sebabnya kita menggunakan perintah SELECT. Lalu perintah FIELDS dan LINES tersebut adalah pilihan. Tidak mengunakannya juga tidak apa-apa, atau bahkan menggunakan kedunya juga silakan. Bedanya bisa dilihat pada percobaan query ini :

SELECT namaCD, stok, kategori
INTO OUTFILE 'tes_1.txt'
FROM cd;

Hasil keluarannya dapat kamu lihat di data MySQL. Biasanya saat menginstall MySQL ada pemberitahuan mengenai penempatan data MySQL. Kalau saya simpannya di C:\Document and Setting s\All Users\Application Data\MySQL\MySQL Server 5.1\data\test2\
Test2 itu maksudnya nama databasenya dimana kita latihan mengeksport data.
Kalau kamu buka, pasti ada data tes_1.txt. Gambarnya bisa dilihat

Gambar diatas, dibuka dengan menggunakan UltraEdit.
Secara default, Pada proses mengeksport data, MySQL memisahkan data\field yang satu dengan yang lain dengan tab.

Simak lagi query kedua.


SELECT namaCD, stok, kategori
INTO OUTFILE ‘tes_2.txt’
FIELDS
TERMINATED BY ‘,’
FROM cd;

Keluarannya seperti gambar dibawah :

Dari gambar bisa kita simpulkan bahwa kalau kita tidak menggunakan opsi TERMINATED BY maka hasilnya akan terlihat pada gambar query pertama. Tapi bila kita inisialkan TERMINATED BY dengan misalkan tanda koma maka hasilnya seperti gambar diatas. Setiap field diakhiri dengan tanda koma.

Simak lagi query ketiga

SELECT namaCD, stok, kategori
INTO OUTFILE 'tes_3.txt'
FIELDS
ENCLOSED BY '|'
FROM cd;

Hasilnya dapat dilihat pada gambar dibawah ini :

Opsi ENCLOSED BY maksudnya adalah setiap field ditutup dengan karakter yang diinisialisasikan. Kalau di query ketiga dengan karakter |. Bila ENCLOSED BY tidak diinisialkan maka defaultnya adalah kosong.

Query ke-empat berikut

SELECT namaCD, stok, kategori
INTO OUTFILE 'tes_4.txt'
FIELDS
ENCLOSED BY '|'
TERMINATED BY ','
FROM cd;

Hasil keluarannya adalah :

Pada query ketiga, Opsi TERMINATED BY dikosongkan, maka defaultnya adalah karakter tab ditiap akhir field. Sedangkan query keempat ini menambahkan Opsi TERMINATED BY ‘,’. Jadi seperti itulah tampilannya.

Query kelima


SELECT namaCD, stok, kategori
INTO OUTFILE ‘tes_5.txt’
FIELDS
ESCAPED BY ‘\”
FROM cd;

Kalau kita lihat data keluarannya seperti pada gambar dibawah ini :

Data di baris ke-10 Ain’t Ever Satisfied berubah menjadi Ain’ ‘ t Ever Satisfied. Itulah kegunaan dari Opsi ESCAPED BY.

Selanjutnya kita akan mencoba bedannya dengan Opsi di LINES

contoh query keenam

SELECT namaCD, stok, kategori
INTO OUTFILE 'tes_6.txt'
LINES
STARTING BY 'adi '
FROM cd;

Hasil keluarannya seperti gambar dibawah ini :

jelas bahwa opsi STARTING BY berfungsi untuk memberikan karakter awal dari tiap baris data. Sehingga karakter “adi” selalu muncul pada tiap baris data.

Query ketujuh :

SELECT namaCD, stok, kategori
INTO OUTFILE 'tes_7.txt'
LINES
TERMINATED BY '\n\n'
FROM cd;

Hasil keluarannya seperti gambari dibawah ini :

Maksud TERMINATED BY pada opsi LINES adalah tiap baris dari data akan diberi akhiran karakter apa. Kalau di query ketujuh, saya menambahkan karakter \n yaitu enter sebanyak 2 kali.

Menyalin data dari table satu ke table lain

Pada MySQL, kita dapat menyalin dari table satu ke table yang lain. Disini, kita masih menggunakan tabel cd sebagai percobaan. Untuk menyalin table cd, kita harus membuat table salinannya terlebih dahulu. Berikut adalah contoh table cd2 sebagai table salinannya :

CREATE TABLE cd2(
cdid SMALLINT NOT NULL PRIMARY KEY,
cdname VARCHAR(40) NOT NULL,
instok SMALLINT UNSIGNED NOT NULL
);

Table cd2 telah kita buat, sekarang mari kita coba.
Untuk menyalin data ada 2 cara yang dapat digunakan di MySQL:

1. Dengan perintah INSERT
Kode umum untuk menyalin dengan perintah INSERT yaitu :

INSERT INTO [ nama_table_salinan ]
SELECT [ nama_field_table_master ] FROM [ nama_table_master ]

Table salinan disini adalah table cd2 sedangkan table master adalah cd. Jadi perintahnya seperti ini.

INSERT INTO cd2
SELECT kode,namacd,stok FROM cd

Kalau kita lihat cd2, pasti data-datanya akan sama dengan data pada cd.

2. Dengan perintah REPLACE

Dengan perintah REPLACE kita juga dapat menyalin data dari table satu ke table lain.Lalu apa bedanya dengan perintah INSERT ? Contoh kasus diatas, coba sekarang kamu salin kembali data cd ke data cd2 dimana data cd memiliki kategori = ‘jazz’.

INSERT INTO cd2
SELECT kode,namacd,stok FROM cd
WHERE kategori = ‘jazz’;

Pasti ada error yang maksudnya adalah ada duplikat data (primary key pada cdid).

Nah dengan perintah REPLACE kamu tidak akan menemukan error. Karena sesuai namanya, REPLACE berarti mengganti isi table dengan table lain.

REPLACE INTO cd2
SELECT kode,namacd,stok FROM cd
WHERE kategori = ‘jazz’;

Mengimport data ke dalam database

Pada MySQL, terdapat 3 cara untuk memasukan data ke dalam database yaitu :

1. Menggunakan perintah LOAD DATA

Perintah ini adalah perintah memasukan data dari luar mysql. Kodenya :

LOAD DATA INFILE ‘nama_file’
INTO TABLE ‘nama_table_tujuan’;

Sebelumnya kita mesti membuat table kosong terlabih dahulu untuk menyimpan contoh masukan.Tablenya seperti ini :


CREATE TABLE cd3(
namaCD VARCHAR(50) NOT NULL,
stok SMALLINT UNSIGNED NOT NULL,
kategori VARCHAR(20) NOT NULL
);

Sekarang kita lakukan perintah ekspor data dari tabel cd.


SELECT namacd,stok,kategori
INTO OUTFILE ‘tes_in.txt’
FROM cd
WHERE kategori = ‘blues’;

Setelah file tes_in.txt berisi namacd, stok, dan kategori yang memiliki blues. Sekarang kita simpan atau masukan data pada tes_in.txt pada table cd3. Caranya :


LOAD DATA INFILE ‘tes_in.txt’
INTO TABLE cd3;

Itulah cara penggunaan perintah LOAD DATA untuk memasukan data dari luar MySQL. Silakan cek datanya dengan perintah SELECT ALL.

2. Menggunakan perintah MySQL

Perintah MySQL dalam hal ini adalah perintah INSERT. Dan saya yakin kamu sering menggunakannya. Berikut Kodenya :

INSERT INTO [nama_table] VALUES (inputan_data);

Perintah yang satu ini tidak saya bahas panjang lebar karena pasti sudah sering digunakan.

3. Menggunakan perintah SOURCE

Sama seperti pada perintah LOAD DATA, perintah ini memasukan data dari luar MySQL ke dalam database MySQL. Hanya bedanya antara LOAD DATA adalah isi dari file masukan adalah perintah-perintah MySQL. Contoh disini saya membuat file bernama ‘contoh.txt’ yang saya simpan di C:\


INSERT INTO cd3 VALUES
(‘Sheila On Seven’,20, ‘Blues’);

Lalu saya lakukan perintah SOURCE seperti :


SOURCE C:\contoh.txt

Yang mesti diperhatikan bila menggunakan perintah SOURCE adalah penempatan file masukannya.

Iklan

4 thoughts on “Mengekspor, Impor dan Menyalin Database di MySQL

  1. salam kenal y mas…
    gini, q mw tanya, kalo fungsi load data infile, bisa gak y jika data yang akan dimasukkan gak sama dengan folder databasenya…
    soalnya dah dcoba2 gak bs…
    q pernah nyoba, tapi harus 1 folder tempat penyimpanan database…
    mhon bantuannya y mas, tq

  2. @ via :

    salam kenal juga,,
    bisa kok teman,,
    biasain baca manual mysql-nya ya..

    http://dev.mysql.com/doc/refman/5.1/en/load-data.html

    liat yg parameter [LOCAL]

    ni sy udah coba,,,export n load table diluar local database,,

    misalnya saya export data ke C:/nyomandb.sql

    trus klu mau di load infile,,seperti ini :

    load data infile ‘C:/nyomandb.sql’ into table personal2;

    mulus jalannya kawan,,gak ada bunyi,,,tit…:D

Silahkan Komentar...

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s