一个简单的教学管理系统(SQL实现)
一个简单的教学管理系统,可以拿来应付课程设计之类的东西🍔。
该系统较为简单,没有使用触发器,有需要的同学可以自己编写触发器
1 利用xp_cmdshell在D盘创建名为data的文件夹用来存放数据库文件
--1.开启xp_cmdshell组件服务
exec sp_configure 'show advanced options',1
go
reconfigure
go
exec sp_configure 'cmdshell',1
go
reconfigure
go
--2.使用xp_cmdshell命令创建文件夹
Exec xp_cmdshell 'mkdir d:\data'
--3.设置master为当前数据库
use master
go
--4判断数据库是否存在,如果存在则删除。
IF EXISTS (SELECT * FROM
sysdatabases WHERE name = '教学管理系统')
DROP DATABASE 教学管理系统
2本系统是模拟建立一个教学管理系统,建立“教学管理系统”数据库的具体要求如下:初始大小10MB,增长率设置为10%,其中日志文件最大值为100mb.并将数据文件和日志文件分别命名为:“教学管理系统_data.mdf”和“教学管理系统_log.ldf”,其存储路径选择为“D:\data”文件夹下。(有特别情况的可以修改)
--5.创建数据库
CREATE DATABASE 教学管理系统
on
(
name='教学管理系统_data.mdf',
filename='d:\data\教学管理系统_data.mdf',
size=10mb,
filegrowth=10%
)
log on
(
name='教学管理系统_log.ldf',
filename='d:\data\教学管理系统_log.ldf',
maxsize=100mb
)
3 创建学生表、教师表、课程表和教学基本表
学生信息表(学号 sno,姓名 sname,性别 ssex,专业sspe,院系sdept,年龄ssage,电话 stel email semail)
教师信息表(工号 tno,姓名 tname,性别 tsex,院系 tdept,年龄 tage,职称 tpost,电话 ttel,email temail)
课程信息表(课程号 cno,课程名 cname,学分ccredit,课程性质ctype)
教学基本表(学号sno,工号tno,课程号cno,成绩jach)
其中学号、工号、课程号为主键。
--6.创建表
/*创建一个"学生"表Student*/
create table Student
(Sno CHAR(9)PRIMARY KEY,
Sname CHAR(8) not null,
Ssex CHAR(2) check(Ssex in ('男','女')),
Sspe CHAR(20) not null,
Sdept CHAR(20) not null,
Sage TINYINT CHECK(Sage>=1 and Sage<=100),
Stel CHAR(12),
Semail VARCHAR(30)
)
/*创建一个“教师“表Teacher*/
create table Teacher
(Tno CHAR(5)PRIMARY KEY,
Tname CHAR(8) NOT NULL,
Tsex CHAR(2),check(Tsex in ('男','女')),
Tdept CHAR(20) NOT NULL,
Tage TINYINT CHECK(Tage>=1 and Tage<=100),
Tpost CHAR(10) check(Tpost in ('讲师','副教授','教授')),
Ttel CHAR(12),
Temail CHAR(30)
)
/*创建课程基本表'Course'的属性信息*/
create table Course
( Cno CHAR (7)PRIMARY KEY,
Cname CHAR(20)not null,
Ccredit TINYINT CHECK(Ccredit>=1 and Ccredit<=10),
Ctype CHAR(4)check(Ctype in ('必修','选修'))
)
/*创建教学基本表‘JIAOXUE'的属性信息*/
create table JIAOXUE
( Sno CHAR(9) NOT NULL,
Tno CHAR(5) NOT NULL,
Cno CHAR(7) NOT NULL,
Jach NUMERIC(3) CHECK(Jach>=0 and Jach<=100)
)
4 对表进行修改
--7.修改基本表
ALTER TABLE Student ADD S_entrance DATE; /*新增入学时间列*/
ALTER TABLE Student ALTER COLUMN Sspe VARCHAR(20);/*更改数据类型*/
ALTER TABLE Course ADD UNIQUE(Cname);/*约束条件*/
ALTER TABLE Student DROP COLUMN S_entrance;/*删除入学时间列*/
5 插入测试数据
--8.向基本表插入数据
INSERT INTO Student values('A11514067','李建祥','男','统计学','数学学院','19','13988492929','13988492929@139.com')
INSERT INTO Student values('A21514001','李程','男','计算数学','数学学院','18','13898344574','13898344574@139.com')
INSERT INTO Student values('B11514002','崔涛华','女','金融学','经济学院','17','15043257587','15043257587@139.com')
INSERT INTO Student values('B11514003','李菲倩','男','金融学','经济学院','21','15143534545','15143534545@139.com')
INSERT INTO Student values('B31514004','李玉','男','经济学','经济学院','20','13643561889','13643561889@139.com')
INSERT