mysql insert语句操作实例疏解

2019-07-06 18:21栏目:程序人生

复制代码 代码如下: -- 优化代码在此之前的 insert in...

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

mysql insert语句操作实例疏解,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 ...
ca888会员登录,    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

若果列清单和VALUES清单均为空清单,则INSERT会创制三个行,各种列都棉被服装置为暗中同意值:

复制代码 代码如下:

INSERT INTO tbl_name () VALUES();

假如worker表独有name和email,插入一条数据

复制代码 代码如下:

insert into worker values(“tom”,”[email protected]”);

批量安插多条数据

复制代码 代码如下:

insert into worker values(‘tom','[email protected]'),(‘paul','[email protected]');

付给要赋值的要命列,然后再列出值的插入数据

复制代码 代码如下:

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

利用set插入数据

复制代码 代码如下:

insert into worker set name='tom';

在 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;

询问不可能包蕴多少个OPAJERODER BY子句,何况INSERT语句的目标表不能够出现在SELECT查询部分的FROM子句.

 ON DUPLICATE KEY UPDATE

万一你钦赐了ON DUPLICATE KEY UPDATE,况且插入行后会形成在多少个UNIQUE索引或PQashqaiIMA中华VY KEY中现身重复值,则试行旧行UPDATE。

复制代码 代码如下:

--假如a,b为独一索引,表table未有1,2这样的行是符合规律插入数据,争持时,更新c列的值
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=3;
--或者是
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=values(c);
--引用其余列更新抵触的行
INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(a) VALUES(b);
 向一个已定义为NOT NULL的列中插入NULL。对于二个多行INSERT语句或INSERT INTO...SELECT语句,依照列数据的花色,列棉被服装置为含有的暗中认可值。对于数字类型,暗许值为0;对于字符串类型,暗中同意值为空字符串('');对于日期和岁月等级次序,默许值为“zero”值。

INSERT INTO...SELECT的ON DUPLICATE KEY UPDATE

复制代码 代码如下:

insert into tbl_name1(a,b,c)
  select col1,col2,col3 from tbl_name2
ON DUPLICATE KEY UPDATE c=values(c);

INSERT DELAYED

假如你的客户端不可能等待INSERT完结,则那几个选项是分外实用的,当三个客户端应用INSERT DELAYED时,会应声从服务器处获得一个明确。而且行被排入队列,当表未有被别的线程使用时,此行被插入。

行使INSERT DELAYED的另二个最主要的补益是,来自众多客户端的插入被集中在协同,并被编辑入三个块。那比实行好多独立的插入要快比较多。

复制代码 代码如下:

INSERT DELAYED INTO worker (name) values (‘tom'), (‘paul');

行使DELAYED时有一点限量:

1.INSERT DELAYED仅适用于MyISAM, MEMO汉兰达Y和ARC淋痛E表。对于MyISAM表,借使在数据文件的中档未有空闲的块,则扶助同不常间利用SELECT和INSERT语句。在那么些意况下,基本无需对MyISAM使用INSERT DELAYED。

2.INSERT DELAYED相应仅用于钦定值清单的INSERT语句。服务器忽略用于INSERT DELAYED...SELECT语句的DELAYED和INSERT DELAYED...ON DUPLICATE UPDATE语句的DELAYED。

3.因为在行被插入前,语句马上回去,所以您不可能运用LAST_INSERT_ID()来获取AUTO_INCREMENT值。AUTO_INCREMENT值也许由语句生成。

4.对于SELECT语句,DELAYED行不可知,直到这几个行确实被插入了结束。

5.DELAYED在直属复克服务器中被忽略了,因为DELAYED不会在专门项目服务器中生出与主服务器不等同的数目。

insert语句操作实例批注,insert实例疏解insert的语法 复制代码 代码如下: INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_...

始于没悟出,那10w的数目一个数码贰个数码的插入三十分钟才2w。后来革新一条SQL批量插入

INSERT DELAYED

-- 优化以往插入12w数据包含php做多少管理,费用才 6s 左右。

1.INSERT DELAYED仅适用于MyISAM, MEMO牧马人Y和ARCHIVE表。对于MyISAM表,假若在数据文件的中级未有空余的块,则帮助同期接纳SELECT和INSERT语句。在那些情况下,基本无需对MyISAM使用INSERT DELAYED。

-- 优化今后的
insert into table(mobile) values (138000000), (138000000), (138000000);……

复制代码 代码如下:

复制代码 代码如下:

复制代码 代码如下:

-- 优化代码在此之前的
insert into table(mobile) values (138000000);
insert into table(mobile) values (138000000);
insert into table(mobile) values (138000000);
……

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

您或者感兴趣的稿子:

  • MySQL中insert语句的使用与优化学科
  • PHP MySQL之Insert Into数据插入用法解析
  • MySql中运用INSERT INTO语句更新多条数据的例子
  • mysql 操作计算INSERT和REPLACE
  • mysql中insert与select的嵌套使用方法
  • 解析MySQL中INSERT INTO SELECT的使用
  • 不错利用MySQL INSERT INTO语句
  • mysql insert的几点操作(DELAYED,IGNORE,ON DUPLICATE KEY UPDATE )
  • 详解MySQL数据库insert和update语句
  • MySQL优化insert质量的章程身先士卒

复制代码 代码如下:

行使INSERT…SELECT语句插入从另外表选择的行

复制代码 代码如下:

批量陈设多条数据

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

复制代码 代码如下:

2.INSERT DELAYED应有仅用于钦定值清单的INSERT语句。服务器忽略用于INSERT DELAYED...SELECT语句的DELAYED和INSERT DELAYED...ON DUPLICATE UPDATE语句的DELAYED。

4.对于SELECT语句,DELAYED行不可知,直到这几个行确实被插入了完工。

insert into tbl_name1(col1,col2) select col3,col4 from tbl_name2;
--借使每一列都有数量
insert into tbl_name1 select col3,col4 from tbl_name2;

版权声明:本文由ca888发布于程序人生,转载请注明出处:mysql insert语句操作实例疏解