收藏 分销(赏)

实验二数据库简单查询及连接查询.docx

上传人:仙人****88 文档编号:7213861 上传时间:2024-12-28 格式:DOCX 页数:11 大小:175.29KB 下载积分:10 金币
下载 相关 举报
实验二数据库简单查询及连接查询.docx_第1页
第1页 / 共11页
实验二数据库简单查询及连接查询.docx_第2页
第2页 / 共11页


点击查看更多>>
资源描述
贵州大学实验报告 学院:计算机科学与信息学院 专业:信息安全 班级: 姓名 学号 实验组 实验时间 指导教师 成绩 实验项目名称 数据库的简单查询和连接查询 实验目的 使学生掌握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 李勇 男 20 11 1011 刘晨 女 19 1012 王敏 女 22 12 1014 张立 男 21 13 部门表(BM) 部门号(bmh) 部门名称(bmmc) 电话(dh) 11 生产科 566 12 计划科 578 13 一车间 467 14 科研所 (2)用SQL语句表示职工和部门之间的内连接、左外部连接和右外部连接,在职工部门库中实现其数据内连接和各种外查询操作。 实验内容 1、简单查询操作 该实验包括投影、选择条件表达式、数据排序、使用临时表等。 2、连接查询操作 该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。 实验数据 1、基本操作实验 (1)简单查询实验 1)用SQl语句表示下列操作,在学生选课库中实现其数据查询操作。 ①求数学系学生的学号和姓名。 Select Number,Name from Student where Academy=’数学系’ ②求选修了课程的学生学号。 select Number from Student where exists (select * from Selection where Student.Number=Selection.Snumber) 或select distinct Snumber from Selection(更加高效) ③求选修C1课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。 select Snumber,Score from Selection,Course where Cnumber=Number and Name='C1' order by Snumber asc ④求选修课程C1且成绩在80~90分之间的学生学号和成绩,并将成绩乘以系数0.8输出。 select Snumber,Score*0.8 Score from Selection,Course where Cnumber=Number and Name='C1' and Score>80 and Score<90 ⑤求数学系或计算机系姓张的学生的信息。 select * from Student where Name like '张%' and (Academy='数学系' or Academy='计算机系') ⑥求缺少了成绩的学生的学号和课程号。 select Snumber,Cnumber from Selection where Score is null 2)在图书读者库中实现其查询操作:将计算机类的书存入永久的计算机图书表中,将借书日期在2000年以前的借阅记录存入临时的超期借阅表。 insert into CB(Number,Name,Category,Press,Author,Price) select Number,Name,Category,Press,Author,Price from Book where Category='计算机' CREATE TABLE #TB( Bnumber char(20), Rnumber char(20), Bdate date, ID char(10) primary key) go insert into #TB(Bnumber,Rnumber,Bdate,ID) select Bnumber,Rnumber,Bdate,ID from Borrow where Bdate<'2000/01/01' (2)连接查询实验 用SQL语句表示,并在学生选课库中实现下列数据连接查询操作: ①查询每个学生的情况以及他所选修的课程。 select * from Student left join Selection on (Student.Number=Selection.Snumber) ②求学生的学号、姓名、选修的课程名及成绩。 select Student.Name,Student.Number,Course.Name CourseName,Selection.Score from Student,Course,Selection where Student.Number=Snumber and Course.Number=Cnumber ③求选修C1课程且成绩为90分以上的学生学号、姓名及成绩。 select Student.Name,Student.Number,Selection.Score from Student,Course,Selection where Student.Number=Snumber and Course.Number=Cnumber and Course.Name='C1' and score>90 ④查询每一门课的间接先行课(即先行课的先行课)。 select C1.Number,C1.Name,C2.Front Indirect,C3.Name FCName from Course C1,Course C2,Course C3 where C1.Front=C2.Number and C2.Front=C3.Number 2、提高操作实验 (1)按如下表的格式,建立职工部门库和职工表、部门表,并向表中输入数据。 create database ZGBM go use ZGBM create table ZG( zgh char(4) primary key, xm nchar(8), xb nchar(1) check (xb='男' or xb='女'), nl int, bmh char(4) ) create table BM( bmh char(2) primary key, bmmc char(10), dh char(5) ) (2)用SQL语句表示职工和部门之间的内连接、左外部连接和右外部连接,在职工部门库中实现其数据内连接和各种外查询操作。 内连接:select * from ZG,BM where ZG.bmh=BM.bmh 左外部连接:select * from ZG left join BM on (ZG.bmh=bm.bmh) 右外部连接:select * from ZG right join BM on (ZG.bmh=bm.bmh) 思考题 1、写出实现所有查询要求的SQL语句。 答:上述实验数据中已写。 实验总结 实验很简单,只是将书本上的只是进行运用而已,需要注意书上的部分SQL语句和MS SQL Sever中的SQL语句的不同。如left out join(书)和left join(MS SQL Sever)。 指导教师意见 签名: 年 月 日 注:各学院可根据教学需要对以上栏目进行增减。表格内容可根据内容扩充。 11
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服