学院:计信学院 专业:网络工程 班级:101
姓名 实验时间 实验项目名称 实验目的 实验要 04.17 学号 指导教师 罗昊 实验组 成绩 数据库的简单查询和连接查询 使学生掌握SQL Server 查询分析器的使用方法,加深对SQL语言的查询语句的理解。熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。 本实验属于验证型实验,通过实验,加强对课堂讲授知识的理解。开始实验前,必须进行预习,写出实现所有查询要求的SQL语句。实验过程中,先集中由老师进行具体要求和注意事项的讲解,然后各自独立在机器上完成实验。实验过程中出现问题,在求 实验指导老师帮助下解决。 1、将查询需求用SQL语言表示。 2、在SQL Server查询分析器的输入区中输入SQL查询语句。 3、设置查询分析器结果区为Standard Execute(标准执行)或Execute to Grid方式。 4、发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。 5、查询分析器及使用方法 实 查询分析器是在数据库应用系统时使用的工具。查询分析器的主要作用是编辑SQL验将其发送到服务器,并将执行结果及分析显示出来。查询分析功能主要通过测试查询成原本,判断查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。 理 在查询分析器中的左边窗口是对象浏览器,其中按树结构列出了数据库对象;右上方是SQL代码区域,用于输入SQL的查询语句;右下方为结果区,用于显示查询结果和分析结果。对于SQL语句的执行结果,在结果区中可以有4中不同的输出形式;标准执行将结果直接显示在结果区;网格执行将结果以表格形式显示在结果区;计划执行显示执行计划;索引分析为在结果区中显示查询的索引情况。上述输出形式,可以通过菜单或按钮选择。 实验仪器 (1)硬件条件:个人计算机。 (2)软件条件:Windows 2000NT Server; MS SQL Server 2000。 1、基本操作实验 (1)简单查询实验 1)用SQl语句表示下列操作,在学生选课库中实现其数据查询操作。 ①求数学系学生的学号和姓名。 ②求选修了课程的学生学号。 ③求选修C1课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。 ④求选修课程C1且成绩在80~90分之间的学生学号和成绩,并将成绩乘以系数0.8输出。 ⑤求数学系或计算机系姓张的学生的信息。 ⑥求缺少了成绩的学生的学号和课程号。 实 2)在图书读者库中实现其查询操作:将计算机类的书存入永久的计算机图书表中,验将借书日期在2000年以前的借阅记录存入临时的超期借阅表。 步 (2)连接查询实验 骤 用SQL语句表示,并在学生选课库中实现下列数据连接查询操作: ①查询每个学生的情况以及他所选修的课程。 ②求学生的学号、姓名、选修的课程名及成绩。 ③求选修C1课程且成绩为90分以上的学生学号、姓名及成绩。 ④查询每一门课的间接先行课(即先行课的先行课)。 2、提高操作实验 (1)按如下表的格式,建立职工部门库和职工表、部门表,并向表中输入数据。 职工表(ZG) 职工号(zgh) 姓名(xm) 性别(xb) 年龄(nl) 所在部门(bmh) 李勇 刘晨 王敏 张立 男 女 女 男 1010 1011 1012 1014 20 19 22 21 部门表(BM) 11 12 13 部门号(bmh) 部门名称(bmmc) 生产科 计划科 一车间 科研所 电话(dh) 11 12 13 14 566 578 467 (2)用SQL语句表示职工和部门之间的内连接、左外部连接和右外部连接,在职工部门库中实现其数据内连接和各种外查询操作。 1、简单查询操作 实验内该实验包括投影、选择条件表达式、数据排序、使用临时表等。 2、连接查询操作 该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左容 连接、右连接和自连接等。 首先简历学生管理系统库 其次建立学生信息、课程、成绩三个表,列内容如下图所示 实验数据 其次输入数据 (1)简单查询实验 1)用SQl语句表示下列操作,在学生选课库中实现其数据查询操作。 ①求数学系学生的学号和姓名。 新建查询。 在右边弹出窗口处输出SQL语句。 输入语句: select 姓名 from 学生信息 where 院系='数学' ②求选修了课程的学生学号。 select distinct 学号 from 成绩 ③求选修C1课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。 select 学号,成绩 from 成绩 where 课程号='3' order by 成绩 desc,学号 asc; ④求选修课程C1且成绩在80~90分之间的学生学号和成绩,并将成绩乘以系数0.8输出。 select distinct 学号,成绩*0.8 from 成绩 where 课程号='3' and 成绩 between 80 and 90; ⑤求数学系或计算机系姓张的学生的信息。 select * from 学生信息 where 院系 in('数学','计算机') and 姓名 like '张%' ⑥求缺少了成绩的学生的学号和课程号。 select 学号,成绩 from 成绩 where 成绩 is null (2)连接查询实验 用SQL语句表示,并在学生选课库中实现下列数据连接查询操作: ①查询每个学生的情况以及他所选修的课程。 select 学生信息.*,成绩.* from 学生信息,成绩 where 学生信息.学号=成绩.学号 ②求学生的学号、姓名、选修的课程名及成绩。 select 学生信息.学号,姓名,课程名,成绩 from 学生信息,成绩,课程 where 学生信息.学号=成绩.学号 and 成绩.课程号=课程.课程号 ③求选修C1课程且成绩为90分以上的学生学号、姓名及成绩。 select distinct 学生信息.学号,姓名,成绩 from 学生信息,成绩 where 学生信息.学号=成绩.学号 and 课程号='3' and 成绩>=90 ④查询每一门课的间接先行课(即先行课的先行课)。 select x.课程名 课程名,y.课程名 先行课, z.课程名 先行课的先行课 from 课程 x,课程 y,课程 z where x.先行课=y.课程号 and y.先行课=z.课程号 2、提高操作实验 (1)按如下表的格式,建立职工部门库和职工表、部门表,并向表中输入数据。 (2)用SQL语句表示职工和部门之间的内连接、左外部连接和右外部连接,在职工部门库中实现其数据内连接和各种外查询操作。 内链接 select 部门表.*,职工表.* from 部门表,职工表 where 部门表.部门号=职工表.所在部门 左、右外部链接 select 职工表.*,部门名称,电话 from 职工表,部门表 where 职工表.所在部门=部门表.部门号 实验总结 基本达到实验要求,对数据库查询与录入的操作有所提高,掌握与了解一些SQL常用语句,对今后的学习奠定一定的基础。 指导教师意见 签名: 年 月 日 注:各学院可根据教学需要对以上栏目进行增减。表格内容可根据内容扩充。
因篇幅问题不能全部显示,请点此查看更多更全内容