INSERT SELECT语句
2016-07-08 23:41
591 查看
INSERT一般用来给表插入具有指定列值的行。
INSERT还存在另一种形式,可以利用它将SELECT语句的结果插入表中,这就是所谓的INSERT SELECT。顾名思义,它是由一条INSERT语句和SELECT语句组合成的。
(1)INSERT SELECT中的SELECT语句可以包含WHERE子句,以过滤插入的数据。
(2)INSERT SELECT语句可以插入多行。INSERT通常只插入一行,要插入多行数据,必须执行多个INSERT语句。INSERT SELECT是个例外,它可以用一条INSERT插入多行,不管SELECT语句返回多少行,都将被INSERT插入。
将T_Customers表中的部分数据插入到T_Adults表中
数据准备
INSERT还存在另一种形式,可以利用它将SELECT语句的结果插入表中,这就是所谓的INSERT SELECT。顾名思义,它是由一条INSERT语句和SELECT语句组合成的。
(1)INSERT SELECT中的SELECT语句可以包含WHERE子句,以过滤插入的数据。
(2)INSERT SELECT语句可以插入多行。INSERT通常只插入一行,要插入多行数据,必须执行多个INSERT语句。INSERT SELECT是个例外,它可以用一条INSERT插入多行,不管SELECT语句返回多少行,都将被INSERT插入。
将T_Customers表中的部分数据插入到T_Adults表中
INSERT INTO T_Adults(aName) SELECT cName FROM T_Customers WHERE T_Customers.cAge>17;
数据准备
CREATE TABLE T_Customers(
id INT PRIMARY KEY AUTO_INCREMENT,
cName VARCHAR(20) UNIQUE NOT NULL,
cAge INT NOT NULL
)
INSERT INTO T_Customers(cName,cAge) VALUES('Lucy',17);
INSERT INTO T_Customers(cName,cAge) VALUES('Lily',17);
INSERT INTO T_Customers(cName,cAge) VALUES('Tom',18);
INSERT INTO T_Customers(cName,cAge) VALUES('Jack',19);
CREATE TABLE T_Adults(
id INT PRIMARY KEY AUTO_INCREMENT,
aName VARCHAR(20) UNIQUE NOT NULL,
birthday DATE
)
INSERT INTO T_Adults(aName) SELECT cName FROM T_Customers WHERE T_Customers.cAge>17;
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- Android之获取手机上的图片和视频缩略图thumbnails
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- 数据库链接字符串查询网站
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法