




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一创办数据库及关系表一、实验目的掌握SQLServer数据库管理系统的使用,能够中该环境中进行平常数据库操作;掌握在SQLServer中使用图形化工具创办数据库的方法;掌握建立关系表的语句,掌握定义主码拘束及外码拘束的语句;掌握改正表结构的语句。二、实验要求1.认识SQLServer数据库的组成,会使用图形化工具创办数据库。2.编写建立表及主、外码拘束的T-SQL语句,并执行这些语句,在数据库中建立切合要求的关系表。3.编写改正表结构的语句。三、实验内容和步骤1.创办切合以下条件的数据库:数据库的名字为:Students数据文件的逻辑文件名为:Students_dat,存放在D:\Test录下(若D:盘中无此子目录,可先建立此目录,今后再创办数据库。);文件的初始大小为:5MB;增加方式为自动增加,每次增加1MB。日志文件的逻辑文件名字为:Students_log,也存放在D:\Test目录下;日志文件的初始大小为:2MB;日志文件的增加方式为自动增加,每次增加10%。2.在已建立的Students数据库中,写出创办满足下述条件的四张表的SQL语句,并查察执行结果。Student表结构列名说明数据种类拘束Sno学号一般编码定长字符串,长度为7主码Sname姓名一般编码定长字符串,长度为10非空Ssex性别一般编码定长字符串,长度为2Sage年龄微整型(tinyint)Sdept所在系一般编码不定长字符串,长度为20Spec专业一般编码定长字符串,长度为10Course表结构列名说明数据种类拘束Cno课程号一般编码定长字符串,长度为10主码Cname课程名一般编码不定长字符串,长度为20非空Credit学时数整型Semester学分小整型SC表结构列名说明数据种类拘束Sno学号一般编码定长字符串,长度为7主码,引用Student的外码Cno课程号一般编码定长字符串,长度为10主码,引用Course的外码Grade成绩小整型Teacher表结构列名说明数据种类拘束Tno教师号一般编码定长字符串,长度为8非空Tname教师名一般编码定长字符串,长度为10非空Dept所在部门一般编码不定长字符串,长度为20Salary薪水定点小数,小数点前4位,小数点后2位Birthday出寿辰期小日期时间型(smallldatetime)Createtablestudent(Snochar(7)primarykey,Snamenchar(10)notnull,Ssexnchar(2),Sagetinyint,Sdeptnvarchar(20),Specchar(10))createtablecourse(Cnochar(10),Cnamenvarchar(20)notnull,Creditint,Semestertinyint,Primarykey(Cno))createtablesc(Snochar(7)notnull,Cnochar(10)notnull,Gradetinyint,primarykey(Sno,Cno),foreignkey(Sno)referencesStudent(Sno),foreignkey(Cno)referencesCourse(Cno),)createtableteacher(Tnochar(8)notnull,Tnamechar(10)notnull,Deptnvarchar(20),Salarynumeric(6,2),Birtherysmalldatetime)执行结果:写出实现以下操作的SQL语句,并查察执行结果:(1)在SC表中增加一个新的修课种类列:列名为:XKLB,种类为char(4)。altertablescaddXKLBchar(4)(2)将Course表中的Credit列的种类改为:tinyint(微整型,取值范围在0~。altertablecoursealtercolumnCredittinyint3)删除Student表的spec列。altertablestudentdropcolumnspec(4)为Teacher表增加主码拘束,其主码列为:Tno。altertableteacheraddconstrainty_sprimarykey(Tno)执行以下语句,可否成功为什么INSERTINTOSCVALUES(‘S001’,’C01’,88,’必修’)答:不能够功,因为错误显示sc表的sno学号列有外键拘束,它是引用的student学生表里面的学号,所以执行前面的语句时’s001’不存在于学生表中,所以执行不能够功。若在student学生表中插入学号’s001’的学生信息,如:insertintostudentvalues('s001','王盼','女',19,'数学系')则再执行该语句时成功。四.实验小结:经过此次实验,学习了SQLServer数据库管理系统的使用的方法,经过自己创办数据库和表,熟悉了上课中讲到的相关知识,在完成实验的同时对自己所编写的代码进行调试和查错,并且自己发现错误并改正,对知识的理解和掌握都有很大的帮助。实验二数据操作语句一、实验目的理解数据操作语句的功能。二、实验要求1.依照实验一建立的数据库和关系表,导入部分数据;2.编写实现数据操作功能的SQL语句。三、实验内容及步骤盘问计算机系年龄最大的三个学生的姓名和年龄。selecttop3sname,sage,sdeptfromstudentwheresdept='计算机系'orderbysagedesc统计每个学生的选课门数,并按选课门数的递加序次显示结果。selectsno,count(*)fromscgroupbysnoorderbycount(*)列出总成绩高出200分的学生,要求列出学号、总成绩。select
sno,sum(grade)
总成绩fromscgroup
bysnohaving
sum(grade)>200盘问成绩80分以上的学生的姓名、课程号和成绩,并将结果按成绩的降序排列。selectSname,cno,Gradefromscjoinstudentson=wheregrade>80orderbygradedesc盘问学生的选课情况,要求列出每位学生的选课情况(包括未选课的学生),并列出学生的学号、姓名、课程号和考试成绩。select
,Sname,Cno,Gradefromstudent
left
outer
join
scon
=列出“VB”课程考试成绩前三名的学生的学号、姓名、所在系和考试成绩。selecttop3,sname,sdept,gradejoinscon=joincoursecon=wherecname='VB'orderbygradedesc
fromstudents盘问哪些课程没有人选,要求列出课程号和课程名。select,CnamefromCoursecleftjoinscon=whereisnull8.盘问计算机系学生考试成绩高于全体学生的总平均成绩的学生的姓名、考试的课程名和考试成绩。selectsname,cname,gradefromstudentsjoinscon=joincoursecon=wheregrade>all(selectavg(grade)fromsc)andsdept='计算机系'9.盘问
VB考试成绩最低的学生的姓名、所在系和
VB成绩。select
top1sname,sdept,gradejoinscon=joincoursecon=wherecname='VB'
fromstudentsorderbygrade盘问VB课程考试成绩高于VB平均成绩的学生的姓名。select
snamefromstudentsjoinscon=joincoursecon=wherecname='VB'andgrade>all(selectavg(grade)fromscjoincoursecon=wherecname='VB')盘问平均成绩大于80分的课程的名字和学分。select
cname,semester
from
coursecwherecno
in
(select
from
scgroup
byhaving
avg(grade)>80)统计每门课程的选课人数,包括有人选的课程和没有人选的课程,列出课程号,选课人数及选课情况,其中选课情况为:若是此门课程的选课人数高出100人,则显示“人多”;若是此门课程的选课人数在40~100,则显示“一般”;若是此门课程的选课人数在1~40,则显示“人少”;若是此门课程没有人选,则显示“无人选”。select,count选课人数,casewhencount(*)>100then'人多'whencount(*)between40and100then'一般'whencount(*)between1and40then'人少'whencount(*)=0then'无人选'endas选课情况fromscgroupby13.盘问最少选修了“9512102”号学生选修的全部课程的学生,列出学号和所选的课程号。selectsno,cnofromscsc1wherenotexists(select*fromcoursec
join
sc
on=wheresno='9512102'andnotexists(select*fromscwhere=and=)14.盘问最少选修了第2学期开设的全部课程的学生的姓名和所在系。select
sname,sdeptfromstudentswherenotexists(select*fromcoursecwhere=2andnotexists(select*fromscwhere=and=))15.改正“VB”课程的考试成绩,若是是计算机系的学生,则增加4分;若是是信息系的学生则增加8分,其他系的学生增加10分。updatescsetgrade=grade+casesdeptwhen'计算机系'then4when'信息系'then8else10endfromstudentsjoincoursec
joinscon=
on=删除修课成绩小于50分的学生的修课记录deletefromscwheregrade<50删除信息系修课成绩小于50分的学生的修课纪录,分别用子盘问和多表连接形式实现。子盘问deletefromscwheresnoin(selectsnofromstudentwheresdept='信息系')andgrade<50--多表连接deletefromscfromscjoinstudentson=wheresdept='信息系'andgrade
<50将全部选修了“c01”课程的学生的成绩加10分。updatescsetgrade=grade+10fromscwherecno='c01'将计算机系全部选修了‘计算机文化学’课程的学生的成绩加10分,分别用子盘问和多表连接形式实现。多表连接updatescsetgrade=grade+10fromscjoinstudentson=joincoursecon=wherecname='计算机文化学'andsdept='计算机系'--子盘问updatescsetgrade=grade+10wheresnoin(selectsnofromstudentwheresdept='计算机系'andcnoin(selectcnofromcoursewherecname='计算机文化学'))20.删除“VB”考试成绩最低的学生的VB修课记录。Deletefromscwherecno=(selectcnofromcoursewherecname='VB')Andgrade=(selectmin(grade)fromscwherecno=(selectcnofromcoursewherecname='VB'))21.改正高等数学的考试成绩,改正规则以下:若是是计算机系学生,则加10分,若是是信息系学生则加5分,若是是数学系学生则分数不变。updatescsetgrade=grade+casesdeptwhen'计算机系'then10when'信息系'then5else0endfromstudentsjoinscon=joincoursecon=wherecname='高等数学'四.实验小结此次上机实验,主要对数据操作语句的基本运用和理解,在实验中从简单到复杂的问题中,一点点的掌握了SQL语言的功能,在实验中经过自己对语句的检验剖析,还有老师的指导,基本掌握了数据库语言的运用,课后会多多牢固。实验三数据圆满性拘束一、实验目的理解数据圆满性拘束的功能。二、实验要求1.掌握建立声明性数据圆满性拘束的SQL语句;2.掌握建立过程圆满性拘束的SQL语句。三、实验内容1.在实验一建立的Students数据库中,编写建立满足圆满性要求的定义表的SQL语句,执行并观察执行结果。(说明:表名、列名均用给出的中文)(1)图书表,结构以下:书号:一致字符编码定长种类,长度为6,主码,书名:一致字符编码可变长种类,长度为30,非空,第一作者:一般编码定长字符种类,长度为10,非空,初版日期:小日期时间型,小于等于当前系统日期,印刷数量:小整型,取值范围:1000~5000,默认为4000,价格:定点小数,小数部分一位,整数部分3位。(2)书店表,结构以下:书店编号:一致字符编码定长种类,长度为6,主码,店名:一致字符编码可变长种类,长度为30,非空,电话:一般编码定长字符种类,12位长,取值形式:010-8位数字地址:一般编码可变长字符种类,40位长。前两个字符必定是:北京。(3)图书销售表(XSB),结构以下:书号:一致字符编码定长种类,长度为6,非空,书店编号:一致字符编码定长种类,长度为6,非空,销售日期:小日期时间型,非空,默认值为系统当前日期,销售数量:微整型,取值大于0,主码(书号,书店编号,销售日期);书号为引用“图书表”的外码;书店编号为引用“书店表”的外码。createtable图书表(书号nchar(6)PRIMARYKEY,书名nvarchar(30)notnull,第一作者char(10)notnull,初版日期smalldatetimecheck(初版日期<=getdate()),印刷数量smallintdefault4000,价格numeric(4,1),check(印刷数量between'1000'and'5000')createtable书店表(书店编号nchar(6)primarykey,店名nvarchar(30)notnull,电话char(12)check(电话like'010-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),地址nvarchar(40)check(地址like'北京%'))createtable图书销售表(书号nchar(6)notnull,书店编号nchar(6)notnull,销售日期smalldatetimedefaultgetdate()notnull,销售数量tinyintcheck(销售数量>0),primarykey(书号,书店编号,销售日期),foreignkey(书号)references图书表(书号),foreignkey(书店编号)references书店表(书店编号))执行以下两条数据插入语句,可否都能执行成功为什么INSERTINTO图书表VALUES(‘T0001’,‘数据库系统基础’,‘张三’,‘2010-2-1’,3000,成功。INSERTINTO图书表VALUES(‘T0002’,‘计算机网络’,‘张三’,‘2010-1-1’,500,不能够功,因为印刷数量是500,不满足规定的1000到5000。执行以下两条数据插入语句,可否执行成功为什么INSERTINTO书店表VALUES(‘S001’,’新华书店’,’12345678’,’北京市海淀区’)不能够功,电话不满足格式。改正后的电话:执行以下两条数据插入语句,可否执行成功为什么INSERTINTO图书销售表(书号,书店编号,销售数量)VALUES(‘T0001’,’S001’,20)不能够功,因为书号为引用“图书表”的外码。编写实现以下功能的触发器:(1)限制考试成绩必定在0~100分之间。createtriggertri_aonscafterinsert,updateasifexists(select*fromscwheregradenotbetween0and100)rollback(2)限制不能够将不及格的考试成绩改为及格。createtriggertri_bonscafterupdateasifexists(select*frominsertedjoindeletedon=and=where>=60and<=60)rollback(3)限制不能够删除选修课程考试成绩不及格学生的该门课程的选课及考试记录。createtriggertri_conscafterdeleteasifexists(select*fromdeletedwheregrade<60)rollback(4)限制每个学生总的选课门数不能够高出20门。createtriggertri_donscafterinsert,updateasifexists(selectcount(cno)fromscgroupbysnohavingcount(cno)>20)rollback(5)限制每个学期开设的课程总学分必定在20~25之间。createtriggertri_eoncourseafterinsert,update,deleteasifexists(selectsum(credit)fromcoursegroupbysemesterhavingsum(credit)notbetween20and25)rollback五.实验小结经过此次上机实验,把上课中所讲的数据圆满性拘束的相关知识获取了复习,经过上机更直观的理解了圆满性拘束的功能,经过增加删除拘束的操作更好的掌握了相关知识,收获很大。实验四安全管理一、实验目的掌握安全管理的过程。掌握在SQLServer环境中实现安全管理的操作。二、实验要求能够在SQLServer环境中建立SQLServer身份考据的登录账户。能够建立数据库用户。编写给用户授权的SQL语句。考据安全管理的奏效。三、实验内容及步骤1.建立SQLServer认证的登录帐户:u1、u2、u3,并将u1、u2、u3照射为实验一建立的Students数据库的用户。2.用u1建立一个新的连接,并在students数据库中执行下述语句,是否能成功为什么SELECT*FROMCourse不能够功,因为u1没有被授予对象'Course'的盘问权限。3.用系统管理员登录建立一个连接,并授予u1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小班幼儿特殊管理制度
- 医院人员聘用管理制度
- 学校萌宠乐园管理制度
- 合伙企业股东管理制度
- 单位规章制度管理制度
- 商场电池柜台管理制度
- 咸阳高中时间管理制度
- 公司需要那些管理制度
- 土地三位一体管理制度
- 工资薪酬福利管理制度
- 分布式光伏发电建设背景和必要性
- 人工智能在智能体育中的应用创新
- 2024年全国初中数学联赛试题及答案(修正版)
- 先张法预应力混凝土管桩生产线建设项目
- 《阀门检修及维护》课件
- 体力处理操作风险评估报告
- 中职英语 基础模块2 Unit 8 Green Earth
- NB-T 47013.15-2021 承压设备无损检测 第15部分:相控阵超声检测
- 三级医师查房制度课件
- 老年人神经健康讲座内容摘要
- 燃用重质渣油的铝合金熔炼炉能耗测试与分析
评论
0/150
提交评论