您的位置
主页 > 网站技术 > 数据库 > » 正文

mysql insert语句操作实例讲解

来源: 锦尚中国 点击:

insert的语法

复制代码 代码如下:


INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    VALUES ({expr | DEFAULT},...),(...),...
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
或:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    SET col_name={expr | DEFAULT}, ...
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
或:

INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    SELECT ...
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

如果列清单和VALUES清单均为空清单,则INSERT会创建一个行,每个列都被设置为默认值:

复制代码 代码如下:


INSERT INTO tbl_name () VALUES();

假设worker表只有name和email,插入一条数据

复制代码 代码如下:


insert into worker values(“tom”,”tom@yahoo.com”);

批量插入多条数据

复制代码 代码如下:


insert into worker values(‘tom','tom@yahoo.com'),(‘paul','paul@yahoo.com');

给出要赋值的那个列,然后再列出值的插入数据

复制代码 代码如下:


insert into worker (name) values (‘tom');
insert into worker (name) values (‘tom'), (‘paul');

使用set插入数据

复制代码 代码如下:


insert into worker set;

在 SET 子句中未命名的行都赋予一个缺省值,使用这种形式的 INSERT 语句不能插入多行。

一个expression可以引用在一个值表先前设置的任何列,例如:

复制代码 代码如下:


INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2);
--但不能这样
INSERT INTO tbl_name (col1,col2) VALUES(col2*2,15);

使用INSERT…SELECT语句插入从其他表选择的行

复制代码 代码如下:


insert into tbl_name1(col1,col2) select col3,col4 from tbl_name2;
--如果每一列都有数据
insert into tbl_name1 select col3,col4 from tbl_name2;

查询不能包含一个ORDER BY子句,而且INSERT语句的目的表不能出现在SELECT查询部分的FROM子句.

 ON DUPLICATE KEY UPDATE

如果您指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则执行旧行UPDATE。

复制代码 代码如下:




首页  - 关于站长圈  - 广告服务  - 联系我们  - 关于站长圈  - 网站地图  - 版权声明