您的位置:首页 > 数据库

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

2020-04-02 07:42 597 查看

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的序列
  • 点赞
  • 收藏
  • 分享
  • 文章举报
csdcainiao 发布了3 篇原创文章 · 获赞 1 · 访问量 237 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: