1 从文本文件中读取数据(import)
CSV文件的内容是以逗号作为分隔符来组织起来的文件数据。
M0001 | a | 1976-2-5 | 1 |
M0002 | c | 1980-11-20 | 0 |
M0005 | j | 1982-6-8 | 0 |
MOOO3 | b | 1977-12-9 | 1 |
MOOO4 | y | 1956-8-15 | 1 |
向数据库中导入数据文件 LOAD DATA INFILE 文件名 INTO TABLE 表名 选项;
指定LOAD DATA INFILE 命名中的数据形式的选项 FIELDS TERMINATED BY 分隔字符(默认为 [ \ t ] ,即tab字符)
LINES TERMINATED BY 换行字符(默认为[ \ n ] )
IGNORE 最初跳过的行 LINES(默认为0)
例:LOAD DATA INFILE 'C:/DATA/T.CSV' INTO TABLE customer FIELDS TERMINATED BY ',';
2 将表中数据以文本文件形式导出(export)
以文本文件的形式导出数据 SELECT * INTO OUTFILE 文件名 选项 FROM 表名;
例:SELECT * INTO OUTFILE 'C:/data/out.csv' FIELDS TERMINATED BY ',' FROM customer;
3.执行文件中保存的SQL命令系列
运行保存了SQL系列语句的文件 SOURCE 文本文件名
sql.txt 内容 【use home;】、【select * from user;】、【select * from product;】
运行命令:SOURCE C:\data\sql.txt
注意SOURCE并非SQL命令,因此在命令行的最后不能以逗号[;]结束。
在命令行窗口执行文件中保存的SQL命令系列 mysql数据库名 -u 用户名 -p密码 -e “MySQL监视器的命令”
例:C:\users\user>mysql -uroot -p123456 -e "SOURCE C:\data\sql.txt"
4.文件中保存SQL的执行结果
在MySQL监视器中使用tee命令,也可以将SQL语句的执行结果保存到文本文件中。
将执行结果保存到文件中 | tee 输出的文件名;
mysql>tee log1.txt;
Logging to file 'log1.txt'
mysql>USE home;
Database changed;
mysql> SELECT * FROM customer;
mysql>notee
这样,我们可以将tee和notee命令之间执行的SQL语句的执行结果一字不漏地保存到文件log1.TXT中。
5.数据库整体的备份与恢复
使用mysqldump命令对数据库进行转储
转储数据库 | mysqldump -u 用户名 -p 密码 数据库名 > 输出文件名
例: mysqldump -u root -p123456 home >home_out.txt
使用转储文件进行数据库恢复
mysqladmin -u root -p123456 create home1
mysql - u root -p123456 home < home_out.txt