Task3:用T-SQL语句创建约束

Task3:用T-SQL语句创建约束

** 创建学生管理系统中的所有表,所有的代码放在一个文件里,一旦执行所有的表同时建立好。**
在这里插入图片描述在这里插入图片描述

CREATE DATABASE ceshidb --第一步执行
GO
--第二步,执行以下所有内容
USE ceshidb 
GO
CREATE TABLE Department
(
	DeptNo		char(2)			PRIMARY KEY,	--系部编号
	DeptName	nvarchar(50)	NOT NULL		--系部名称
)
CREATE TABLE Professional
(
	Pno			char(4)			PRIMARY KEY,								--专业编号
	Pname		nvarchar(80)	NOT NULL,									--专业名称
	DeptNo		char(2)			FOREIGN KEY REFERENCES Department(DeptNo)	--所属系部编号
)
CREATE TABLE Class
(
	ClassNo			char(8)			PRIMARY KEY,								--班级编号
	ClassName		nvarchar(50)	NOT NULL,									--班级名称
	Num				tinyint			NOT NULL	CHECK(Num>=15),					--班级人数
	Pno				char(4)			FOREIGN KEY REFERENCES Professional(Pno)	--所属班级编号
)

CREATE TABLE Student
(
	Sno				char(10)		PRIMARY KEY,									--学号
	Sname			varchar(50)		NOT NULL,										--姓名
	Ssex			char(2)			CHECK (Ssex ='男'OR Ssex='女') default '男',	--性别
	Sbirthday		datetime,														--出生日期
	EntranceTime	datetime		NOT NULL,										--入学时间
	ClassNo			char(8)			NOT NULL FOREIGN KEY REFERENCES Class(ClassNo),	--班级编号
	Email			varchar(50)		CHECK(Email like'%@%'),							--电子邮件
	Address			varchar(100)	default '地址不详',								--地址
	Spassword		varchar(50)		NOT NULL,										--密码
)

CREATE TABLE Course
(
	Cno			char(7)			PRIMARY KEY,								--课程编号
	Cname		varchar(30)		NOT NULL,									--课程名称
	Ccredits	real			NOT NULL,									--学分
	Cnature		varchar(30)		CHECK (Cnature ='必修'OR Cnature='选修'),	--课程性质
)

CREATE TABLE Result
(
	Cno			char(7)		FOREIGN KEY REFERENCES Course(Cno),							--课程编号
	Sno			char(10)	FOREIGN KEY REFERENCES Student(Sno) on delete cascade,		--学号
	Result		real		CHECK(Result>=0 AND Result<=100),							--成绩
	Semester	varchar(20),															--学年
	Term		tinyint																	--学期 
)

CREATE TABLE Teacher
(
	Tno					char(4)			PRIMARY KEY,									--教师编号
	Tname				nvarchar(50)	NOT NULL,										--姓名
	Tsex				char(2)			CHECK (Tsex ='男'OR Tsex='女') default '男',	--性别
	Tbirthday			datetime,														--出生日期
	AdmittionTime		datetime ,														--入校时间
	PID					nvarchar(18)	CHECK(LEN(PID)=15 OR LEN(PID)=18),					--身份证号
	Title				char(10),														--职称
	Phone				nvarchar(20),													--电话
	TPassword			varchar(50)		NOT NULL,										--密码
	DeptNo				char(2)			FOREIGN KEY REFERENCES Department(DeptNo),		--系部编号
)

CREATE TABLE Teaching
(

	Tid		int			IDENTITY(1,1),											--授课编号
	Tno		char(4)		FOREIGN KEY REFERENCES Teacher(Tno),					--教师编号
	Cno		char(7)		FOREIGN KEY REFERENCES Course(Cno) on delete cascade,	--课程编号
	Cnum	int																	--教学时数
)


--CREATE SEQUENCE s_test start with 1 increment by 1; --建立一个从1开始每次加1的序列
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值