贵州大学实验报告

学院:计算机科学与信息学院 专业:信息安全 班级:

姓名

学号

实验组

实验时间

指导教师

成绩

实验项目名称

数据库的简单查询和连接查询

实验目的

使学生掌握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

展开阅读全文

求数学系或计算机系姓张的学生的信息,实验二数据库的简单查询和连接查询.docx...相关推荐

  1. 求数学系或计算机系姓张的学生的信息,数据库原理实验三 - 图文

    实验三.数据库的简单查询和连接查询实验 班级: 学号: 姓名: 日期:12月18日 1. 实验目的 了解SQL Server 查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句 ...

  2. 求数学系或计算机系姓张的学生的信息,数据库实验三

    数据库上机实验三 计算机与信息学院实验报告 系: 专业: 年级: 姓名: 学号: 22 实验室号 计算机号 22 实验时间: 2013年10月29日 指导教师签字: 成绩: 报告退发 (订正 . 重做 ...

  3. 求数学系或计算机系姓张的学生的信息,西安财经学院信息学院实验报告实验四郑莹莹1005230303.pdf...

    西安财经学院信息学院实验报告实验四郑莹莹1005230303.pdf 西安财经学院 姓名 郑莹莹 西安财经学院 西西安安财财经经学学院院信息学院 1005230303 1005230303 学号 11 ...

  4. 数据库 查询计算机系姓王,数据库实验3简单查询和连接查询

    实验2数据库简单查询 一.实验目的 1.掌握SQL查询语句的基本语法与用法.熟练掌握简单表的数据查询 2.掌握数据库表的各种连接查询,包括内连接和外连接查询 二.实验内容 (一)数据库和表及表中的数据 ...

  5. java 找出姓“张”的学生,将他们的信息写入第二个文件

    一.需求 编写一个Java源程序,其中包含: 编写一个包含主方法main的公共类(访问权限为public的类),主方法main中完成的任务是: (1)从键盘上输入两个文件的路径名及其文件名. (2)从 ...

  6. sql查询计算机系学生的学号和姓名,实验5数据库的简单查询操作答案.docx

    (6) 从学生信息表中查询计算机系年龄小于 (6) 从学生信息表中查询计算机系年龄小于 20 的学生的信息 SQL 代码如下: (2) (2) 从学生信息表中查询所有学生的姓名和学号信息并分别 实验 ...

  7. mysql求表中年龄同张三,mysql子查询与连接查询

    表结构以及数据: CREATE TABLE`student` ( `id`int(11) NOT NULLAUTO_INCREMENT, `name`varchar(255) CHARACTER SE ...

  8. 中查出所有姓张的学生为啥查不出来_只有笔试成绩没有面试成绩是什么原因 教师资格面试成绩怎么查...

    [闽南网] 对于很多同学来说,今晚是个不眠夜.就在几个小时前,教师资格证面试成绩查询入口开通了,相比之前发布的消息,成绩公布提前了很多.参加了这次教师资格证考试的同学,一得到消息就忙着查成绩,毕竟面试 ...

  9. 《学生考勤信息管理系统》数据库课程设计

    目录 一.  需求分析 前台功能模块 后台功能模块 1.1 功能模块的划分及介绍 1.2 实体及重要属性 1.3 业务流程图 二. 概念结构设计 2.1. E-R图的设计 三 .逻辑结构设计 表设计 ...

最新文章

  1. OnItemCommand属性使用方法
  2. 解决由于没有办理权限导致的403,权限不足
  3. CentOS系统VMware克隆后 重新设置成eth0
  4. 设计模式学习笔记1——类与类之间的关系
  5. Android 系统(66)---Android硬件加速相关问题总结
  6. 虚拟机安装日志服务器,rsyslog日志服务器搭建
  7. Docker最佳实践:构建最小镜像
  8. 148. php in_array()
  9. WSS3 Elevation of Privilege 替代 用户身份模拟Impersonate 进行权限提升
  10. 宋浩 概率统计 笔记_《深入浅出统计学》-读书笔记-排列与组合
  11. 左倾红黑树(Left-Leaning Red-Black Trees:LLRBT)解析
  12. dht11 java_树莓派使用DHT11温湿度传感器
  13. python爬虫(十三)selenium(Selenium入门、chromedriver、Phantomjs)
  14. 正大国际期货:为什么外盘期货顺势交易这么难
  15. 【arduino 问题记录】 psram: PSRAM ID read error: 0xffffffff
  16. 一起作业网 肖盾:如何打动投资人,说服老师,造福学生
  17. Krpano(虚拟漫游)
  18. Photoshop脚本 蒙尘与划痕滤镜的使用
  19. 大数据分析:结合 Hadoop或 Elastic MapReduce使用 Hunk
  20. 使用Python画动态图像

热门文章

  1. 面试题:高频前端面试题之CSS篇
  2. Centos7 配置静态 IP 地址
  3. iOS 连接外设的几种方式
  4. JVM设置Young Gen大小
  5. 分子模拟对接教程—带你从 0 到 1
  6. 个人永久性免费-Excel催化剂功能第96波-地图数据挖宝之全国天气查询(区域最细可到区县,最长预报4天)...
  7. 计算机网络故障的检测与排除,计算机网络故障诊断与排除(第3版)
  8. 腾讯市值1个月蒸发1700亿美元;微软发布Windows 11 首个Beta版本; 恶意程序开发者转向新兴编程语言 | 架构视点...
  9. 1北方更冷的城镇,是你想要的吗?
  10. 计算机里的小游戏在哪,windows10游戏在哪里_win10电脑自带的游戏在哪里