1、数据库开发与应用实验指导书沈阳理工大学应用技术学院2009年12月目录实验一数据库和表的操作1实验二数据的操作15实验三存储过程的操作18实验四触发器的使用20实验五数据库综合设计22实验一数据库和表的操作实验目的:1了解SQLSERVER数据库的逻辑结构和物理结构;2、掌握SQLSERVER数据库的文件组成;3、掌握SQLSERVER数据库中文件组的概念;4、了解表的结构和特点;5、了解SQLSERVER的基本数据类型;6、学会使用结构化查询语句创建和管理数据库和表;实验内容:1使用sql语句创建最简单的数据库;2、使用Sql语句创建带条件的数据库,要指定数据文件和日志文件的名称、大小、最大
2、限制和文件增长速度;3、为数据库改名;4、向数据库中填加、删除一个数据文件;5、向数据库中填加一个日志文件;6、修改数据库文件的属性:包括文件大小,最大限制,增长方式等;7、删除数据库;8、在数据库bookbOrroW中建立3个基本表,实现对表的管理。具体实验内容:1、使用sql语句建立最简单的数据库sqlcourse;2、使用sql语句建立数据库schoolo包含两个数据库文件和一个日志文件,其中主数据文件的逻辑名为schooLdata,初始大小为IOMB,最大大小为500MB,设置文件自动增长,增长方式为10%;辅助数据文件的逻辑名为“schooLdata2,初始大小为2MB,最大大小为3
3、0MB,设置文件自动增长,增长方式为5MBo日志文件的所有限制默认。3、为数据库Sqlcourse更名为yangguang。SchooLDatayangguangaIterdatabasesqlcoursemodifyname=yangguangalterdatabaseschooladdfile(name=newzfilename=E:anew.ndfzsize=3mb,maxsize=10mbzfilegrowth=5mb)-删除数据库dropdatabaseyangguang-删除数据库school_data2alterdatabaseschoolremovefileschool_dat
4、a2alterdatabaseschooladdlogfile(name=rizhi,filename=EAarizhi.ldf,size=3mb,masize=50mb,filegrowth=5mb“创建数据库sqlcoursecreatedatabasesqlcourse-创建数据库schoolcreatedatabaseschoolon(name=school-datazfilename=EAaschooLdata.mdf,Size=IOmb,maxsize=500mb,filegrowth=10%),(name=school-data2zfilename=,EAaschool-data
5、2.ndf,size=2mb,maxsize=30mb,filegrowth=5mb)-为数据库更改名yangguangalterdatabasesqlcoursemodifyname=yangguang-创建辅助数据文件alterdatabaseschooladdfilename=new,filename=,EAanew.ndf,size=3mb,masize=10mbzfilegrowth=5mb-删除数据库dropdatabaseyangguang-删除数据库school_data2alterdatabaseschoolremovefileschool_data2alterdatabas
6、eschooladdlogfile(name=rizhi,filename=Earizhi.ldf,size=3mb,maxsize=50mb,filegrowth=5mb)alterdatabaseschooladdfile(name=newzfilename=,Eanew.ndf,size=3mb,maxsize=10mbzfilegrowth=5mb-删除数据库dropdatabaseyangguang删除数据库school_data2alterdatabaseschoolremovefileschool_data2alterdatabaseschooladdlogfile(name=r
7、izhi,filename=EAarizhi.ldf,size=3mbzmasize=50mb,filegrowth=5mb)alterdatabasesqlcoursemodifyname=yangguangalterdatabaseschooladdfile(name=new,filename=E:anew.ndf,size=3mb,maxsize=10mb,filegrowth=5mb-删除数据库dropdatabaseyangguangTH除数据库school_data2alterdatabaseschoolremovefileschool_data2alterdatabasescho
8、oladdlogfile(name=rizhizfilename=EAarizhi.ldf,size=3mb,maxsize=50mbzfilegrowth=5mb)-创建数据库sqlcoursecreatedatabasesqlcourse-创建数据库schoolcreatedatabaseschoolon(name=school-datazfilename=E:aschool_data.mdf,Size=IOmbzmaxsize=500mb,filegrowth=10%),name=school_data2,filename=E:aschool_data2.ndfzsize=2mb,mas
9、ize=30mbzfilegrowth=5mb)“为数据库更改名yangguangalterdatabasesqlcoursemodifyname=yangguang-创建辅助数据文件alterdatabaseschooladdfile(name=newzfilename=E:anew.ndfzsize=3mb,maxsize=10mb,filegrowth=5mb)-删除数据库dropdatabaseyangguang-删除数据库school_data2alterdatabaseschoolremovefileschool_data2alterdatabaseschooladdlogfile
10、name=rizhizfilename=EAarizhi.ldf,zsize=3mb,masize=50mb,filegrowth=5mb)4、使用sql语句在数据库school中添加和删除一个数据文件。(1)逻辑名、物理名、初始大小、最大大小自己设计,增长按照MB方式自动增长。删除数据文件“sch。Ldata2”。5、使用sql语句在数据库school中添加一个日志文件。(1)逻辑名、物理名、初始大小、最大大小自己设计,增长按照百分计数方式自动增长。alterdatabaseschooladdfile(name=newrfilename=E:anew.ndfzsize=3mbzmaxsiz
11、e=10mb,filegrowth=5mb)-删除数据库dropdatabaseyangguang- -删除数据库school_data2alterdatabaseschooladdlogfile(name=rizhizfilename=Earizhi.ldf,size=3mb,maxsize=50mb,fjegrowth=5mb)alterdatabasesqlcoursemodifyname=yangguangYangguangschooLDatayangguangaIterdatabasesqlcoursemodifyname=yangguangalterdatabaseschoolad
12、dfile(name=newrfilename=E:anew.ndfzSiZe=3mb,maxsize=10mb,filegrowth=5mb)-删除数据库dropdatabaseyangguang- -删除数据库school_data2alterdatabaseschooladdlogfile(name=rizhizfilename=Earizhi.ldf,size=3mb,maxsize=50mb,fjegrowth=5mb)- -创建数据库sqlcoursecreatedatabasesqlcourse- -创建数据库schoolcreatedatabaseschoolon(name=s
13、chooLdatazfilename=E:aschool_data.mdf,size=10mb,maxsize=500mb,filegrowth=10%),(name=school_data2,filename=E:aschool_data2.ndf,size=2mb,masize=30mb,filegrowth=5mb-为数据库更改名yangguangalterdatabasesqlcoursemodifyname=yangguang- -创建辅助数据文件alterdatabaseschooladdfile(name=new,filename=,Eanew.ndf,size=3mb,maxs
14、ize=10mb,filegrowth=5mb)-删除数据库dropdatabaseyangguang删除数据库school_data2alterdatabaseschoolremovefileschool_data2alterdatabaseschooladdlogfile(name=rizhi,filename=EAarizhi.ldf,zsize=3mb,masize=50mb,filegrowth=5mb6、使用Sql语句在数据库SChool中建立教师表3学生表s,课程表c,选课表SC和授课表tCo表111(教师)表结构字段名字段类型字段宽度说明tnovarchar8教师号(非空)tn
15、amevarchar10教师姓名(非空)tsexvarchar4性别tageSmallint2年龄tprofvarchar10职称tsalsmallint2工资tcommsmallint2岗位津贴tdeptvarchar20系名表1-2S(学生)表结构字段名字段类型字段宽度说明snovarchar8学号(非空)snamevarchar10学生姓名(非空)ssexvarchar4性别sagesmallint2年龄sdeptvarchar20系名表l-3c(课程)表结构字段名字段类型字段宽度说明cnovarchar8课程号(非空)cnamevarchar20课程名(非空)Ctsmallint2课时
16、数表14sc(选课)表结构字段名字段类型字段宽度说明snovarchar8学号(非空)cnovarchar8课程号(非空)scoreSmallint2成绩表1-5tc(授课)表结构字段名字段类型字段宽度说明tnovarchar8教师号(非空)cnovarchar8课程号(非空)7、使用INSERTINTO语句插入数据t表tnotnametsextagetproftsaltcommtdepttl李力男47教授18003000计算机t2王平女28讲师8501200信息t3刘伟男30讲师10001200计算机t4张雪女51教授19003000自动化t5张兰女39副教授15003000信息snosna
17、messexsagesdeptSl赵亦女17计算机s2钱尔男18信息S3孙姗女20信息s4李思男21自动化S5周武男19计算机s6吴丽女20自动化SC表snocnoscoreSlc285Slc5100s2c560s2c680s2c7S3Cl70S3c485s4c285s4c383s5c289cnocnameCtCl程序设计60c2微机原理80c3数字逻辑60c4数据结构80c5数据库60c6编译原理60c7操作系统60tc表:tnocnotlclt2c5t4c2t5c5t3clt3c5t2c7t4c3t5c78、分别建立5个基本表的主码,建立学生表与选课表,课程表与选课表之间的关系;9、限制选
18、课表的成绩列输入的值在O到Ioo之间。1.1 设置性别的取值或者是男或者是女。1.2 设置课程表中课程时数的初始值为Oo实验报告书写要求:1、字迹工整,过程清晰。2、方法与原理分析写本次实验所涉及的理论知识点。3、实现过程写出创建和修改数据库和基本表的SQL语句。4、结果分析写出修改后执行的结果,同时对实验过程中遇到的问题作适当分析。5、实验后一周完成实验报告书写。实验二数据的操作(查询,修改和删除)实验目的:1、掌握指定列或全部列查询;2、掌握按条件查询;3、掌握对查询结果排序;4、掌握使用聚集函数的查询;5、掌握对查询结果分组;6、掌握涉及一个以上数据表的查询;7、掌握嵌套查询的方法,从而
19、增强SQL的查询能力;8、掌握使用UNION操作符将来自不同查询但结构相同的数据集合组合起来。实验内容:1、完成数据表的创建过程。2、对于单个数据表实现多种不同条件的查询。3、对于多个表之间实现连接查询,主要包括2种外连接和带有连接谓词的内连接。4、实现嵌套查询操作,同时练习嵌套查询和连接查询之间的互相转换。同时掌握自身连接的查询。5、实现集合查询的操作,掌握不同集合操作符的优先级。具体实验内容:1、创建数据库表:(使用实验一的数据表及其数据)教师表:T;学生表:S;课程表:C;选课表:SC;授课表:TC2、查询操作:(结合实验一的实验一的数据完成各种不同的查询)2.1 单表查询查询S表中全体
20、学生的详细记录;查询所有学生的姓名及其出生年份;查询考试成绩不及格的学生学号、姓名;(连接)查询年龄在20-23岁之间的学生姓名、系名、年龄;查询姓李的学生的姓名、学号和性别;查询名字中第2个字为“明”字的男学生的姓名和系名;查询信息系、计算机系学生的姓名、系名,结果按系名升序,姓名降序排序;查询所有有课程号C2成绩的学生的学号、课程号和成绩,并按成绩降序排序;查询计算机系学生总人数;查询选修了微机原理课程的学生人数、平均成绩、最高成绩;(连接)(11)查询各个课程号及相应的选课人数;(12)查询选修了2门以上课程的学生学号、姓名和平均成绩;(连接)。2.2 连接查询查询所有选课学生的学号、姓
21、名、选课名称及成绩;查询每门课程的课程号、任课教师姓名及其选课人数;查询所有比“刘伟”工资高的教师姓名、工资和刘伟的工资;查询同时选修了“程序设计”和“微机原理”的学生姓名、课程名;查询所有学生的学号、姓名、选课名称及成绩(没有选课的同学的选课信息显示为空)。2.3 嵌套查询查询与“刘伟”教师职称相同的教师号、姓名和职称;使用ANY谓词查询讲授课程号为C5的教师姓名;使用IN谓词查询讲授课程号为C5的教师姓名;使用ALL谓词查询其他系中比计算机系所有教师工资都高的教师的姓名、工资和所在系别。2.4 集合查询查询计算机系的学生姓名及年龄不大于19岁的学生姓名。实验报告书写要求:1、字迹工整,过程
22、清晰。2、方法与原理分析写本次实验所涉及的理论知识点。3、实现过程写出查询数据表的SQL语句。4、结果分析写出查询后执行的结果,同时对实验过程中遇到的问题作适当分析。5、实验后一周完成实验报告书写。实验三存储过程的操作实验目的:1通过实验掌握存储过程的概念、功能。2掌握用户自定义存储过程的创建方法,包括不带参数的,带输入值参数的,带返回值参数的。3掌握存储过程和过程语句的结合使用。4掌握存储过程的删除的方法。5掌握存储过程的执行的方法,包括没有参数的直接使用,带输入参数的使用方法,带输出参数的声明参数并赋值的方法。实验内容:1、创建并执行存储过程(1)用SQL语句创建并执行一存储过程Prc_Q
23、sinf:通过学生学号来查询学生的姓名、年龄、系名。其中默认学号是“S2。(2)执行存储过程PrjQsinf。查询并显示出默认学号(即S2)和学号为S4学生的姓名和年龄。(3)用SQL语句创建一存储过程Pro_Qscore:通过学生姓名和课程名查询该学生该课程的成绩。(4)执行存储过程Pro_Qscore。查询并显示学生“李思的程序设计课程的成绩。2、修改存储过程(1)用SQL修改存储过程PrjQsinf。修改要求:把定义中的变量SnO_in长度修改为2字节;sage_out变量类型改为tinyinto(2)用SQL修改存储过程PrjQsinf。存储过程的定义改为:根据学号查询姓名、性别、系名
24、设默认学号为“Sl。3、删除存储过程(1)用SQL删除存储过程Pro_Qscoreo实验报告书写要求:1、字迹工整,过程清晰。2、方法与原理分析写本次实验所涉及的理论知识点。3、实现过程写出创建和修改数据库和基本表的SQL语句。4、结果分析写出修改后执行的结果,同时对实验过程中遇到的问题作适当分析。5、实验后一周完成实验报告书写。实验四触发器的使用实验目的:1、掌握高级查询的使用方法;2、学习触发器定义的方法;3、分别练习使用插入、修改、删除触发器;4、重点掌握使用触发器实现数据表之间的关联。5、掌握使用触发器实现级联更新和级联删除操作。6、掌握判断不同触发器类型的方法。实验内容:1、创建数
25、据表。2、插入数据到数据表。3、创建判断是否执行了对数据表有影响的触发器。4、创建插入类型的触发器。5、创建更新类型的触发器。6、创建删除类型的触发器。具体实验内容:1、创建数据表products如下:表5-1products字段名字段类型字段宽度说明Productidint4产品编号Orderedint4订单编号quantityint4数量2、自行选择5条数据插入到表中。3、实验题目:(1)新建一个触发器皿:只要向该表中插入数据,就输出“成功录入”信息;(2)创建一个插入、更新类型的触发器江2:实现只要表中的数据有改变,就用SeIeCt语句显示查询结果;(3)创建一个删除类型的触发器tr3:
26、建立一个与products表结构一样的表Pl,当删除表products中的记录时,自动将删除掉的记录存放到PI表中。(4)应用实验一的数据实现级联删除操作,创建触发器tr4:删除学生表的一个学生的信息,同时删除该学生的选课信息。(5)应用实验一的数据实现级联更新操作,创建触发器t5:更新一门课程的课程号,同时更新选课表和授课表内的该课程的课程号。实验报告书写要求:1、字迹工整,过程清晰。2、方法与原理分析写本次实验所涉及的理论知识点。3、实现过程写出创建触发器的SQL语句。4、结果分析写出触发器引发后执行的结果,同时对实验过程中遇到的问题作适当分析。5、实验后一周完成实验报告书写。实验五数据库
27、综合设计实验目的:1掌握SQL语言在开发工具中的使用;2、通过完成从用户需求分析、数据库设计到上机编程、调试和应用等全过程,进一步掌握查询修改等SQL基本语法的相关内容。3、本次实验为综合设计性实验,按照功能自行设计数据库内表,存储过程和触发器。实验内容:1、 完成一个系统的设计,同时实现不同功能要求。2、 要求实现至少2个约束。3、 要求包括触发器,存储过程和视图的操作。具体实验内容:1、企业人事管理系统功能要求:人事管理系统应能实现用户的多级管理,并包含数据录入、数据校验、数据修改、数据浏览和各种模糊查询。2、学校教材管理系统功能要求:本系统能对学校所有班级的教材进行征订,对教材的入库、出
28、库进行管理,能进行各种条件的查询,还应具有教材库预警机制(教材库存不够用或教材征订过剩,都能给予提示)。3、高校学生成绩管理系统功能要求:学生成绩管理使教学管理的一个重要环节,本系统能够进行学生成绩登记、成绩的更正、成绩的查询、成绩的汇总及排序,对已毕业学生成绩能存入历史库中,具有良好实用性。4、图书管理系统功能要求:本系统能实现对图书入库、出库的管理。用户可以通过终端查询到在库的图书,并且如果图书已借出,可以查询到是谁借出的,在什么时候借的。5、客房管理系统功能要求:本系统能对一个宾馆的客房进行管理,用户可以预约、登记、注销客房。对于已预约的客房,不可以再预约或登记,一旦客户入住某客房,可以
29、在此系统中查询到该客户的信息。6、酒店餐饮管理功能要求:用户可以通过本系统点餐,可以通过任何一个终端,查询出该菜是哪一桌客户的。最后,客户可以通过终端查询出自己用餐的详单并结帐。7、工资管理系统功能要求:财务可以通过该系统分项录入员工的工资,并且可以把工资与出勤情况一致起来,只要给出出勤表,系统可以自动生成员工的工资。员工可以在客户端根据自己的用户名和密码查询到自己的工资。实验报告书写要求:1、字迹工整,过程清晰。2、方法与原理分析写本次实验所涉及的理论知识点。3、实现过程写出相应关键的SQL语句。4、结果分析写出部分执行的结果,同时对实验过程中遇到的问题作适当分析。5实验后一周完成实验报告书写。6、本实验内容请各位同学按照自己选择的题目,写出类似的需求内容到实验内容栏目。具体实验过程请挑选重要的内容写出来,建议写出创建的存储过程和触发器。