1、创建一个测试表insert_test
#标识创建表insert_test,默认新增id列,并插入一条数据1
CREATE TABLE insert_test AS SELECT 1 AS id;
![在这里插入图片描述](https://img-blog.csdnimg.cn/ade9310e1dfc45caa7b36f2cb5959616.png)
2、插入数据
使用insert into插入数据:
INSERT INTO insert_test SELECT 2 AS id; --insert into 可以重复插入数据
执行两次上述命令,发现会重复插入行:
![在这里插入图片描述](https://img-blog.csdnimg.cn/d1eb49486e2f445885f4ff8e477f578d.png)
使用insert orverwrite插入数据:
INSERT OVERWRITE TABLE insert_test SELECT 2 AS id; --insert overwrite 会将表中的数据先清空,然后在插入
![在这里插入图片描述](https://img-blog.csdnimg.cn/7c2b355385cc4692abb23b866d5ec029.png)
3、总结
insert into:
insert overwrite:
4、扩展Like和As关键字的区别
![在这里插入图片描述](https://img-blog.csdnimg.cn/2af45bb6ea0143c4a7f2a0d3b2424b7f.png)
使用关键字Like创建表:
CREATE TABLE insert_table_copy_like LIKE insert_test;
![在这里插入图片描述](https://img-blog.csdnimg.cn/0839ab5a9965477c80a10ac88abcb9fe.png)
使用关键字As创建表:
CREATE TABLE insert_table_copy_as AS SELECT * FROM insert_test WHERE 1=1;
![在这里插入图片描述](https://img-blog.csdnimg.cn/46837e0a55654bc689c151c3eb33a5b7.png)
二者的用途和区别:
- Like:用来创建的完整表结构和全部索引,但是不会复制源表数据。
- As :用来创建相同表结构并复制源表数据,也可以选择字段,创建出来的table缺少源表的索引信息,只有表结构相同,没有索引。
补充:Oracle支持as,也是只有表结构没有索引,Oracle不支持like;