sql数据库管理系统大作业

发布 2022-09-02 20:34:28 阅读 6986

学生信息管理系统数据库设计与实现。

系统需求。1、该“学生信息管理系统”是对数据库应用技术的一个样本数据库的实例,其中包括从数据库的概念模型到er图的绘制,再到数据库模式的建立(即为数据库及其基本表的建立),而后数据的录入(在此从略),学生信息管理系统数据库设计与实现。

1、该“学生信息管理系统”是对数据库应用技术的一个样本数据库的实例,其中包括从数据库的概念模型到er图的绘制,再到数据库模式的建立(即为数据库及其基本表的建立),而后数据的录入(在此从略),最后完成一些简单的关系运算表达式的表达和相关的select 查询语句的使用。

2、系统结构简述:

本系统包括三个实体:院系;学生档案;课程;

实体之间的关系转换为其他表的有:选修;

实体“院系”与“学生档案”之间有一对多的关系,把院系表的主码转放到表“学生档案”中;

实体“学生档案”与“课程”之间有多对多的关系,因此独立形成一个表并共同存储“学生档案”与“课程”表的主码和一些自己的属性列;

3、该数据库需要进行如下数据处理:

从选修表中查询成绩的函数:

输入:学号和课程编号。

输出:对应的学号和课程编号的分数即成绩;

从学生档案表中查询学生基本信息的函数:

输入:学号。

输出:对应的学号的基本信息,即学号,姓名,性别,专业,****,联系地址,院系编号;

从学生档案表中删除对应的学生记录:

输入:学号。

输出:删除对应的学生记录,若没有对应的学号则输出“没有该学生!”的提示;

向学生档案表插入数据的函数:

输入:学生档案表的基本信息,包括所有属性列;即学号,姓名,性别,专业,****,联系地址,院系编号;

级联更新(从院系表到学生档案表、课程表):

输入:院系编号,院系名称。

成绩表上的触发器,当删除某一个学生的成绩时触发:

当从学生档案表中删除学生记录时,若该学号的学生记录在选修表中也有的话,则提示。

表1.实体间的相互联系。

学生信息管理系统的e-r模型。

系统中的实体有:学生档案;课程;院系;

关系模式如下:

学生档案(学号#,姓名,性别,专业,****,联系地址)

pk=学号,not null

课程(课程编号#,课程名称,学时,院系编号)

pk=课程编号,not null

fk=院系编号,参照院系表。

选修(学号#,课程编号#,分数)

pk=< 学号,课程编号 >,not null

fk=学号,参照学生档案表。

fk=课程编号,参照课程表。

院系(院系编号#,院系名称)

pk=院系编号,not null

表1 学生档案表结构。

表2 院系表结构。

表3 课程表结构。

表4 选修表结构。

1、create database 学生信息管理。

create table 院系。

院系编号 smallint,院系名称 char(16),primary key(院系编号)

2、create table 学生档案。

学号 char(12),姓名 char(22),性别 char(2)check(性别 in ('男','女'))专业 char(16),**** char(12),联系地址 char(40),院系编号 smallint,primary key(学号),foreign key(院系编号)references 院系(院系编号)on update cascade

3、create table 课程。

课程编号 char(10),课程名称 char(20),学时 smallint,院系编号 smallint,primary key(课程编号),foreign key(院系编号)references 院系(院系编号)on update cascade

4、create table 选修。

学号 char(12),课程编号 char(10),分数 numeric(4,1)check(分数<='100.0' and 分数 >=0'),primary key(学号,课程编号),foreign key(学号)references 学生档案(学号) on update no action,foreign key(课程编号)references 课程(课程编号) on update no action

5、从选修表中查询成绩的函数。

if exists(select name from sysobjects where name='成绩查询'and type='p')

drop procedure 成绩查询。

gocreate procedure 成绩查询 @sno char(12),@cno char(10)

asif exists(select 学号,课程编号 from 选修 where 学号=@sno and 课程编号=@cno)

select 学号,课程编号,分数。

from 选修。

where 学号=@sno and 课程编号=@cno

elseprint '没有该学号的学生或课程'

goexecute 成绩查询 '08080605227','06232023'

6、从学生档案表中查询学生基本信息的函数。

if exists(select name from sysobjects where name='学生基本信息查询' and type='p')

drop procedure 学生基本信息查询。

gocreate procedure 学生基本信息查询 @sno char(12)

asif exists(select 学号 from 学生档案 where 学号=@sno)

select *

from 学生档案。

where 学号=@sno

elseprint '不存在这样的学生!'

goexecute 学生基本信息查询 '08080605227'

7、从学生档案表中删除对应的学生。

if exists(select name from sysobjects where name='删除学生记录'and type='p')

drop procedure 删除学生记录。

gocreate procedure 删除学生记录 @sno char(12)

asif exists(select * from 学生档案 where 学号=@sno)

delete from 学生档案。

where 学号=@sno

elseprint '没有该学生!'

goexecute 删除学生记录 '12345678910'

execute 删除学生记录 '0908***

8、向学生档案表插入数据的函数。

if exists(select name from sysobjects where name='向学生档案表输入'and type='p')

drop procedure 向学生档案表输入。

gocreate procedure 向学生档案表输入 @sno char(12),@sname char(22),@ssex char(2),@szhuanye char(16),@scontact char(12),@saddress char(40),@dno smallint

asinsert into 学生档案 values(@sno,@sname,@ssex,@szhuanye,@scontact,@saddress,@dno)

goexecute 向学生档案表输入 '0908jack','男','计算机','150abbbb','1010'

SQL数据库作业

1 分别用ssms方式和t sql方式,在 教学成绩管理数据库 中创建 教师信息表 其表结构如下 use 教育成绩管理数据库。go create table 教师信息表。编号 char 6 not null,登录名 char 10 not null,姓名 nchar 4 not null,密码 ch...

SQL数据库作业

svse程序员上机考试。注意 考试结束试卷必须交回,否则按零分处理。一 语言和环境。a 实现语言 c b 环境要求 vs2005或更高版本 sql server2005二 数据库设计。数据库名称 empdb 数据库表信息 三 要求。利用c 和数据库编程,编写员工信息管理系统。要求实现员工信息的添加 ...

数据库原理 数据库管理系统复习

数据库 access 复习要点 数据库access基础 数据库管理系统 数据库原理 数据库原理及应用 以下为重点复习内容,请同学们务必背出下列重点概念,考试为闭卷笔试。复习教材 access数据库应用基础与实训教程 1.数据库管理系统的英文缩写 dbms 2.access 数据库文件的扩展名是什么?...