乍一看这两个sql真的挺像的,无论从表面意思还是从执行结果来分析,他们干的事从性质上是一样的,都是从一个表中取数据,然后保存在另一个表中。但是他们还是有区别的:
首先,我们来看一下insert into select语句,其语法形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1,这里的要求Table2必须已经存在,如果不存在,系统则会提示Table2对象无效。
接下来说一下select into from 语句,该语法形式为:SELECT vale1, value2 into Table2 from Table1。这里要求的是MyTable1不存在,因为在插入的时候,系统会自动创建MyTable1,如果之前MyTable1已经被创建,系统就会提示已经存在该表。就是因为这个特性,就会给我们带来很多的方便,首先,我如果只想要MyTable2表中的ID列的话那我只需要将ID列select出来,然后加入到新表中即可。