MySQL 文本文件的导入导出数据sql演示

MySQL写入数据通常用insert语句,如
 
INSERT INTO person VALUES(张三,20),(李四,21),(王五,70)…;

但有时为了更快速地插入大批量数据或交换数据,需要从文本中导入数据或导出数据到文本。
一、 建立测试表,准备数据

首先建立一个用于测试的表示学生信息的表,字段有id、姓名、年龄、城市、薪水。Id和姓名不
能为空。
 

 代码如下 复制代码
CREATE TABLE person(
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(40) NOT NULL,
    city VARCHAR(20),
    salary INT,
    PRIMARY KEY(id)
)engine=innodb charset=gb2312;

创建表截图如下:

接着写一个用于导入的文本文件:c:data.txt。

张三    31    北京    3000
李四    25    杭州    4000
王五    45    N     4500
小明    29    天津    N

每一项之间用Tab键进行分隔,如果该字段为NULL,则用N表示。

二、 导入数据

输入命令,进行导入。

 代码如下 复制代码

LOAD DATA LOCAL INFILE "c:/data.txt"
INTO TABLE person(name,age,city,salary);

导入数据截图如下:

其中local表示本地。执行后,可以看到NULL数据也被正确地导入。

三、 导出数据

现在将这个表导出为文本文件:c:data_out.txt。

 代码如下 复制代码

 
SELECT name,age,city,salary
INTO OUTFILE "c:/data_out.txt"
LINES TERMINATED BY "rn"
FROM person;

导出数据截图如下:

其中lines terminated by “rn”表示每一行(即每一条记录)用rn分隔,rn是window系
统的换行符。导出的data_out.txt与data.txt的内容完全一样。

当然我们还可以使用mysqldump命令导入导出了,这个才是标准的mysql 数据导入导出命令了。

第一步,导出旧库

 代码如下 复制代码

mysqldump --default-character-set latin1 -uroot -pXXX --database db > /tmp/old.sql

第二步,转换编码

 代码如下 复制代码

iconv -t utf-8 -f gbk -c /tmp/old.sql > /tmp/new.sql

第三步,导入新库

修改new.sql,增加一条sql语句: “SET NAMES utf8;”,保存。

四、 运行环境

Windows vista home basic
MySQL 5.1.34-community

五、 注意

字段之间的分隔和记录(行)之间的分隔默认是t(即Tab)和n。但可以改变,如:
FIELDS TERMINATED BY ‘,’ –字段用,进行分隔
LINES TERMINATED BY ‘;’ –记录用; 进行分隔
另外要注意其它操作系统的换行符与windows可能不相同。

时间: 2025-01-02 10:51:31

MySQL 文本文件的导入导出数据sql演示的相关文章

MySQL 文本文件的导入导出数据的方法_Mysql

MySQL写入数据通常用insert语句,如 复制代码 代码如下: insert into person values(张三,20),(李四,21),(王五,70)-; 但有时为了更快速地插入大批量数据或交换数据,需要从文本中导入数据或导出数据到文本. 一. 建立测试表,准备数据 首先建立一个用于测试的表示学生信息的表,字段有id.姓名.年龄.城市.薪水.Id和姓名不 能为空. 复制代码 代码如下: create table person( id int not null auto_increm

Mysql中文乱码以及导出为sql语句和Excel问题解决

这几天基于Heritrix写了一个爬虫,用到mysql,在导入导出数据时,遇到一些乱码问题,好不容易解决了,记录一下,以备查看. 一.导出数据. 先说明一下自己的环境:Mac OS X 10.8.3, MySQL Community Server 5.6.10, MySQL Workbench 5.2.47. 我想把本机数据库内的数据迁移到另一台机器上,于是使用Workbench中自带的import/export功能,其实就是调用mysqldump.不幸的是,出现了版本不一致的错误. 错误没治了

MySQL导入导出数据出现乱码的解决办法

  在mysql导入导出数据时经常出现中文乱码的问题,大多是因类导入导出时编码设置不一致所引起的.本文介绍了不同平台下的编码转换方法,供大家参考. 在linux系统中默认的是utf8编码,而windows是gbk编码,如果在这二个系统间导入未经指定编码的数据,就会出现乱码. 首先,确定导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8, 例如: mysqldump -uroot -p --default-character-set=u

解决mysql导入导出数据乱码问题

  最近在linux上面用mysqldump导出数据,放在windows系统中导入就会出现中文乱码,然后就会导致出现: Unknown MySQL server host和Can't connect to the server的错误. 解决mysql导入导出数据乱码问题就是统一导入导出的编码,linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--

mysql导入导出数据中文乱码解决方法小结_Mysql

linux系统中 linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8, 例如下面的代码: 复制代码 代码如下: mysqldump -uroot -p --default-character-set=utf8 dbname tablename > bak.sql 那么导入数据的时候也要使用-

mysql利用命令导出数据sql语句

命令行source 导入数据库:  代码如下 复制代码 1,将要导入的.sql文件移至bin文件下,这样的路径比较方便 2,同上面导出的第1步 3,进入MySQL:mysql -u 用户名 -p 如我输入的命令行:mysql -u root -p    (输入同样后会让你输入ySQL的密码) 4,在MySQL-Front中新建你要建的数据库,这时是空数据库,如新建一个名为blog的目标数据库(mysql>create database blog;) 5,输入:mysql>use 目标数据库名

mysql导入导出数据中文乱码解决方法总结

linux系统中 linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8, 例如下面的代码:  代码如下 复制代码 mysqldump   -uroot  -p  --default-character-set=utf8   dbname tablename  >  bak.sql 那么导入数据

php mysql数据的导入导出,数据表结构的导入导出

实现数据的导入导出,数据表结构的导入导出 ********************************************************/         //         //包含Mysql数据库操作文件         //         require_once("MysqlDB.php");          /******************************************************* **类    名:MysqlDB

SQL Server三种导入导出数据方式比较

当我们建立一个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新建的数据库中时,尤其是在进行数据检验.净化和转换时,将会面临很大的挑战.幸好SQL Server为我们提供了强大.丰富的数据导入导出功能,并且在导入导出的同时可以对数据进行灵活的处理. 在SQL Server中主要有三种方式导入导出数据:使用Transact-SQL对数据进行处理:调用命令行工具bcp处理数据:使用数据转换服务(DTS)对数据进行处理.这三种方法各有其特点,下面就它们的主要特点进行比较. 一.使用方式的比