一个简单的教学管理系统(SQL实现)

一个简单的教学管理系统(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  
  • 32
    点赞
  • 244
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值