mysql导入导出csv文件语句,以及建表时候如何设置主键的三种方法

使用SQL语句导入csv为表,速度快!

使用SQL语句可以快速实现大量数据导入数据库的效果。示例如下:

1
2
3
4
load  data infile  '..\\uploads\\test.csv'
into  table  sampleTableName
fields terminated  by  ','   optionally enclosed  by  '"'  escaped  by  ','  
lines terminated  by  '\r\n'  ignore  1 lines;

  

解释:

  1. load data infile + 文件路径:这里使用了相对路径,我的机子上安装的MySQL在'C:\ProgramData\MySQL\MySQL Server 5.7'中,一般情况下,csv文件中第一行一般是每列属性的名称,因此在导入数据库时应省略第一行
  2. 句子中sampleTableName应替换为对应的表的名称
  3. csv文件中,域一般用逗号分隔,域的字段值一般用一对双引号包裹,换行一般用‘\r\n’(windows下),因此我发现一般escaped by+逗号与lines terminated by+'\r\n'有对应关系,如果用escaped by """,即引号分隔,则只有将lines terminated by改成'\n'才能导入,并且此时不能ignore 1 lines;

 

常见错误:

Error Code 1290:

我机子上安装的是MySQL5.7,

MySQL5.7默认运行的状态是:

Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

 这是因为需要导入的文件不再MySQL认为的安全文件夹内,因此MySQL拒绝了导入操作。

使用如下语句可看到MySQL当前认为的安全文件夹,将文件放入文件夹内即可

1
SHOW VARIABLES  LIKE  'secure_file_priv' ;

  

三、使用SQL语句将数据库表导出为csv文件

 

 鉴于Navicat比较容易上手,所以这里只介绍一下如何用SQL语句将数据库表导出为csv文件:

用select语句选择需要导出的字段、表,说明其他附加条件(例如用where子句,还可以进行排序),然后说明导出文件的路径和文件名,注意,如果是MySQL是在 secure-file-priv 选项下运行,则必须将路径调整为上文说过的

secure-file-priv路径,如果不知道,就用show variables like查看,否则报错Error 1209

当然,这样导出要求导出的文件不存在,否则报错 Error 1086

 

示例如下:

1
2
3
4
5
select  from  newdb2.dataset  where  vendor =  'xiaomi'  order  by  time
into  outfile  'C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Uploads\\test.csv'
fields terminated  by  ','
optionally enclosed  by  '"'
lines terminated  by  '\r\n' ;

 此示例用到了where 子句和order by 排序,应该够用了

那就这样~see you~


mysql间表时候如何设置主键

MySQL建表语句是最基础的SQL语句之一,下面就为您介绍最常用的三种MySQL建表语句,如果您对MySQL建表语句方面感兴趣的话,不妨一看。

1、最简单的:

CREATE TABLE t1(
    id int not null,
    name char(20)
);
2、带主键的:

a:
CREATE TABLE t1(
    id int not null primary key,
    name char(20)
);
b:复合主键
CREATE TABLE t1(
    id int not null,
    name char(20),
    primary key (id,name)
);
3、带默认值的:

CREATE TABLE t1(
    id int not null default 0 primary key,
    name char(20) default '1'
);
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值