数据库插入操作insert,replace,load

先创建一个表进行插入操作

create  table wx_student(
    sno int(6) primary key ,
    sname varchar(20) not null ,
    sphone char(11) unique ,/*唯一,可以为空,不能重复*/
    sage tinyint unsigned default 18,
    saddr varchar(25),
    uid int
);

1.insert

insert插入数据有以下几种方式

其中insert into是标准语法,insert是mysql简化后的语法,一般推荐使用insert into。

格式如下

insert into 表名 value (值列表); -- 插入一条信息

insert into 表名(属性列表)value(值列表);-- 插入一条数据,值列表要和属性列表一一对应

insert into 表名 (属性列表)values (值列表),(值列表),(值列表)......;-- 在指定列插入多条数据,值列表和属性列表一一对应

insert into 表名 values (值列表),(值列表),(值列表)......;-- 在所有列插入多条数据,值列表和表结构相符。

insert into 表名 set 列名=属性名,列名=属性名...;

insert into wx_student value (null,lili2,1313455668,22,郑州,10);
insert into wx_student(sno,sname) value (null,lili2); 
insert into wx_student(sno,sname) values (null,lili3),(null,lili4),(null,lili5); 
insert into wx_student values (null,lili6,1313455611,22,郑州,10),(null,lili7,1313455622,22,郑州,10),
(null,lili8,1313455633,22,郑州,10);
insert into wx_student set sname=李四,sphone=1911412512;

2.replace

replace和insert语法相同,当replace 插入的数据中没有与数据库中发生冲突的唯一值时,replace和insert功能相同;不同点在于,如果你要插入的数据中有唯一值存在并且和数据库中的数据产生冲突,replace会更新唯一值存在的那条记录,而insert则会报错

例如 我们把sphone定义成了唯一值,如果数据库中存在电话号 1313455668,

我们使用insert插入的数据中如果电话号码也是1313455668就会报错

insert into wx_student value (null,lili9,1313455668,5,郑州,10);执行结果为

提示sphone列插入异常,

但是我们使用replace时

replace into wx_student value (null,lili9,1313455668,5,郑州,10);

就会成功把lili2修改成lili9,其他的数据也会更新。

3.load

load从文件中加载数据

load data infile d:/sql/wx.txt into table wx_student character set utf8;
-- local-infile=1 ;开启本地文件的mysql服务,添加到数据库初始配置文件 my.ini中
select * from wx_student into outfile d:/sql/wx.txt;
-- into outfile mysql服务器中开启服务 数据库配置文件my.ini 中添加secure-file-priv=
经验分享 程序员 微信小程序 职场和发展