我是个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 回答
慕虎7371278
TA贡献1802条经验 获得超4个赞
1、因为这是书上的例子,所以他会以各个方面的情况来举例,已覆盖尽可能多的知识点,实际上是完全可以不要加约束的,可以直接加null或not null。
2、什么都不加的话默认 null。
慕勒3428872
TA贡献1848条经验 获得超6个赞
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)
- 3 回答
- 0 关注
- 1018 浏览
添加回答
举报
0/150
提交
取消