创建一张学生表STUDENT,表字段有学生编号SNO, 学生姓名SNAME,年龄SAGE,性别SSEX,出生日期BDATE。 (1)、给SNO字段添加主键约束 (2)、给SNAME字段添加唯一约束 (3)、给SAGE和SSEX条件检查约束, (SAGE必须大于18岁,SSEX为 男或女) (4)、给出生日期BDATE添加非空约束 以上的题,用一个建表语句完成。 然后逐个删掉表中加上的约束,在单独手动新增上约束。
时间: 2023-03-23 18:04:42 浏览: 413
我可以回答这个问题。建表语句如下:
CREATE TABLE STUDENT (
SNO INT PRIMARY KEY,
SNAME VARCHAR(20) UNIQUE,
SAGE INT CHECK(SAGE > 18),
SSEX CHAR(1) CHECK(SSEX IN ('男', '女')),
BDATE DATE NOT NULL
);
要逐个删掉表中加上的约束,可以使用 ALTER TABLE 语句,例如:
ALTER TABLE STUDENT DROP CONSTRAINT STUDENT_pkey; -- 删除主键约束
ALTER TABLE STUDENT DROP CONSTRAINT STUDENT_sname_key; -- 删除唯一约束
ALTER TABLE STUDENT DROP CONSTRAINT STUDENT_sage_check; -- 删除条件检查约束
ALTER TABLE STUDENT ALTER COLUMN BDATE DROP NOT NULL; -- 删除非空约束
然后可以手动新增约束,例如:
ALTER TABLE STUDENT ADD PRIMARY KEY (SNO); -- 添加主键约束
ALTER TABLE STUDENT ADD UNIQUE (SNAME); -- 添加唯一约束
ALTER TABLE STUDENT ADD CHECK (SAGE > 18 AND SSEX IN ('男', '女')); -- 添加条件检查约束
ALTER TABLE STUDENT ALTER COLUMN BDATE SET NOT NULL; -- 添加非空约束
阅读全文