资源描述:
《SQL语句综合训练实习报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、信息工程学院数据库原理与应用(SQLServer2008)实习报告一、实习题目:SQL语句综合训练二、实验目的:本次实验是一个综合练习,通过训练,使学生全面掌握SQLSERVER2008的基本操作语句和功能。三.实习任务:综合练习二有某个学生运动会比赛信息的数据库,保存了如下的表:运动员(运动员编号,运动员姓名,运动员性别,所属系名)项目(项目编号,项目名称,项目比赛地点)成绩(运动员编号,项目编号,积分)请用SQL语句完成如下功能:1.建立数据库,数据库名称为y_x_c2.建立数据表,并满足如下条件:(1)定
2、义各个表的主码、外码约束(2)运动员的姓名和所属系别不能为空值。(3)积分要么为空值,要么为6,4,2,0,分别代表第一,二,三名和其他名次的积分。3.往表中插入数据:运动员(1001,李明,男,计算机系;1002,张三,男,数学系 1003,李四,男,计算机系;1004,王二,男,物理系 1005,李娜,女,心理系;1006,孙丽,女,数学系)项目(x001,男子五千米,1操场;x002,男子标枪,1操场 x003,男子跳远,2操场;x004,女子跳高,2操场x005,女子三千米,3操场)成绩(1001
3、,x001,6;1002,x001,4; 1003,x001,2;1004,x001,0; 1001,x003,4;1002,x003,6; 1004,x003,2;1005,x004,6; 1006,x004,4)4.完成如下查询(1)求出目前总积分最高的系名,及其积分。(2)找出在1操场进行比赛的各项目名称及其冠军的姓名。(3)找出参加了张三所参加的所有项目的其他同学的姓名。5.建立视图文件,查询每个项目的项目名称、运动员姓名和所属系名。6.经查张三因为使用了违禁药品,其成绩都记0分,请在数据库中做
4、出相应修改。7.经组委会协商,需要删除女子跳高比赛项目。8.新建一个服务器用户user2,使user2可以访问数据库y_x_c,对运动员表有查询和修改权限,没有插入和删除权限,对项目表有查询权限,没有插入、修改、删除的权限,对成绩表有查询、插入、修改、删除权限。三.实习过程:请用SQL语句完成如下功能:1.建立数据库,数据库名称为y_x_c语句为:CREATEDATABASEy_x_c;执行结果为:2.建立数据表,在定义中要求声明:(1)每个表的主、外码。CREATETABLEATHLETE(ATHnoCHAR
5、(9)PRIMARYKEY,AnameCHAR(20)NOTNULL,AsexCHAR(10),AdepartCHAR(20)NOTNULL)执行结果为:即第一个表建成。建立第二个表,语句为:CREATETABLEITEM(ITEMnoCHAR(9)PRIMARYKEY,InameCHAR(20),IlocationCHAR(10))执行结果为:建立第三个表,语句为:CREATETABLESCORE(ATHnoCHAR(9),ITEMnoCHAR(9),ScoreINT,CHECK(Score=NULLORSc
6、ore='6'ORScore='4'ORScore='2'ORScore='0'),PRIMARYKEY(ATHno,ITEMno),FOREIGNKEY(ATHno)REFERENCESATHLETE(ATHno),FOREIGNKEY(ITEMno)REFERENCESITEM(ITEMno))执行结果为:3.往表中插入数据:运动员(1001,李明,男,计算机系;1002,张三,男,数学系 1003,李四,男,计算机系;1004,王二,男,物理系 1005,李娜,女,心理系;1006,孙丽,女,数学系)
7、项目(x001,男子五千米,1操场;x002,男子标枪,1操场 x003,男子跳远,2操场;x004,女子跳高,2操场x005,女子三千米,3操场)成绩(1001,x001,6;1002,x001,4; 1003,x001,2;1004,x001,0; 1001,x003,4;1002,x003,6; 1004,x003,2;1005,x004,6; 1006,x004,4)然后导入数据:执行导入和导出数据——>、下一步:下一步,下一步:下一步:下一步:下一步:此时出现了如下情况:然后我查看错误消息,
8、它提示说:是违反了PRIMARYKEY约束,不能在对象中插入重复键等,我不懂是什么意思,然后百度问题,查找网上的解决办法。根据网上一系列的讲解,猜想可能是我的列的命名Ano,Ino等与默认数据库中的列名重复了,所以我又将以前创建的列删除,重新改写SQL语句中的列名,重新创建三个表,然后再导入数据,最后成功了。然后编辑前两百行,查看导入结果,可看到导入成功:4.完成如下查询(1)求出目前