INSERT是用来插入到数据库表的,它要求指定表名和被插入到新行中的

INSERT语句一般不会产生输出。

插入可以用几种方式使用:

1.插入完整的行;

2.插入行的一部分;

3.插入多行;

4.插入某些查询的结果。

 

举个简单例子:

链接数据库mysql 如何insert into插入数据递增id 用insert into向数据库中添加数据_数据

insert into users VALUES(DEFAULT,'gakki','123');

链接数据库mysql 如何insert into插入数据递增id 用insert into向数据库中添加数据_MySQL_02

各个列必须以它们在表定义中出现的次序填充。虽然这种语法简单,但不安全,高度依赖表中列的定义次序,毕竟表结构可能发生变动。

所以可以这样写:

insert into users(username,password) VALUES('aa','456');

链接数据库mysql 如何insert into插入数据递增id 用insert into向数据库中添加数据_数据_03

插入语句中给出了列名,MySQL将用VALUES列表中的相应值填入列表中的对应项。并不用按照各个列在实际表中出现的次序。即使表的结构改变,此INSERT语句仍然能够工作。

insert into users(password,username) VALUES('789','bb');

链接数据库mysql 如何insert into插入数据递增id 用insert into向数据库中添加数据_数据库表_04

 

如果表的定义允许,可以在INSERT操作中省略某些列。比如该列定义为允许NULL值;表定义中给出了默认值。

INSERT操作可能很耗时,特别是有很多索引需要更新时,它可能降低等待处理的SELECT语句的性能。如果数据检索更重要,可以在INSERT和INTO之间添加关键字LOW_PRIORITY,降低INSERT的优先级。此关键字同样适用于UPDATE和DELETE语句。

 

插入多行

插入多行可以使用多个INSERT语句,甚至一次提交它们,每条语句用一个分号结束。

insert into users(username,password) VALUES('cc','000');
insert into users(username,password) VALUES('dd','111');
insert into users(username,password) VALUES('ee','222');
insert into users(username,password) VALUES('ff','333');

链接数据库mysql 如何insert into插入数据递增id 用insert into向数据库中添加数据_数据库表_05

只要每条INISERT语句中的列名和次序相同,可以组合各个语句。VALUES有多组值,每组用()括起来,用逗号隔开。

insert into users(username,password) VALUES('gg','444'),('hh','555'),('ii','666');

链接数据库mysql 如何insert into插入数据递增id 用insert into向数据库中添加数据_MySQL_06

插入检索出来的数据

将一条SELECT语句的结果插入表中。

此处新建一张user表,上面的是users表。

链接数据库mysql 如何insert into插入数据递增id 用insert into向数据库中添加数据_数据_07

INSERT INTO user(name,pwd) SELECT username,password FROM users;

链接数据库mysql 如何insert into插入数据递增id 用insert into向数据库中添加数据_数据库表_08

此处将从users表中查询的数据插入了user表。MySQL不关心select返回的列名,它使用的是列的位置。上述两表列名不同,但可以插入。

此外还可以包含WHERE子句来过滤插入的数据。

此处先清空user表,再往里插入数据。

INSERT INTO user(name,pwd) SELECT username,password FROM users WHERE id IN(2,4,6);

链接数据库mysql 如何insert into插入数据递增id 用insert into向数据库中添加数据_数据库表_09

INSERT INTO user(name,pwd) SELECT username,password FROM users WHERE username='gakki';

链接数据库mysql 如何insert into插入数据递增id 用insert into向数据库中添加数据_数据库表_10