课程设计报告题目:数据库实验上机实验报告专业班级:计算机科学与技术1210班学号:U201215079姓名:候宝峰指导教师:报告日期:2015-06-04计算机科学与技术学院目录一、基本SQL操作(部分选做) (1)1)数据定义 (1)2)数据更新 (3)3)用SQL语句完成下述查询需求: (4)二、DBMS综合运用(部分选做) (8)1)学习sqlserver的两种完全备份方式:数据和日志文件的脱机备份、系统的备份功能(选做)。
(8)2)学习系统的身份、权限配置操作 (9)3)了解SQLSERVER的存储过程、触发器、函数实现过程 (14)三、实验总结 (17)1)实验问题及解决 (17)2)实验心得 (18)一、基本SQL操作(部分选做)1)数据定义参照下面的内容建立自己实验所需的关系数据创建三个关系:商品表【商品名称、商品类型】GOODS【GNAME char(20),GTYPE char(10)】主关键字为(商品名称)。
商品类型为(电器、文具、服装。
)商场【商场名称,所在地区】PLAZA【PNAME char(20),PAREA c har(20)】主关键字为商场名称。
所在地区为(洪山、汉口、汉阳、武昌。
)销售价格表【商品名称、商场名称、当前销售价格、目前举办活动类型】SALE【GNAME char(20),PNAME char(20),PRICE FLOAT,ATYPE c har(10)】主关键字为(商品名称、商场名称)。
举办活动类型为(送券、打折),也可为空值,表示当前未举办任何活动。
表中记录如(‘哈森皮靴’,‘亚贸广场’,200,‘打折’),同一商场针对不同的商品可能采取不同的促销活动。
create table goods(gname char(20) primary key,gtype char(10));create table plaza(pname char(20) primary key,parea char(20));create table sale(gname char(20),pname char(20),price FLOAT,atype char(10)check (atype in('送券','打折','')),primary key(gname,pname),foreign key(gname)references goods(gname),foreign key(pname)references plaza(pname));图1 goods表图2 plaza表图3 sale表2)数据更新(1)向上述表格中用sql语句完成增、删、个、改的操作;增加记录:insert into goods(gname,gtype)values(’anta’,’服装’);删除记录:delete from goods where gname=’南孚’and gtype=’电池’;更新记录:update goods set gtype=’电器’ where gname=’飞科’;(2)编写一个触发器,并测试该触发器;当插入一个“anta”货物时不能把它售价低于350 ,如果低于350 就修改成350create trigger [dbo].[Chang_Update_sale] on [dbo].[sale]after insert asif(select count(*)from sale,inserted where sale.gname='anta'and sale.price<350)=1 beginupdate sale set sale.price=350where sale.gname='anta'and sale.pname='家乐福'end图4 触发器执行图如图,将原有的记录删掉后插入一条新纪录,应该是俩行受影响,由于触发器修改最小值,则会显示三行受影响,查表知,是触发器有效执行了。
(3)将SALE表中的打折记录插入到新表SALE_CHEAP中,并基于SALE_CHEAP表创建一个统计每个商场各自打折商品平均价格的视图。
create view SALE_CHEAP asselect sale.pname,sale.gname,sale.pricefrom sale where atype='打折';select pname,avg(price) avgfrom SALE_CHEAPgroup by(pname)图5 视图3)用SQL语句完成下述查询需求:(1)查询所有以“打折”方式销售的商品的当前销售情况,并按照价格的降序排列;select GNAME,PNAME,PRICEfrom salewhere ATYPE='打折'order by price desc;图6 查询12)查询所有没有任何活动的商品及其所在的商场,结果按照商品排序;select GNAME,PNAMEfrom salewhere ATYPE is nullorder by gname;图7 查询23)查询价格在200~500元之间的商品名称、所在的商场名称、价格,结果按照商场名称排序;select GNAME,PNAME,pricefrom salewhere price between 200 and 500order by pname;图8 查询34)查询每种商品的最低价格、商品名称;select GNAME,min(price) min_pricefrom salegroup by gname;图9 查询45)查询以“送券”方式销售的商品总数超过30种的商场名称;select distinct pNAMEfrom salewhere atype='送券' and gname in(select gNAMEfrom salegroup by gnamehaving count(*)>30 );图10 查询56)查询以“送券”方式销售的商品总数超过30种的商场所在地区;select pname, PAREAfrom plazawhere pname in(select distinct pNAMEfrom salewhere atype='送券' and gname in(select gNAMEfrom salegroup by gnamehaving count(*)>30 ));图11 查询67)查询价格为下列取值之一的商品名称、所在商场名称、目前举办活动的类型,(88、188、288、388、488、588、888);select gname,pname,atypefrom salewhere price in(88,188,288,388,488,588,888);图12 查询78)查询以“老”字开头的所有商品的名称;select * from goodswhere gname like '老%'图13 查询89)查询同时销售“剃须刀”和“电池”的商场名称;select pnamefrom salewhere gname='南孚'and pname in(select pnamefrom salewhere gname=’飞科');图14 查询910)查询不举办任何活动的商场;select distinct plaza.pname,PAREAfrom sale,plazawhere atype is null and sale.pname=plaza.pname;图15 查询1011)查询所销售的商品包含了“校园超市”所销售的所有商品的商场名称。
select distinct pnamefrom salewhere gname in(select gnamefrom salewhere pname='家乐福');图16 查询11二、DBMS综合运用(部分选做)1)学习sqlserver的两种完全备份方式:数据和日志文件的脱机备份、系统的备份功能(选做)。
利用企业管理器:选择工具下的备份数据库:还以利用企业管理器设置自动备份计划等;直接拷贝数据文件。
把数据库的数据文件(*.mdf)和日志文件(*.ldf)都拷贝到目的服务器,在SQL Server Query Analyzer中用语句进行恢复:RESTORE DATABASE {数据库名| @数据库名变量} [ FROM <备份设备> [ ,...n ] ][ WITH [ RESTRICTED_USER ][ [ , ] { NORECOVERY | RECOVERY | STANDBY = undo_file_name } ]]RESTORE LOG {数据库名| @数据库名变量}[ FROM <备份设备> [ ,...n ] ][ WITH[ RESTRICTED_USER ][ [ , ] { NORECOVERY | RECOVERY | STANDBY = undo_file_name } ]]使得数据库恢复到备份状态。
2)学习系统的身份、权限配置操作图17 sql server安全性决策当SQL Server 2014 在Windows 上运行时,sysadmin 固定服务器角色成员可以指定下面两种身份验证模式之一:Windows 身份验证模式只进行Windows 身份验证。
用户不能指定SQL Server 2014 登录ID。
这是SQL Server 2014 的默认身份验证模式。
不能为在Windows 98 上运行的SQL Server 实例指定Windows 身份验证模式,因为此操作系统不支持Windows 身份验证。
当用户通过Windows NT 4.0 或Windows用户帐户进行连接时,SQL Server 通过回叫Windows NT 4.0 或Windows以获得信息,重新验证帐户名和密码。
SQL Server 通过使用网络用户的安全特性控制登录访问,以实现与Windows NT 4.0 或Windows的登录安全集成。
用户的网络安全特性在网络登录时建立,并通过Windows 域控制器进行验证。
当网络用户尝试连接时,SQL Server 使用基于Windows 的功能确定经过验证的网络用户名。
SQL Server 于是验证此人是否是如其所说的那个人,然后只基于网络用户名允许或拒绝登录访问,而不要求单独的登录名和密码。