data import MySQL
Data Import MySQL
Terdapat dua cara mudah untuk mengimport data yang dieksport oleh MySQL dalam MySQL.
1. Import arahan MySQL
Gunakan arahan mysql untuk mengimport format sintaks:
nama pengguna mysql -u - p Kata laluan < Data pangkalan data yang akan diimport (demo.sql)
Contoh:
# mysql -uroot -p123456 < demo.sql
Arahan di atas akan mengimport keseluruhan demo.sql pangkalan data yang disandarkan.
2. Import arahan sumber
Arahan sumber perlu log masuk ke terminal pangkalan data terlebih dahulu:
mysql> create database abc; # 创建数据库 mysql> use abc; # 使用已创建的数据库 mysql> set names utf8; # 设置编码 mysql> source /home/abc/abc.sql # 导入备份数据库
3. Gunakan LOAD DATA untuk mengimport data
MySQL menyediakan pernyataan LOAD DATA INFILE untuk memasukkan data. Dalam contoh berikut, fail dump.txt akan dibaca daripada direktori semasa dan data dalam fail akan dimasukkan ke dalam jadual mytbl pangkalan data semasa.
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;Jika kata kunci TEMPATAN ditentukan, ia menunjukkan bahawa fail dibaca daripada hos klien mengikut laluan. Jika tidak dinyatakan, fail dibaca mengikut laluan pada pelayan.
Anda boleh menentukan secara eksplisit pembatas nilai lajur dan penanda akhir baris dalam penyata LOAD DATA, tetapi penanda lalai ialah penentu kedudukan dan baris baharu.
Sintaks fasal FIELDS dan LINES bagi kedua-dua arahan adalah sama. Kedua-dua klausa adalah pilihan, tetapi jika kedua-duanya dinyatakan, klausa FIELDS mesti muncul sebelum klausa LINES.
Jika pengguna menentukan klausa FIELDS, klausanya (DIAMATKAN OLEH, [PILIHAN] DISERTAKAN OLEH, dan ESCAPED BY) juga adalah pilihan, bagaimanapun, pengguna mesti menentukan sekurang-kurangnya satu daripadanya.
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl -> FIELDS TERMINATED BY ':' -> LINES TERMINATED BY '\r\n';LOAD DATA Secara lalai, data dimasukkan dalam susunan lajur dalam fail data Jika lajur dalam fail data tidak konsisten dengan lajur dalam jadual yang dimasukkan, anda perlu menentukan susunannya. daripada lajur.
Sebagai contoh, susunan lajur dalam fail data ialah a, b, c, tetapi susunan lajur dalam jadual yang disisipkan ialah b, c, a, maka sintaks import data adalah seperti berikut:
mysql> LOAD DATA LOCAL INFILE 'dump.txt' -> INTO TABLE mytbl (b, c, a);
4 Gunakan mysqlimport untuk mengimport data
Pelanggan mysqlimport menyediakan antara muka baris arahan untuk LOAD DATA. pernyataan INFILEQL. Kebanyakan pilihan mysqlimport sepadan terus dengan klausa LOAD DATA INFILE.
Untuk mengimport data daripada fail dump.txt ke dalam jadual data mytbl, anda boleh menggunakan arahan berikut:
$ mysqlimport -u root -p --local database_name dump.txt password *****mysqlimport boleh menentukan pilihan untuk menetapkan format yang ditentukan format pernyataan arahan adalah seperti berikut:
$ mysqlimport -u root -p --local --fields-terminated-by=":" \ --lines-terminated-by="\r\n" database_name dump.txt password *****mysqlimport untuk menetapkan susunan lajur:
$ mysqlimport -u root -p --local --columns=b,c,a \ database_name dump.txt password ****
Pengenalan kepada pilihan biasa mysqlimport
Pilihan | Fungsi |
---|---|
-d atau --delete | Padam semua maklumat dalam jadual data sebelum mengimport data baharu ke dalam jadual data |
-f atau --force | Tidak kira sama ada ralat ditemui, mysqlimport akan memaksa untuk terus memasukkan data |
-i atau --ignore | mysqlimport langkau atau abaikan mereka yang mempunyai unik yang sama Fail akan diabaikan. |
-l atau -lock-tables | Kunci jadual sebelum data dimasukkan, dengan itu menghalang, Apabila anda mengemas kini pangkalan data, pertanyaan dan kemas kini pengguna akan terjejas. |
-r atau -replace | Pilihan ini mempunyai kesan yang bertentangan dengan pilihan -i yang akan digantikan Terdapat rekod dengan kunci unik yang sama dalam jadual. |
--fields-enclosed- by= char | Menentukan perkara yang perlu disertakan rekod data dalam fail teks Data disertakan dalam petikan berganda. Secara lalai, data tidak disertakan dalam aksara. |
--fields-terminated- by=char | Menentukan pemisah antara nilai setiap data, dalam fail yang dibatasi tempoh, Pembatas adalah titik. Anda boleh menggunakan pilihan ini untuk menentukan pembatas antara data. Pembatas lalai ialah aksara tab (Tab) |
--lines-terminated- by=str | Pilihan ini menentukan data antara baris dalam rentetan dipisahkan fail teks atau aksara. Secara lalai, mysqlimport menggunakan baris baharu sebagai pemisah baris.Anda boleh menggantikan satu aksara secara pilihan dengan rentetan: Barisan baharu atau gerabak kembali. |
Pilihan yang biasa digunakan bagi arahan mysqlimport termasuk -v untuk memaparkan versi (versi), -p untuk meminta kata laluan (kata laluan), dsb.
Tutorial video yang disyorkan: