数据库课程实习 - - 运动会管理系统(3)

2019-02-26 09:35

总的来说,通过此次实习我得以将过去所学的知识综合融汇,进一步加深了对数据库的认识,更加熟练的掌握了数据库设计的一般过程及其具体环节。

参考文献

[1] 王珊 萨师煊.数据库系统概论(第四版).北京:高等教育出版社.2005

[2] 詹英.数据库技术与应用-SQL Server 2005 教程.北京.清华大学出版社.2008

[3] 刘大玮 马传宝 孙颖洁.SQL Server 数据库项目案例导航.北京.清华大学出版社.2005

[4] 夏邦贵 刘凡馨.SQL Server 数据库开发经典案例精解.北京.机械工业出版社.2006 附录

use SportManager --创建表

create table R ( )

create table S ( )

create table E (

11

re_no varchar(6) primary key, re_name varchar(20) not null,

re_sex char(2) check(re_sex in('男','女')), re_age int,

re_event varchar(2) not null, re_title varchar(20),

re_add varchar(30) not null,

constraint CK_RENO check(re_no like

constraint FK_R_E foreign key(re_event) references E(ev_no)

'2[0-9]0-9[0-9][0-9][0-9][0-9]'),

sp_no varchar(6) primary key, sp_name varchar(20) not null,

sp_sex char(2) not null check(re_sex in('男','女')), sp_age int check(sp_age between 18 and 35), sp_event varchar(2) not null, team varchar(2) not null,

constraint FK_S_S foreign key(sp_event) references E(ev_no), constraint FK_S_T foreign key(team) references T(t_no),

constraint CK_SPNO check(sp_no like '1[0-9][0-9][0-9][0-9][0-9]')

ev_no varchar(20) primary key check(ev_no like '[0-9][0-9]'), ev_name varchar(20) not null,

ev_place varchar(30) not null default '校本部' )

create table G ( )

create table P ( )

create table T ( ) --索引

create unique

create nonclustered

index sp_event_index

on S(sp_event) index ev_name_index

on E(ev_name)

t_no varchar(2) primary key, t_name varchar(20),

t_add varchar(20) not null, coach varchar(20) not null,

constraint CK_T_NO check(t_no like '[0-9][0-9]') sp_no varchar(6) primary key, punish varchar(50) not null,

constraint FK_P_S foreign key(sp_no) references S(sp_no) sp_no varchar(6), ev_no varchar(2), score int not null,

constraint PK_G primary key (sp_no,ev_no),

constraint FK_G_SP foreign key(sp_no) references S(sp_no), constraint FK_G_EV foreign key(ev_no) references E(ev_no)

--简单查询

--查询102001号运动员01项目的成绩 select @score=score from G

where sp_no=’01’ and ev_no=’102001’

12

-查询103002号运动员的姓名、教练和比赛项目

select sp_name,ev_name,coach from S,T,E

where sp_no=’103002’ and sp_event=ev_no and team=t_no

--自定义数据类型

CREATE TYPE NUM FROM char(6) NULL

--查询某位运动员的基本信息 内嵌表值函数

create function selectSporter(@num varchar(6)) returns table as return( )

select * from selectSporter('101001')

--查询某位裁判的基本信息 内嵌表值函数

create function selectReferee(@num varchar(6)) returns table as

return(

select * from R where re_no=@num )

select * from selectReferee('201001')

--查询某运动员在某项目取得的成绩 标量函数

create function selectSpGain(@num varchar(6),@evno varchar(2)) returns int as

begin

declare @score int

select @score=score from G

where sp_no=@num and ev_no=@evno return @score

select * from S where sp_no=@num

end

select dbo.selectSpGain('101001','01') --或者

declare @gain int

exec @gain = dbo.selectSpGain '101001','01' select @gain as 成绩

--查询某运动员的姓名、教练和比赛项目 多语句表值函数 create function selectSpInfor(@num varchar(6))

13

returns @infor table(姓名varchar(20),教练varchar(20),项目varchar(20)) as

begin

insert into @infor

select sp_name,ev_name,coach from S,T,E

where sp_no=@num and sp_event=ev_no and team=t_no return

end

select * from selectSpInfor('101001')

--查询某项赛事的地点 存储过程

create procedure selectEvent @evno varchar(2),@place varchar(30) output as

begin

select @place=ev_place from E where ev_no=@evno end

declare @where varchar(30)

exec selectEvent '01' ,@where output select @where as 地点

--查询所有处罚信息

create procedure selectPunish as

begin

select * from P end

exec selectPunish

--创建视图

--创建裁判与赛事的视图

create view referee_event as

select re_name,ev_name,ev_place from R join E on re_event=ev_no

select * from referee_event

--创建运动员和队伍的视图 create view sp_team as

14

select sp_no, sp_name,t_name from S,T where team=t_no

select * from sp_team --触发器

--不允许对处罚表进行修改或删除

create trigger trigger_punish on P

for update,delete as begin

rollback tran end

--如果修改运动员基本信息表中的编号将成绩表的编号也修改 create trigger tri_sporter on S

after update as

begin

update G

set sp_no=(select sp_no from inserted)

where sp_no in (select sp_no from deleted) end

--授权

exec sp_addlogin 'liusensen','111','SportManager'

exec sp_grantlogin 'zhangxiukun' go

exec sp_grantdbaccess 'zhangxiukun','zxk' go

exec sp_addrole '教师' go

exec sp_addrolemember '教师','zxk'

grant select,update,delete on S to 教师

with grant option

--备份

exec sp_addumpdevice 'disk','Spmdata','e:\\backup\\Spmdata.bak'

exec sp_addumpdevice 'disk','Spmlog','e:\\backup\\Spmlog.bak'

15

backup database SportManager to Spmdata

backup log SportManager to Spmlog

16


数据库课程实习 - - 运动会管理系统(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国雕刻刀产业调研及未来五年投资规划研究报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: