SQL基础学习总结:6(INSERT语句的相关使用方法)

数据的插入(INSERT语句的使用方法)

我们之前在表的创建部分简单地介绍了一下INSERT语句的功能和使用方法,现在我们再详细讲一下它的用法。

INSERT语句的基本语法

其语法结构如下:

INSERT INTO <表名> (列名1,列名2,列名3...)
    -> VALUES (数据1,数据2,数据3...);

例:在这里插入图片描述
将列名和值用逗号隔开,分别括在()内,这种形式称为清单。像上面这个例子就分为列清单值清单

列清单的省略

但我们对表进行全列INSERT时,可以省略表名后面的列清单,这时VALUES子句的值就会默认按照从左到右的顺序赋给每一列,但是,要注意此时VALUES子句的中的值要按照创建表时列的默认顺序来插入,否则将会出现错误。
例:值清单中的数据不按照列的默认顺序
在这里插入图片描述
例:正确的做法
在这里插入图片描述

插入NULL

使用INSERT语句想要给某一列赋予NULL值时,可以直接在VALUES子句得值清单中写入NULL。
例:
在这里插入图片描述
注意:想要插入NULL的列一定不能设置NOT NULL约束,否则,向设置了NOT NULL约束的列中插入NULL时,INSERT语句会出现错误。

插入默认值

我们还可以向表中插入默认值(初始值)。可以通过在创建表的CREATE TABLE语句中设置DEFAULT约束来设定默认值。

例:设置默认值
在这里插入图片描述
在上表中我们设置了学生编号的默认值为0,如下图我们可以看到student_id那一列的默认值为0。
在这里插入图片描述

默认值的使用方法通常有显式和隐式两种。

通过显式方法插入默认值

在VALUES子句中指定DEFAULT关键字。
例:通过显式方法设定默认值
在这里插入图片描述
在这里插入图片描述
因为student_id列的默认值是0,所以student_id列被赋予了0。

通过隐式方法插入默认值

插入默认值时也可以不使用DEFAULT关键字,只要在列清单和VALUES中省略设定了默认值的列就可以了,如下图:
在这里插入图片描述
在这里插入图片描述
注意:如果我们省略了没有设定默认值的列,该列的值就会被设定为NULL(仅限未设置NOT NULL约束的列)

从其他表中复制数据

要插入数据,除了使用VALUES子句指定具体的数据之外,还可以从其他表中复制数据,如下:

只复制表的结构,不复制表的数据

语法结构如下:

CREATE TABLE <新表名> SELECT * FROM <旧表名> WHERE 1=2;

CREATE TABLE <新表名> LIKE <旧表名>;

例:
在这里插入图片描述

在这里插入图片描述
查看新表中是否存在数据
在这里插入图片描述

在这里插入图片描述
我们可以看到新表中是空的,只有旧表的结构,并不存在任何数据。

复制表的结构和数据

方法一

语法结构如下:

CREATE TABLE <新表名> SELECT * FROM <旧表名>;

例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们可以看到,新表完全复制了旧表的结构和表中存在的数据。

方法二

使用INSERT INTO SELECT 语句从旧表复制数据,然后把数据插入到一个已存在的表(新表)中,新表中任何已存在的行都不会受影响。
语法结构如下:

INSERT INTO <新表> SELECT * FROM <旧表>;

例:
我们先创建一个新表
在这里插入图片描述
我们可以先往新表中插入数据
在这里插入图片描述
进行复制操作
在这里插入图片描述
查看复制结果
在这里插入图片描述
我们可以发现,新表中在进行复制之前存在的数据在复制过程中并没有受到影响。

注意:如果两个表的结构不同,复制会出现错误,如下:
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值