0
点赞
收藏
分享

微信扫一扫

MySQL - 37导入数据

dsysama 2022-09-13 阅读 84


LOAD DATA

在MySQL中,可以使用LOAD DATA语句将文本文件数据导入到对应的数据库表中,可以将LOAD DATA语句看成是SELECT…INTO OUTFILE的反操作。

数据文件位置/字段间分隔符/值用双引号引起/行间分隔符

#示例
LOAD DATA INFILE '/usr/local/employee.txt' INTO TABLE employee character set utf8
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';

source命令

在MySQL中,可以使用source命令导入较大的SQL文件。source命令可以导入使用mysqldump备份的sql文件。

# source命令的使用示例
source /root/mydb.sql

实战案例

使用 LOAD DATA

mysql> show variables like '%secure%';
+--------------------------+-------------+
| Variable_name | Value |
+--------------------------+-------------+
| require_secure_transport | OFF |
| secure_file_priv | /usr/local/ |
+--------------------------+-------------+
2 rows in set (0.01 sec)

mysql> delete from employee;
Query OK, 12 rows affected (0.01 sec)

mysql> select * from employee;
Empty set (0.00 sec)

mysql> LOAD DATA INFILE '/usr/local/employee.txt' INTO TABLE employee character set utf8
-> FIELDS TERMINATED BY ','
-> ENCLOSED BY '"'
-> LINES TERMINATED BY '\r\n';
Query OK, 12 rows affected, 1 warning (0.00 sec)
Records: 12 Deleted: 0 Skipped: 0 Warnings: 1

mysql> select * from employee;
+----+--------+------+--------+-------+
| id | name | sex | salary | dept |
+----+--------+------+--------+-------+
| 1 | lily0 | 1 | 5500 | deptA |
| 2 | lily1 | 0 | 4500 | deptA |
| 3 | lily2 | 0 | 4200 | deptB |
| 4 | lily3 | 1 | 7500 | deptB |
| 5 | lily4 | 0 | 8500 | deptA |
| 6 | lily5 | 1 | 6800 | deptB |
| 7 | lily6 | 1 | 12000 | deptA |
| 8 | lily7 | 1 | 3500 | deptA |
| 9 | lily8 | 1 | 6000 | deptC |
| 10 | lily9 | 1 | 8000 | deptC |
| 11 | lily10 | 0 | 10000 | deptA |
| 12 | lily11 | 0 | 4000 | deptA |
+----+--------+------+--------+-------+
12 rows in set (0.00 sec)

使用source命令

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mydb |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)

mysql> create database testdb;
Query OK, 1 row affected (0.03 sec)

mysql> use testdb;
Database changed
mysql> source /root/mydb.sql;
Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.09 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 12 rows affected (0.00 sec)
Records: 12 Duplicates: 0 Warnings: 0

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

mysql> show tables;
+------------------+
| Tables_in_testdb |
+------------------+
| employee |
+------------------+
1 row in set (0.01 sec)

mysql> select * from employee;
+----+--------+------+--------+-------+
| id | name | sex | salary | dept |
+----+--------+------+--------+-------+
| 1 | lily0 | 1 | 5500 | deptA |
| 2 | lily1 | 0 | 4500 | deptA |
| 3 | lily2 | 0 | 4200 | deptB |
| 4 | lily3 | 1 | 7500 | deptB |
| 5 | lily4 | 0 | 8500 | deptA |
| 6 | lily5 | 1 | 6800 | deptB |
| 7 | lily6 | 1 | 12000 | deptA |
| 8 | lily7 | 1 | 3500 | deptA |
| 9 | lily8 | 1 | 6000 | deptC |
| 10 | lily9 | 1 | 8000 | deptC |
| 11 | lily10 | 0 | 10000 | deptA |
| 12 | lily11 | 0 | 4000 | deptA |
+----+--------+------+--------+-------+
12 rows in set (0.00 sec)

mysql>


举报

相关推荐

0 条评论