logo资料库

数据库实验报告——数据库的简单查询和连接查询.doc

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
贵州大学实验报告 学院:电子科学与信息技术 专业: 班级:061 姓名 实验时间 实验项目名 称 学号 指导教师 戴单 实验组 成绩 数据库的简单查询和连接查询 实 掌握 SQL Server 查询分析器的使用方法,加深对 SQL 语言的查询语句的理解。熟练掌 验 握简单表的数据查询、数据排序和数据连接查询的操作方法。进一步掌握涉及一个以上 目 数据表的查询。多表之间的连接包括等值连接、自然连接、非等值连接、自身连接、外 的 连接、复合条件连接。 实 本实验属于验证型实验,通过实验,加强对课堂讲授知识的理解。开始实验前,必须进 验 行预习,写出实现所有查询要求的 SQL 语句。实验过程中,先集中由老师进行具体要求 要 和注意事项的讲解,然后各自独立在机器上完成实验。实验过程中出现问题,在实验指 求 导老师帮助下解决。 1、将查询需求用 SQL 语言表示。 实 验 原 理 2、在 SQL Server 查询分析器的输入区中输入 SQL 查询语句。 3、设置查询分析器结果区为 Standard Execute(标准执行)或 Execute to Grid 方式。 4、发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。 5、查询分析器及使用方法 查询分析器是在开发数据库应用系统时使用最多的工具。查询分析器的主要作用是 编辑 SQL 语句,将其发送到服务器,并将执行结果及分析显示出来(或进行存储)。 查询分析功能主要通过测试查询成本,判断该查询是否需要增加索引以提高查询速 度,并可以实现自动建立索引的功能。 在查询分析器中的左边窗口是对象浏览器,其中按树结构列出了数据库对象;右上 方是 SQL 代码区域,用于输入 SQL 的查询语句;右下方为结果区,用于显示查询结 果和分析结果。对于 SQL 语句的执行结果,在结果区中可以有 4 中不同的输出形式; 标准执行将结果直接显示在结果区;网格执行将结果以表格形式显示在结果区;计
实 验 仪 器 实 验 步 骤 划执行显示执行计划;索引分析为在结果区中显示查询的索引情况。上述输出形式, 可以通过菜单或按钮选择。 硬件条件:个人计算机。 软件条件:Windows XP; MS SQL Server 2000 或 2005。 1、基本操作实验 (1)简单查询实验 1)用 SQl 语句表示下列操作,在学生选课库中实现其数据查询操作。 ①求数学系学生的学号和姓名。 ②求选修了课程的学生学号。 ③求选修 C1 课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成 绩相同则按学号升序排列。 ④求选修课程 C1 且成绩在 80~90 分之间的学生学号和成绩,并将成绩乘以系数 0.8 输出。 ⑤求数学系或计算机系姓张的学生的信息。 ⑥求缺少了成绩的学生的学号和课程号。 2)在图书读者库中实现其查询操作:将计算机类的书存入永久的计算机图书表中, 将借书日期在 2000 年以前的借阅记录存入临时的超期借阅表。 (2)连接查询实验 用 SQL 语句表示,并在学生选课库中实现下列数据连接查询操作: ①查询每个学生的情况以及他所选修的课程。 ②求学生的学号、姓名、选修的课程名及成绩。 ③求选修 C1 课程且成绩为 90 分以上的学生学号、姓名及成绩。 ④查询每一门课的间接先行课(即先行课的先行课)。 2、提高操作实验 (1)按如下表的格式,建立职工部门库和职工表、部门表,并向表中输入数据。
表(ZG) 职 工 号 姓名(xm) 性别(xb) 年龄(nl) 所 在 部 门 (zgh) 1010 1011 1012 1014 李勇 刘晨 王敏 张立 男 女 女 男 20 19 22 21 (bmh) 11 12 13 部门表(BM) 部门号(bmh) 部门名称(bmmc) 电话(dh) 11 12 13 14 生产科 计划科 一车间 科研所 566 578 467 (2)用 SQL 语句表示职工和部门之间的内连接、左外部连接和右外部连接,在职 工部门库中实现其数据内连接和各种外查询操作。 1、简单查询操作 该实验包括投影、选择条件表达式、数据排序、使用临时表等。 2、连接查询操作 该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左 连接、右连接和自连接等。 1、基本操作实验 1 求数学系学生的学号和姓名 select Sno,Sname from Student where Sdept='MA'; 实 验 内 容 实 验 数 据
2 求选修了课程的学生学号 use Student select distinct Sno from SC; ③求选修 C1 课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相 同则按学号升序排列。 select Sno,grade from SC where c#='c1' order by grade desc ,Sno; ④求选修课程 C1 且成绩在 80~90 分之间的学生学号和成绩,并将成绩乘以系数 0.8 输 出。 select Sno,grade*0.8 from SC where c#='c1' and grade between 80 and 90;
5 求数学系或计算机系姓张的学生的信息。 select * from Student where Sdept in ('MA','CS')and Sname like '张%'; 6 求缺少了成绩的学生的学号和课程号。 select Sno,c# from SC where grade is null; 2)在图书读者库中实现其查询操作:将计算机类的书存入永久的计算机图书表中,将 借书日期在 2000 年以前的借阅记录存入临时的超期借阅表。 use lib create table BM (bmh char(10) not null, bmmc char(30) not null, dh char(11), primary key(bmh),); 构建职工表: use lib create table ZG (zgh char(10) not null, xm char(30) not null, xb char(2) not null, nl smallint , bmh char(10) not null, primary key (zgh), foreign key(bmh)references BM(bmh), check (xb in('男','女'))); (2)向BM表中插入数据 use lib insert into BM (bmh,bmmc,dh)
select 11,'生产科',566 union select 12,'计划科',578 union select 13,'一车间',467 union select 14,'科研所',null; (3)向ZG表中插入数据: use lib insert into ZG (zgh,xm,xb,nl,bmh) select 1010,'李勇','nan',20,11 union select 1011,'刘晨','女',19,null union select 1012,'王敏','女',22,12 union select 1014,'张立','男',21,13; (4)内连接: select * from ZG inner join BM on ZG.bmh=Bm.bmh;
(5)左外连接: select * from ZG left join BM on ZG.bmh=Bm.bmh; (6)右外连接: select * from ZG right join BM on ZG.bmh=BM.bmh; (7)自身内连接: select * from ZG A inner join ZG B on A.bmh=B.bmh; (8)自身左外连接: select *
from ZG A left join ZG B on A.bmh=B.bmh; (9)自身右外连接: select * from ZG A right join ZG B on A.bmh=B.bmh; 数据库查询过程中,连接非常重要。连接是 SQL 查询语句的重点和难点,在查询过程中 涉及到两张及以上的表格查询学要使用连接查询或者求笛卡儿积,这其中包括等值连 接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。 不过在实验中,经常不知道是左连接还是右连接,内连接还是外连接经常会出现问题。 这需要我们不断熟悉 SQL 语句,多联系,多用 SQL 语句(特别是连接查询语句)在电脑 上实验,只有这样才能不断了解和熟悉数据库查询语句,这样才能不断发现问题,改正 问题。 实 验 总 结 指 导 教 师
分享到:
收藏