SQL NOT NULL 约束语法与not null实例

如果我们创建一个表

CREATE TABLE aa(Id_P int NOT NULL,LName varchar(250) NOT NULL,FName
varchar(25),Ass varchar(25),C varchar(205))

NOT NULL 约束强制列不接受 NULL 值。

NOT NULL
约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新纪录或者更新记录。

下面的 SQL 语句强制 Id_P 列和 LastName 列不接受 NULL 值:

Allow NULL是列定义的基本属性。当然要定义Primary Key就必须将Allow
NULL设置为False。

下面我们来看一网友提问

我想知道这个not null
在数据库教程中是个约束还是个属性,我想是约束吧?既然像主键,外键,unique,check等约束都可以通过sql语句添加,我想知道怎么实现为列添加not
null约束。即我在定义的时候没有为密码列pwd定义not
null约束,现在想通过sql语句修改,请问我可以怎样修改,麻烦知道的朋友详细说一下

ALTER TABLE [表名] ALTER COLUMN [列名] 数据类型(长度) NOT
NULL如:ALTER TABLE [t_m_member] ALTER COLUMN [vch_memberno]
varchar(50) NOT NULL

问题二

我是个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呢?

解决方法

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

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

相关文章