MySQL _LOAD DATA 导入 csv 文件到数据库表操作日志
2016-07-11 10:46
776 查看
1.说明
LOAD DATA INFILE语句用于高速地从一个文本文件中读取行,并装入一个表中。文件名称必须为一个文字字符串。标准语法:
LOAD DATA LOCAL INFILE 'data.txt' INTO TABLE tbl_name FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES
语法说明:
将文件“data.txt”中的数据写入“tbl_name”表中
字段以“,”结尾
无视“””双引号(字段以双引号包裹的情况,根据数据格式定义)
每一行数据以“\n”结尾(针对于win环境,Linux不需要这条命令)
忽略第一行(可选)
如果您只想载入一个表的部分列,则应指定一个列清单:
LOAD DATA LOCAL INFILE 'persondata.txt' INTO TABLE tbl_name (col1,col2);
文件的路径
如果指定了LOCAL,则被认为与连接的客户端有关:
1.如果指定了LOCAL,则文件会被客户主机上的客户端读取,并被发送到服务器。文件会被给予一个完整的路径名称,以指定确切的位置。如果给定的是一个相对的路径名称,则此名称会被理解为相对于启动客户端时所在的目录。
2.如果LOCAL没有被指定,则文件必须位于服务器主机上,并且被服务器直接读取。
当在服务器主机上为文件定位时,服务器使用以下规则:
1).如果给定了一个绝对的路径名称,则服务器使用此路径名称。
2).如果给定了带有一个或多个引导组件的相对路径名称,则服务器会搜索相对于服务器数据目录的文件。
3).如果给定了一个不带引导组件的文件名称,则服务器会在默认数据库的数据库目录中寻找文件。
注意,这些规则意味着名为./myfile.txt的文件会从服务器数据目录中被读取,而名为myfile.txt的同样的文件会从默认数据库的数据库目录中读取。
以下示例记录我以不指定local,将文件上传到服务器主机,并给绝对路径为例
2.准备工作:
1) 数据文件(test.csv)格式
流水ID,日期,备注,收入,支出,余额 234534654653,2016-07-04 11:12:58,可用金充值,1000.0,0.0,131016.97 234534654651,2016-06-30 10:44:07,可用金充值,2287.0,0.0,133075.01 234534654652,2016-06-16 16:24:20,可用金充值,850.0,0.0,132172.55 234534654654,2016-06-02 17:19:12,可用金充值,6861.0,0.0,142621.41
2) 根据数据文件创建数据库表
3.操作
1) 把数据文件(以“test.csv”为例)上传到Linux的tmp目录(目录随便,我以tmp为例)注意:如果是.csv格式文件,上传之前另存为utf8格式,不要用中文命名。
2) 登录MySQL,选择数据库,根据文件中的字段创建数据库表(或者你已经有数据库表)tabl_test
3) 登录MySQL,选择数据库,执行数据导入
LOAD DATA INFILE '/tmp/test.csv' INTO TABLE tabl_test FIELDS TERMINATED BY ',' ignore 1 lines (stream_id, date, comment, income, expend, total);
4) 没有了~
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复