《数据库原理实验.doc》由会员分享,可在线阅读,更多相关《数据库原理实验.doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、附录:实验指导书实验一 熟悉数据库管理系统环境一、实验目的:1. 了解SQL Server2008的基本安装和配置。2. 掌握SQL Server2008常用工具的基本操作方法。3. 了解SQL SERVER2008数据库及其表对象的建立方法。二、实验内容和主要步骤:1. 参照相关文档进行SQL Server 2008的安装和配置;2. 打开SQL Server 2008 SSMS工具,进行简单操作;3. 在SQL Server 2008 SSMS工具的目录树中展开数据库文件夹,新建一个test数据库,然后展开tesst数据库图标,则列出数据库的所有对象;4. 选中test下的“表”图标,则列
2、出数据库的所有表(里面是空的)。5. 利用SSMS建立如下三个表,按下面的列表中的字段名(英文)、类型和宽度建立:(注意主键、外键的建立,并输入数据体会实体完整性和参照完整性规则,部分列可以尝试用户定义的完整性规则)表1 student (学生)字段名字段说明类型字段大小小数位数sno学号Char8sname姓名Varchar8ssex性别Char2sdept系别Varchar20sage年龄Int整型表2 course (课程)字段名字段说明类型字段大小小数位数cno课程号Char3cname课程名称Varchar20Credit学分Numeric1Cpno系别char3表3 sc (选修)
3、字段名字段说明类型字段大小小数位数sno学号Char8cno课程号Char3Grade成绩numeric16. 向三个表中输入数据;表4 student表数据SnoSnameSexSageSdept08001张力男18cs08002李丽女19is08003赵海男20ma08004张那女17cs08005刘晨男18is08006刘丹丹女17ma08007刘立男21cs08008王江男19cs08009高晓男20is08010张丽女19cs表5 Course表数据Cno CnameCpnoCcredit001 数据库0054002 高等数学2003 信息系统0014004 操作系统0063005
4、数据结构0074006 数据处理2007 C语言0064表6 SC表数据SnoCnoGrade080010021000800100395080010049008001006100080020029808002003080030019908003002800800300398080040019008005007970800500237080060030800800150080080038008009001890800900490080100051007. 备份数据库及数据,以备后面实验使用;三、实验要求:1. 独立完成SQL Server 2008数据库常用操作2. 写出实验报告(在实验系统上完
5、成)实验二 数据定义一、实验目的:1. 熟练掌握SQL语言进行基本表结构的创建。2. 熟练应用SQL语言进行表结构的修改。3. 掌握SQL语言进行基本表的删除。4. 掌握SQL语言进行索引的建立和删除5. 选择具体的数据库管理系统进行实现(SQL Server 2008)二、实验内容和主要步骤:1. 在SQL Server 2008进行定义操作2. 用SQL语言CREATE TABLE语句创建学生表student、课程表course和选课表SC;(字段类型及长度参照实验一)3. 用SQL语言ALTER语句修改表结构;a) STUDENT表中SNO设为非空和唯一;b) STUDENT表中增加一个
6、字段SBIRTH,类型设置为日期时间类型,增加一个ADDRESS字段,类型为文本(字符);c) 删除STUDENT表中ADDRESS字段;d) COURSE表中CNO字段设为非空和唯一;4. 重新定义一个简单表,然后用SQL语言DROP语句删除该表结构;5. 用SQL语言CREATE INDEX语句定义表STUDENT的SNAME字段的降序索引;6. 用SQL语言CREATE INDEX语句定义表SC的GRADE字段的升序索引;7. 用SQL语言DROP语句删除索引;8. 输入部分数据,并试着修改其中的错误;注:l 注意数据的完整性。l 注意SQL Server 2008的SQL语句中数据类型
7、的写法:参考navicat工具中类型列表中的值。l 注意SQL Server 2008中的SQL定义语句和标准的SQL语句的不同:定义主码、外码、删除索引等。l 体会SQL语句建表和直接用图形工具建表的优劣三、实验要求:1、将上述任务中完整的SQL语句调试并使之运行正确;2、写出实验报告(在实验系统完成)实验三 SQL简单查询一、实验目的:1. 掌握SQL查询语句的一般格式2. 掌握简单数据查询操作。3. 熟练掌握各种查询条件的表示。4. 掌握排序和分组操作在SQL语句中的实现。5. 掌握集函数的使用。二、实验内容和主要步骤:1. 创建学生表student、课程表course和选课表SC,并输
8、入数据(注意数据的完整性。);(可以使用实验一中已经建立的表和数据)2. 对各表中的数据进行不同条件的查询;) 查询全体学生的学号和姓名) 查询全体学生的详细记录) 查询所有选修过课程的学生学号) 查询考试有不及格的学生学号) 查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别) 查询选修了4号课的学生学号和成绩,结果按成绩降序排列) 查询每个课程号和相应的选课人数) 查询计算机系(CS)的学生姓名、年龄、系别) 查询年龄1820岁的学生学号、姓名、系别、年龄;) 查询姓刘的学生情况) 查询既选修1号课程,又选修2号课程的学生学号) 查询学生的姓名和出生年份(今年2003年) 查询
9、没有成绩的学生学号和课程号) 查询总成绩大于200分的学生学号) 查询每门课程不及格学生人数) 查询不及格课程超过3门的学生学号) 查询年龄在10到19岁之间的学生信息) 查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列) 查询选了1号课程的学生平均成绩) 查询选了3号课程的学生的最高分) 查询每个同学的总成绩三、实验要求:1. 将上述任务中完整的SQL语句调试并使之运行正确;2. 写出实验报告(在实验系统完成)注意:有些题目可以使用多种方法进行表示实验四 复杂查询一、实验目的:1. 熟练掌握各种连接查询及其连接条件。2. 掌握各种嵌套查询的使用。3. 掌握复杂的集合查询。二、
10、内容和主要步骤:1.实验一中的数据为基础2.对各表中的数据进行不同条件的连接查询和嵌套查询;) 查询每个学生及其选课情况;) 查询每门课的间接先修课) 将STUDENT,SC进行右连接) 查询有不及格的学生姓名和所在系) 查询所有成绩为优秀(大于90分)的学生姓名) 查询既选修了2号课程又选修了3号课程的学生姓名、学号;) 查询和刘晨同一年龄的学生) 选修了课程名为“数据库”的学生姓名和年龄) 查询其他系比IS系任一学生年龄小的学生名单) 查询其他系中比IS系所有学生年龄都小的学生名单) 查询选修了全部课程的学生姓名) 查询计算机系学生及其性别是男的学生) 查询选修课程1的学生集合和选修2号课
11、程学生集合的差集) 查询李丽同学不学的课程的课程号) 查询选修了3号课程的学生平均年龄) 求每门课程学生的平均成绩) 统计每门课程的学生选修人数(超过3人的才统计)。要求输出课程号和选修人数,结果按人数降序排列,若人数相同,按课程号升序排列) 查询学号比刘晨大,而年龄比他小的学生姓名。) 求年龄大于女同学平均年龄的男同学姓名和年龄) 求年龄大于所有女同学年龄的男同学姓名和年龄) 查询至少选修了08002选修的全部课程的学生号码) 查询08001和08002两个学生都选修的课程的信息三、要求:1. 将上述任务中完整的SQL语句调试并使之运行正确;2. 写出实验报告(在实验系统完成)实验五 数据更
12、新一、实验目的:1. 熟练掌握SQL的常用数据更新操作。2. 熟练应用INSERT,UPDATE,DELETE语句。3. 掌握更新操作的各种格式。二、实验内容和主要步骤1. 应用INSERT,UPDATE,DELETE语句进行更新操作;) 插入如下学生记录(学号:08030,姓名:李莉,年龄:18) 插入如下选课记录(08030,1) 计算机系学生年龄改成20) 数学系所有学生成绩改成0) 把低于总平均成绩的女同学成绩提高5分) 修改2号课程的成绩,若成绩小于75分提高5,成绩大于75时提高) 4(两个语句实现,注意顺序) 删除08030学生信息) 删除SC表中无成绩的记录) 删除张娜的选课记
13、录) 删除数学系所有学生选课记录) 删除不及格的学生选课记录) 查询每一门课程成绩都大于等于80分的学生学号、姓名和性别,把值送往另一个已经存在的基本表STU(SNO,SNAME,SSEX)中) 把所有学生学号和课程号连接追加到新表中) 所有学生年龄增1) 统计3门以上课程不及格的学生把相应的学生姓名、系别追加到另外一个表中2.熟练掌握INSERT,UPDATE,DELETE语句并能综合应用;三、实验要求:1、将上述任务中完整的SQL语句调试并使之运行正确;2、写出实验报告(在实验系统完成)实验六 高级SQL编程一、实验目的1、熟悉SQL Server 2008的高级编程语法和存储过程的编写二
14、、实验内容1、 建立一张学生表,属性有学号、姓名、年龄三个字段。2、 建立一个存储过程,实现学生的全查询3、 分别用IN 和OUT实现姓名的调用4、 声明一个变量,把变量加1,再把变量加入到学生表的学号字段中。5、 建立一个存储过程,外部调用这个存储过程,当外部传入的值是0时,则在学生表中插入一个学号是17的学生,如果是1时,则在学生表中插入一个学号是18的学生,如果都不是,则在学生表中插入一个学号是19的学生.6、 建立一个存储过程,做一个循环语句,循环插入5个学生。(至少用三种循环的存储过程方法)三、实验要求1. 独立完成SQL Server 2008数据库常用操作2. 把操作过程关键页面
15、截图保存,写出实验报告(在实验系统上完成)实验七 综合应用一、实验目的:1. 全面认识信息系统的设计与开发技术。2. 掌握数据库开发的一般步骤。3. 掌握概念结构设计的一般方法。4. 掌握逻辑结构设计方法。5. 通过在具体DBMS中实现所分析的功能体会数据库设计的一般过程。6. 了解组织应用程序的方法和特点。二、实验内容和主要步骤:1. 以下题目自选一题:a) 图书管理信息系统设计(图书、管理员、读者)b) 中小企业管理信息系统设计(雇员、部门、产品、客户);c) 学生选课管理信息系统设计(学生、课程、选课管理);d) 自选题(须先经认可)2. 根据数据库设计步骤进行需求分析,充分了解系统所要
16、实现的主要功能。3. 画出系统的功能模块图和数据流图,生成数据字典。4. 根据分析设计出总体概念结构即ER图。5. 把ER图转化成相应的关系模式,考虑规范化理论的应用,确定系统中的基本表结构及用户视图。6. 根据分析在SQL Server 2008中建立数据库和基本表结构。7. 根据分析设计相应的完整性约束条件(主码和外码以及用户定义的完整性)。8. 据需要建立相应的查询和窗体。9. 过宏或者命令按钮连接窗体和查询。10. 立特殊的控制窗体切换面板管理器,实现对应用程序的组织。11. 美化界面,修改不足,设置启动窗体,隐藏数据库窗口。12. 设置数据库安全性。三、实验要求:1、 将上述任务中设计的功能模块图和数据流图,ER图,关系模式和完整性约束写在实验报告上;2、 写出实验报告(在实验系统完成)注意:1、规范化理论的应用;1NF、2NF、3NF .2、实体、实体间的联系,ER模型;3、数据库的完整性;4、插入异常、修改异常、删除异常、数据冗余。