为了账号安全,请及时绑定邮箱和手机立即绑定

sql菜鸟关于设置not null约束的疑问

sql菜鸟关于设置not null约束的疑问

红颜莎娜 2019-04-08 08:04:10
我是个sql server初学者,看书的时候看到这样一个例子/*例5-13 建立一个S2表,对SNO字段进行NOT NULL约束。*//*程序清单如下:*/Use dbCREATE TABLE S2(SNO CHAR(10) CONSTRAINT S_CONS NOT NULL,SN VARCHAR(20),AGE INT,SEX CHAR(2) DEFAULT '男' ,DEPT VARCHAR(20)) 我有点奇怪:1.为什么要在not null前面加个约束名呢?我看过的一些例子都是直接在字段名后面接not null或null的呀,2.例子中的age字段为什么没有加任何约束,null或not null也没加,这是为什么呢,是不是什么时候可以省略不写null或not null呢?
查看完整描述

3 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

其实前面2位都已经讲的很清楚了,如果还不清楚,那我再举例说明一下:
1.默认的情景:
create table s2 (sno char(10));--此时未显示的指明null或not null,那么系统会默认为null.

2.加入not null约束:
create table s2 (sno char(10) not null) --此时显示的指定为not null,但没有指定该约束的名称,系统会自动为该约束取一个名字,该名字很长,程序员也记不住.

3.为了解决系统自动命名的约束名难记的问题,用户可自己给该约束取个名字为s_cons:
create table s2 (sno char(10) constraint s_cons not null)


查看完整回答
反对 回复 2019-04-09
?
慕慕森

TA贡献1856条经验 获得超17个赞


SQL 默认情况下
AGE INT = AGE INT null
DEPT VARCHAR(20)=DEPT VARCHAR(20) null

SNO CHAR(10) CONSTRAINT S_CONS NOT NULL
这种写法是多余
改为SNO CHAR(10) NOT NULL


查看完整回答
反对 回复 2019-04-09
?
千巷猫影

TA贡献1829条经验 获得超7个赞

1、因为这是书上的例子,所以他会以各个方面的情况来举例,已覆盖尽可能多的知识点,实际上是完全可以不要加约束的,可以直接加null或not null。
2、什么都不加的话默认 null。

查看完整回答
反对 回复 2019-04-09
  • 3 回答
  • 0 关注
  • 944 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信