日期:2014-05-16  浏览次数:20407 次

数据库管理中文件的使用 【数据库高效编程 - 学习笔记 第十一章】
从文本文件中读取数据(import

常用的文本文件:CSVComma Separated Values)文件,即:以逗号分隔的数值
形式如下:

M0001,李刚,1976-01-05,1
M0002,王二,1955-01-15,1
M0003,李四,1967-03-05,1


LOAD DATA INFILE 'D:/myCodes/test.cvs' INTO TABLE member FIELDS TERMINATED BY ','; -- 注意 test.cvs 文件的编码
SELECT * INTO OUTFILE 'D:/myCodes/out.cvs' FIELDS TERMINATED BY ',' FROM member;

执行文件中保存的 SQL 命令

SOURCE D:/myCodes/test.sql -- SOURCE 并不 SQL 命令,因此,结尾不用加分号 ;
mysql test -uroot -p -e "SOURCE D:/myCodes/test.sql" -- test 是数据库名

可以将上述 SQL 语句写成批处理文件,如:
mysql test -uroot -p -e "SOURCE D:/myCodes/test.sql"
pause


将 SQL 执行结果保存到文件中
键盘、鼠标等输入设备,被称为标准输入;
显示器等设备,属于标准输出。
标准输入、标准输出,这些设备,是可以变更的,这种变更操作就称为重定向(Redirect)

命令窗口中

dir > D:/myCodes/redirect.txt
dir > D:\myCodes\redirect.txt
TYPE D:\myCodes\redirect.txt
HELP
HELP TYPE




MySQL 中,

mysql -uroot -p > D:\myCodes\log.txt
TYPE D:\myCodes\log.txt

mysql -uroot -p -e "SOURCE D:/myCodes/test.sql" > D:\myCodes\log.txt




使用 tee 命令将 SQL 语句的执行结果保存到文件中

tee D:/myCodes/teeLog.txt
USE home;
SELECT * FROM customer;
notee;
EXIT;

TYPE D:\myCodes\teeLog.txt





数据库备份与恢复

将数据库整体保存到文件中的操作,被称为转储(dump
将转储文本文件还原成数据库的操作,被称为恢复(restore

mysqldump -u root -p home > D:/myCodes/home_back.sql --default-character-set=utf8

mysqladmin -u root -p CREATE home1
mysql -u root -p home1 < D:/myCodes/home_back.sql --default-character-set=utf8