CREATE DATABASE 教学管理
GO
USE 教学管理
GO
IF EXISTS(SELECT * FROM sysobjects WHERE name='选课表' AND xtype='U')
DROP TABLE 选课表
IF EXISTS(SELECT * FROM sysobjects WHERE name='开课表' AND xtype='U')
DROP TABLE 开课表
IF EXISTS(SELECT * FROM sysobjects WHERE name='学生表' AND xtype='U')
DROP TABLE 学生表
IF EXISTS(SELECT * FROM sysobjects WHERE name='教师表' AND xtype='U')
DROP TABLE 教师表
IF EXISTS(SELECT * FROM sysobjects WHERE name='课程表' AND xtype='U')
DROP TABLE 课程表
CREATE TABLE 学生表
(
学号 CHAR(7) NOT NULL,
身份证号 CHAR(18) NOT NULL,
姓名 CHAR(8) NOT NULL,
性别 CHAR(2) DEFAULT '男',
移动电话 CHAR(11),
籍贯 VARCHAR(10),
专业 VARCHAR(20) NOT NULL,
所在院系 VARCHAR(20) NOT NULL,
累计学分 INT,
CONSTRAINT PK_学生表_学号 PRIMARY KEY(学号),
CONSTRAINT CK_学生表_学号 CHECK(学号 LIKE 'S[0-9][0-9][0-9][0-9][0-9][0-9]')
)
CREATE TABLE 课程表
(
课号 CHAR(6) NOT NULL,
课名 VARCHAR(30) NOT NULL,
学分 INT CHECK(学分>=1 and 学分<=5),
教材名称 VARCHAR(30),
编著者 CHAR(8),
出版社 VARCHAR(20),
版号 VARCHAR(20),
定价 money,
CONSTRAINT PK_课程表_课号 PRIMARY KEY(课号),
CONSTRAINT CK_课程表_课号 CHECK(课号 LIKE 'C[0-9][0-9][0-9][0-9][0-9]')
)
CREATE TABLE 教师表
(
工号 CHAR(6) NOT NULL,
身份证号 CHAR(18) NOT NULL,
姓名 CHAR(8) NOT NULL,
性别 CHAR(2) DEFAULT '男',
移动电话 CHAR(11),
籍贯 VARCHAR(10),
所在院系 VARCHAR(20) NOT NULL,
职称 CHAR(6),
负责人 CHAR(6),
CONSTRAINT PK_教师表_工号 PRIMARY KEY(工号),
CONSTRAINT CK_教师表_工号 CHECK(工号 LIKE 'T[0-9][0-9][0-9][0-9][0-9]')
)
CREATE TABLE 开课表
(
开课号 CHAR(6) NOT NULL,
课号 CHAR(6) NOT NULL,
工号 CHAR(6) NOT NULL,
开课地点 CHAR(6),
开课学年 CHAR(9),
开课学期 INT ,
开课周数 INT DEFAULT 17,
开课时间 VARCHAR(20),
限选人数 INT,
已选人数 INT,
CONSTRAINT PK_开课表_开课号 PRIMARY KEY(开课号),
CONSTRAINT FK_开课表_工号 FOREIGN KEY(工号) REFERENCES 教师表(工号)
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT FK_开课表_课号 FOREIGN KEY(课号) REFERENCES 课程表(课号)
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT CK_开课表_开课号 CHECK(开课号 LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]'),
CONSTRAINT CK_开课表_工号 CHECK(工号 LIKE 'T[0-9][0-9][0-9][0-9][0-9]'),
CONSTRAINT CK_开课表_课号 CHECK(课号 LIKE 'C[0-9][0-9][0-9][0-9][0-9]')
)
CREATE TABLE 选课表
(
学号 CHAR(7) NOT NULL,
开课号 CHAR(6) NOT NULL,
成绩 INT CHECK(成绩>=0 and 成绩<=100),
CONSTRAINT PK_选课表_学号_开课号 PRIMARY KEY(学号,开课号),
CONSTRAINT FK_选课表_学号 FOREIGN KEY(学号) REFERENCES 学生表(学号)
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT FK_选课表_开课号 FOREIGN KEY(开课号) REFERENCES 开课表(开课号)
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT CK_选课表_学号 CHECK(学号 LIKE 'S[0-9][0-9][0-9][0-9][0-9][0-9]'),
CONSTRAINT CK_选课表_开课号 CHECK(开课号 LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]')
)
DECLARE @tb_exist INTdrop table if exists user
SET @tb_exist=0
IF EXISTS(SELECT * FROM sysobjects WHERE name='选课表' AND xtype='U')
SET @tb_exist=@tb_exist | 1
IF EXISTS(SELECT * FROM sysobjects WHERE name='开课表' AND xtype='U')
SET @tb_exist=@tb_exist | 2
IF EXISTS(SELECT * FROM sysobjects WHERE name='学生表' AND xtype='U')
SET @tb_exist=@tb_exist | 4
IF EXISTS(SELECT * FROM sysobjects WHERE name='课程表' AND xtype='U')
SET @tb_exist=@tb_exist | 8
IF EXISTS(SELECT * FROM sysobjects WHERE name='教师表' AND xtype='U')
SET @tb_exist=@tb_exist | 16
IF @tb_exist !=31 BEGIN --有一些表不存在
PRINT '由于下列关系表不存在,因此插入元组失败!'
IF (@tb_exist & 1) = 0 PRINT '选课表'
IF (@tb_exist & 2) = 0 PRINT '开课表'
IF (@tb_exist & 4) = 0 PRINT '学生表'
IF (@tb_exist & 8) = 0 PRINT '课程表'
IF (@tb_exist & 16) = 0 PRINT '教师表'
END
ELSE BEGIN --五张表都存在
IF EXISTS(SELECT * FROM 选课表) DELETE 选课表
IF EXISTS(SELECT * FROM 开课表) DELETE 开课表
IF EXISTS(SELECT * FROM 学生表) DELETE 学生表
IF EXISTS(SELECT * FROM 课程表) DELETE 课程表
IF EXISTS(SELECT * FROM 教师表) DELETE 教师表
INSERT INTO 学生表 VALUES('S060101', '******19880526***', '王春兰',
'女', '135***11', '上海', '计算机', '信电学院', 2)
INSERT INTO 学生表 VALUES('S060102', '******19891001***', '张芬',
'女', '131***11', '宁波', '计算机', '信电学院', 2)
INSERT INTO 学生表 VALUES('S060103', '******19871021***', '',
'男', '139***12', '温州', '计算机', '信电学院', 2)
INSERT INTO 学生表 VALUES('S060109', '******19880511***', '陈莉',
'女', NULL, '西安', '计算机', '信电学院', NULL)
INSERT INTO 学生表 VALUES('S060110', '******19880226***', '赵山',
'男', '130***22', '太原', '计算机', '信电学院', 2)
INSERT INTO 学生表 VALUES('S060201', '******19880606***', '胡汉民',
'男', '135***22', '杭州', '信息管理', '信电学院', NULL)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论