数据库操作:插入数据insert

您所在的位置:网站首页 表格批量导入数据怎么操作出来 数据库操作:插入数据insert

数据库操作:插入数据insert

2023-12-28 12:45| 来源: 网络整理| 查看: 265

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

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

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

1.插入完整的行;

2.插入行的一部分;

3.插入多行;

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

 

举个简单例子:

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

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

所以可以这样写:

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

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

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

 

如果表的定义允许,可以在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');

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

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

  插入检索出来的数据

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

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

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

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

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

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

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

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

 

上述内容参考自《MySQL必知必会》。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3