MySQL高效编程学习笔记(十一)--数据库管理文件的使用

一、 从文本文件中读取数据

  1. 数据导入
    CSV文件:以逗号分隔符组织起来的文本数据,CSV文件的每一行数据包含的数据项目和表的列名一一对应,CSV的一行数据导入到表中就成为表中的一条记录。
    在这里插入图片描述在这里插入图片描述
  2. 导入数据文件
    LOAD DATA INFILE 文件名 INTO TABLE 表名 选项;
    指定选项的语法:
    FIELDS TERMINATED BY 分隔字符(默认为\t)
    LINES TERMINATED BY 换行字符(默认为\n)
    IGNORE 最初跳过的行 LINES(默认为0)
    Eg: mysql> LOAD DATA INFILE 'C:/Users/HYJ/Desktop/product.csv' INTO TABLE product FIELDS TERMINATED BY ',';
    ERROR 1366 (HY000): Incorrect integer value: '茂禄驴4' for column 'pid' at row 1、
    错误原因,需要将.CSV文件编码改为ANSI(之前是utf-8)
    mysql> LOAD DATA INFILE 'C:/Users/HYJ/Desktop/product.csv' INTO TABLE product FIELDS TERMINATED BY ',';
    ERROR 1265 (01000): Data truncated for column 'price' at row 1
    错误原因:未添加LINES TERMINATED BY '\r\n'
    mysql> LOAD DATA INFILE 'C:/Users/HYJ/Desktop/product.csv' INTO TABLE product FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n';
    Query OK, 2 rows affected (0.03 sec)
    Records: 2  Deleted: 0  Skipped: 0  Warnings: 0
    这次对了,结果如下,出现中文乱码

在这里插入图片描述
最终版本:

mysql> LOAD DATA INFILE 'C:/Users/HYJ/Desktop/product.csv' INTO TABLE product character
 set gb2312 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n';

Query OK, 2 rows affected (0.03 sec)
Records: 2 Deleted: 0 Skipped: 0 Warnings: 0
在这里插入图片描述3. 导出文件
导出文件可以做必要时表数据的备份
select * into outfile ‘C:/Users/Administrator/Desktop/test1.csv’ from product;#老是报错Can’t create/write to file,结果修改了导出文件的路径就对了

select * into outfile ‘C:/Users/HYJ/Desktop/test/test1.csv’ from product;
在这里插入图片描述
select * from product into outfile ‘C:/Users/HYJ/Desktop/test/test3.csv’ fields terminated by ‘,’ lines terminated by ‘\n’;
在这里插入图片描述
把from product放后面也可以
select * into outfile ‘C:/Users/HYJ/Desktop/test/test2.csv’ fields terminated by ','lines terminated by ‘\n’ from product;

导出文件后用excel打开.csv文件可能出现中文乱码:
法一:导出语句加上CHARACTER SET gbk (注意加入的位置)
select * into outfile ‘C:/Users/HYJ/Desktop/test/test5.csv’ CHARACTER SET gbk fields terminated by ','lines terminated by ‘\n’ from product ;
法二:用记事本打开文件后保存为utf8格式,再用excel打开.csv文件就好了

4. 执行文件中保存的SQL命令系列
可以事先在文本中编辑一系列SQL命令,然后一次执行。
SOURCE 文本文件名
Eg1:新建一个orders的txt文件,写入要使用的mysql指令;
在这里插入图片描述
打开CMD,进入mysql的安装bin目录:
cd C:\Program Files\MySQL\MySQL Server 5.5\bin
进入(启动)mysql监视器:
mysql -u root –p123456
在这里插入图片描述
SOURCE C:\Users\HYJ\Desktop\test\orders.txt
5.在命令串口不启动mysql监视器直接运行SQL文本文件
mysql (数据库名) -u root -p123456 -e “命令”

mysql onlineshop -u root -p123456 -e “SOURCE C:\Users\HYJ\Desktop\test\orders.txt”

在这里插入图片描述
在这里插入图片描述
Eg3:可以在批处理文件中调用txt文件

批处理文件orders.bat内容如下:
cd C:\Program Files\MySQL\MySQL Server 5.5\bin
p123456 -e "SOURCE C:\Users\HYJ\Desktop\test\orders.txt"
pause

在这里插入图片描述
二、 文件中保存SQL的执行结果

  1. 重定向将SQL语句的执行结果输出到文本文件中
    Eg1:打开终端cmd,输入下面语句:
    cd C:\Program Files\MySQL\MySQL Server 5.5\bin 
    mysql onlineshop -uroot -p123456 > C:\Users\HYJ\Desktop\test\log.txt
    set names gbk;
    select * from  user;
    select * from  product;
    exit 

在这里插入图片描述
在这里插入图片描述
Eg2:直接运行含sql语句的txt文件
打开终端cmd,输入下面语句:
cd C:\Program Files\MySQL\MySQL Server 5.5\bin
mysql onlineshop –uroot –p123456 –e “SOURCE C:\Users\HYJ\Desktop\test\orders.txt” > C:\Users\HYJ\Desktop\test\log.txt
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
2. 使用tee命令将SQL语句的执行结果输出到文本文件中
Eg1:将tee 与notee之间的结果保存到文件log1.txt中
进入mysql 命令行
mysql> tee C:\Users\HYJ\Desktop\test\log1.txt
Logging to file ‘C:\Users\HYJ\Desktop\test\log1.txt’
mysql> use onlineshop
Database changed
mysql> select * from product;
±----±------±-------+
| pid | pname | price |
±----±------±-------+
| 1 | 灯 | 32 |
| 2 | 车 | 100000 |
| 3 | 精油 | 100 |
| 4 | 纸卷 | 15 |
| 5 | 钢笔 | 25 |
±----±------±-------+
5 rows in set (0.00 sec)
mysql> notee
Outfile disabled.
mysql> exit
Bye
log1.txt文件内容:
在这里插入图片描述在这里插入图片描述

三、 数据库的整体备份与恢复

  1. 转储与恢复
    转储:将数据库整体保存到文件的操作
    恢复: 将转储文本文件转换成数据库的操作
  2. 使用mysqldump命令对数据库进行转储
    Eg:将数据库onlinshop转储到文件onlinshop_out.txt
    mysqldump –u root –p123456 onlinshop > onlinshop_out.txt
    出现了拒绝访问的情况

原因:未指定输出文件目录

C:\Program Files\MySQL\MySQL Server 5.5\bin>mysqldump -u root -p123456 onlineshop > C:\Users\HYJ\Desktop\test\onlinshop_out.txt
C:\Program Files\MySQL\MySQL Server 5.5\bin>

在这里插入图片描述
还可以设置字符编码(加入default-character-set=utf8)
mysqldump -u root -p123456 onlineshop > C:\Users\HYJ\Desktop\test\onlinshop_out1.txt --default-character-set=utf8
3. 转储文件的恢复(有问题,怎么弄都不能恢复数据)

Eg:将onlinshop_out1.txt文件恢复为数据库onlinshop_out
mysqladmin –u root –p123456 create class_out character set utf8
mysql –u root –p 123456 class_out < C:\Users\HYJ\Desktop\test\class.txt --default-character-set=utf8

mysqldump -uroot -p123456 --default-character-set=utf8 mould_check > C:\Users\Administrator\Desktop\test\mould_checktest.sql

猜你喜欢

转载自blog.csdn.net/HuYingJie_1995/article/details/88684790