问答题 使用SQL语句创建课程表,其中各列有如下限制。
·课程号:整型,主码,初始值为10000,每增加一条新记录自动加1。
·课程名:普通编码变长字符型,长度为20,非空且唯一。
·学分:只允许取1~6之间的整数。

【正确答案】CREATE TABLE课程(
课程号INT IDENTITY(10000,1) PRIMARY KEY,
课程名VARCHAR(20) NOT NULL UNIQUE,
学分TINYINT CHECK(学分>=1 AND 学分<=6)
)
【答案解析】[解析] 对各列分析如下。
(1)课程号:整型且值大于10000,可选择数据类型为bigint、int或smallint,考虑到存储空间,一般选择int型或smallint型;由于是主码,因此要定义主码约束;要求初始值为10000,且每次递增1,在SQLServer中可以使用:IDENTITY来创建一个标识列,其格式为IDENTITY(seed,increment),,其中seed表示初始值,increment表示每次的增量;如果定义某列为标识列(IDENTITY),则不需要再在该列上定义主码约束。
(2)课程名:普通编码变长字符型,数据类型为varchar,长度为20;要求非空且唯一,需要定义非空约束和单值约束。
(3)学分:整型,取值在1~6之间,使用tinyint型;要求值在1~6之间,需要定义检查约束。