标准SQL中INSERT语句允许将SELECT语句查询出来的数据插入到另一个表中,即可快速地从一个或多个表中向一个表中插入多个行。这样,可以方便不同表之间进行数据交换。
基本的语法格式如下:
INSERT INTO 表名1(字段列表1) SELECT 字段列表2 FROM 表名2 WHERE查询条件;
表名1:表示记录插入到哪个表中。
字段列表1:表示为哪些字段赋值。
字段列表2:表示从表中查询出哪些字段的数据。
表名2:表示记录是从哪个表中查询出来的。
条件表达式:表示设置SELECT语句的查询条件。
将“表名2”中查询出来的记录插入到“表名1”中以后,“表名2”中仍然保存着原来的记录。
提示:
1 . 使用这种方法时,必须保证“字段列表1”和“字段列表2”中的字段个数是一样的,同时,也必须保证每个对应的字段的数据类型是一样的。如果数据类型不一样,数据库系统会报错。然后,阻止INSERT语句向下执行。
2 . 这个例子中使用的stu数据表和student数据表的定义相同,事实上,MySQL不关心SELECT返回的列名,它根据列的位置进行插入,SELECT的第1列对应待插入表的第1列,第2列对应待插入表的第2列,等等。即使不同结果的表之间也可以方便的转移数据。