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

我是个sql server初学者,看书的时候看到这样一个例子/*例5-13 建立一个S2表,对SNO字段进行NOT NULL约束。*/
/*程序清单如下:*/

Use db
CREATE 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呢?

红颜莎娜
浏览 948回答 3
3回答

慕的地8271018

其实前面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)

慕慕森

SQL 默认情况下AGE INT = AGE INT nullDEPT VARCHAR(20)=DEPT VARCHAR(20) nullSNO CHAR(10) CONSTRAINT S_CONS NOT NULL这种写法是多余改为SNO CHAR(10) NOT NULL

千巷猫影

1、因为这是书上的例子,所以他会以各个方面的情况来举例,已覆盖尽可能多的知识点,实际上是完全可以不要加约束的,可以直接加null或not null。2、什么都不加的话默认 null。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server