数据库第二次实验

2023-05-16

<实验要求>

  1. 每次实验前学生必须根据实验内容认真准备。
  2. 在指导教师的帮助下能够完成实验内容。
  3. 实验结束后总结实验内容、书写实验报告。
  4. 遵守实验室规章制度、不缺席。
  5. 实验学时内必须做数据库的有关内容,不允许上网聊天或玩游戏。

<实验报告的书写要求>

  1. 明确实验的目的及要求;
  2. 记录实验的输入数据和输出结果;
  3. 说明实验中出现的问题和解决过程;
  4. 写出实验的体会和实验过程中没能解决的问题;

实验 2 数据查询

(单表查询、连接查询、嵌套查询、集合查询)

一.实验目的

理解 SELECT 语句的操作和基本使用方法,掌握简单查询;理解 JOIN 语句的操作和基本使用方法,掌握内连接、外连接、表的自身连接的概念和使用;掌握 SELECT 语句的嵌套查询语法,实现表的复杂查询,进一步理解 SELECT 语句的高级使用方法;了解集合查询的使用方法。二.实验要求

  1. 掌握 SQL 语言中常用查询语句的功能和使用方法
  2. 掌握 SQL 语言中分组查询命令的功能及其使用方法
  3. 掌握 SQL 语言中连接查询命令的功能及其使用方法
  4. 掌握 SQL 语言中子查询命令的功能及其使用方法
  5. 掌握查询命令中的函数的使用方法
  6. 了解集合查询的使用方法 三.设计的内容或知识点

SELECT [ ALL | DISTINCT [ ( expression [, ...] ) ] ]

* | expression [ AS output_name ] [, ...]

[ FROM from_item [, ...] ]

[ WHERE condition ]

[ GROUP BY expression [, ...] ]

[ HAVING condition [, ...] ]

[ { UNION | INTERSECT | EXCEPT } [ ALL ] select ]

[ ORDER BY expression [ ASC | DESC | USING operator ] [, ...] ] 四、实验环境

一种情况:普通 PC 机,装有 Oracle 的客户端,通过客户端配置和移植工具中的 net manager 配置远程数据库服务器,实现连接。

另一种情况:下载简单的客户端配置程序,配置 tnsnames 文件,通过 toad 或 pl/sql developer 开发工具连接远程数据库服务器,实现连接。

本实验环境现在选用第一种情况进行实验。

五、实验步骤

  1. 分组查询命令的使用
    1. 不带条件的分组查询:每组只返回一条记录。

­­计算每门课程的总分

select cno,sum(grade)

from sc group by cno

 

 

 

 

 

­­查每个院系每个性别的学生数。

select sdept,ssex,count(*) from student group by sdept,ssex;

 

    1. 带条件的分组查询

­­成绩平均分超过 85 的课程,并按平均分升序排列。

select cno, avg(grade) from sc group by cno having avg(grade)>85 order by avg(grade) asc;

 

  1. 连接查询命令的使用
    1. 无条件连接,即笛卡尔积(没有意义)

select student.*,sc.* from student, sc;

 

 

 

 

 

    1. 等值连接 :参与连接的表在公共列上有相同值 。 ­­查看成绩高于 85 分的学生信息及成绩情况

select student.*,sc.* from student, sc

where student.sno=sc.sno and grade >85;

 

 

 

 

 

内连接实现查询要求:

select student.*,sc.* from student inner join sc on student.sno=sc.sno where grade >85;

 

 

 

    1. 外连接:可避免连接时丢失信息(等值连接只显示连接条件成立的信息,不能显示没有选课的学生信息,有些时候个别学生确实没有选修课程,但也希望看到该学生信息,这时需要用到外连接查询)可以使用两种方式实现外连接:

select student.*,cno,grade from student,sc where student.sno=sc.sno(+);

­­外连接

select student.*,cno,grade from student left outer join sc on student.sno=sc.sno (4)表的自身连接:一个表与其自己进行连接,需要给表起别名以示区别;由于所有属性名都是同名属性,因此必须使用别名前缀。

 

­­查询每一门课的间接先修课(即先修课的先修课)

select first.cno,second.cpno from course first, course second

where first.cpno=second.cno;

 

  1. 子查询(嵌套查询)命令的使用
    1. 单行值子查询:子查询返回一条纪录

­­查询与“2008001”在同一个院系学习的学生信息

select * from student where sdept =( select sdept from student

where sno= ‘1111’

)

 

    1. 多行值子查询:子查询返回一组纪录

­­­­查询平均成绩高于或等于' 1'号课程最高成绩的学生情况 。

select * from student where sno in

(

select sno from sc group by sno

having avg(grade)>=(select max(grade) from sc where cno= '1 ')

 

­­查询其他学院中比计算机学院某一学生年龄小的学生姓名和年龄

select sname,sage from student where sage<any ( select sage from student

where sdept=’IS’

)

and sdept<>’IS’;

 

­­可以用聚集函数实现上述查询要求

select sname,sage from student where sage<=( select max(sage) from student

where sdept= ' 计算机学院'

)

and sdept<>'计算机学院 ';

 

  1. 查询命令中函数的使用

­­将所有学生的名字用大小写形式显示

select sname, upper(sname),initcap(sname) from student;

 

­­显示当前日期,dual 是系统提供的一张空表

select sysdate from dual;

 

­­上述日期格式显示为日­月­年格式,不符合中文日期规范,因此可以使用转换函数转换为好看的格式

select to_char(sysdate, 'yyyy­mm­dd hh24:mi:ss') from dual;

 

­­根据输入值将学生信息排序:若输入 1,则按 sname 排序;若输入 2,则按年龄排序;缺省时,按 sname 排序。

select * from student

order by decode(&ob,1, sname, 2, sage, sname);

 

5、集合查询的使用

­­查询计算机学院的学生及年龄不大于 19 岁的学生

select * from student

where sdept= '计算机学院' union select * from student where sage<=19;

 

­­查询计算机科学系的学生与年龄不大于 19 岁的学生的交集

select * from student

where sdept= '计算机学院' intersect select * from student where sage<=19;

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库第二次实验 的相关文章

  • 数据结构实验之数组二:稀疏矩阵

    数据结构实验之数组二 xff1a 稀疏矩阵 Time Limit 5 ms Memory Limit 1000 KiB Submit Statistic Discuss Problem Description 对于一个n n的稀疏矩阵M 1
  • 数据结构实验之二叉树五:层序遍历

    数据结构实验之二叉树五 xff1a 层序遍历 Statistic Problem Description 已知一个按先序输入的字符序列 xff0c 如abd eg cf 其中 表示空结点 请建立二叉树并求二叉树的层次遍历序列 Input 输
  • 数据结构实验之链表四:有序链表的归并

    数据结构实验之链表四 xff1a 有序链表的归并 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 分别输入两个有序的整数序列 xf
  • 数据结构实验之二叉树五:层序遍历

    数据结构实验之二叉树五 xff1a 层序遍历 Time Limit 1000 ms Memory Limit 65536 KiB 其实层序遍历就是一个递归存储的过程 Submit Statistic Problem Description
  • 数据结构实验之二叉树二:遍历二叉树

    数据结构实验之二叉树二 xff1a 遍历二叉树 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 已知二叉树的一个按先序遍历输入的字
  • 数据结构实验之求二叉树后序遍历和层次遍历

    数据结构实验之求二叉树后序遍历和层次遍历 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 已知一棵二叉树的前序遍历和中序遍历 xf
  • 数据结构实验之二叉树一:树的同构

    数据结构实验之二叉树一 xff1a 树的同构 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 给定两棵树T1和T2 如果T1可以通
  • 数据结构实验之二叉树八:(中序后序)求二叉树的深度

    数据结构实验之二叉树八 xff1a xff08 中序后序 xff09 求二叉树的深度 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Descriptio
  • 求二叉树的先序遍历

    求二叉树的先序遍历 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 已知一棵二叉树的中序遍历和后序遍历 xff0c 求二叉树的先序
  • 数据结构上机测试4.1:二叉树的遍历与应用1

    数据结构上机测试4 1 二叉树的遍历与应用1 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 输入二叉树的先序遍历序列和中序遍历序
  • 2、STM32点亮LED灯

    STM32寄存器和库函数点灯 一 寄存器操作1 新建工程 xff0c 新建一个目录存放以后所有的工程stmproject xff0c 在这个目录下新建文件夹寄存器点灯 xff0c 文件名为LED 2 新建文件main c并双击source
  • 数据结构实验之二叉树七:叶子问题

    数据结构实验之二叉树七 xff1a 叶子问题 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 已知一个按先序输入的字符序列 xff
  • 数据结构实验之二叉树的建立与遍历

    数据结构实验之二叉树的建立与遍历 二叉树的基本操作 xff0c 中序遍历 xff0c 后序遍历 xff0c 前序遍历 xff0c 只是根节点输出的位置不同 xff0c 叶子结点 xff0c 深度 xff0c 需要自己理解 xff0c 也非常
  • 哈夫曼树

    什么是哈夫曼树 xff1f 让我们先举一个例子 判定树 xff1a 在很多问题的处理过程中 xff0c 需要进行大量的条件判断 xff0c 这些判断结构的设计直接影响着程序的执行效率 例如 xff0c 编制一个程序 xff0c 将百分制转换
  • 哈夫曼树的概念及其实现

    1 基本概念 a 路径和路径长度 若在一棵树中存在着一个结点序列 k1 xff0c k2 xff0c xff0c kj xff0c 使得 ki是ki 43 1 的双亲 xff08 1 lt 61 i lt j xff09 xff0c 则称此
  • 二叉排序树详解

    二叉排序树的介绍 二叉排序树为一颗二叉树 xff0c 或者为空 xff0c 或者满足如下条件 xff1a 如果它的左子树不为空 xff0c 那么左子树上的所有结点的值均小于它的根结点的值如果它的右子树不为空 xff0c 那么右子树上的左右结
  • 数据结构实验之队列一:排队买饭

    数据结构实验之队列一 排队买饭 这个题猛的一看可能会有点麻烦 xff0c 但是其实一点也不 xff0c 只要把每个情况用if条件语句分清就可以了 有一点栈的思想 Problem Description 中午买饭的人特多 食堂真是太拥挤了 买
  • bLue的文件查找器

    bLue的文件查找器 用结构体数组按顺序存储 xff0c 每次查找的时候只是判断最后的文件格式ex Problem Description bLue 的电脑里存了各种各样的文件 xff0c 随着文件越来越多 xff0c 查找文件也成了一个麻
  • 图的基本存储的基本方式二

    小编在网上看到好多博主的文章这道题都没有用结构体做 xff0c 数据量太大 xff0c 结构体也是一个不错的选择 但是结构体有一个不好的地方 xff0c 不能直接搜索 xff0c 只能每次从头开始搜索 xff0c 有点浪费时间 Proble
  • 图的基本存储的基本方式一

    这个题主要的是这个 stdbool h 这个函数 xff0c 还有bool这个数组 Problem Description 解决图论问题 xff0c 首先就要思考用什么样的方式存储图 但是小鑫却怎么也弄不明白如何存图才能有利于解决问题 你能

随机推荐

  • 图的基本存储的基本方式四

    一直不知道这个题为什么用链表可以A xff0c 但是结构体就会WA xff0c 如果有童鞋们知道 xff0c 希望能留下想法 xff0c 一起学习 xff0c 一起进步 Problem Description 解决图论问题 xff0c 首先
  • C# 超详细的WebService创建、发布与调用(VS2019)

    1 编写接口 这里我选择的是 ASP NET Web应用程序 NET Framework 填写好项目名称 选择项目位置以及所使用的框架 xff0c 这里我用的是 NET Framework 4 框架 xff0c 然后点击创建 继续点击创建
  • 图的基本存储的基本方式三

    图的基本存储的基本方式三 Problem Description 解决图论问题 xff0c 首先就要思考用什么样的方式存储图 但是小鑫却怎么也弄不明白如何存图才能有利于解决问题 你能帮他解决这个问题么 xff1f Input 多组输入 xf
  • 数据结构实验之栈与队列九:行编辑器

    数据结构实验之栈与队列九 xff1a 行编辑器 Problem Description 一个简单的行编辑程序的功能是 xff1a 接受用户从终端输入的程序或数据 xff0c 并存入用户的数据区 由于用户在终端上进行输入时 xff0c 不能保
  • 顺序表应用2:多余元素删除之建表算法

    顺序表应用2 xff1a 多余元素删除之建表算法 Time Limit 3 ms Memory Limit 600 KiB Submit Statistic Problem Description 一个长度不超过10000数据的顺序表 xf
  • 数据结构实验之链表四:有序链表的归并

    数据结构实验之链表四 xff1a 有序链表的归并 Problem Description 分别输入两个有序的整数序列 xff08 分别包含M和N个数据 xff09 xff0c 建立两个有序的单链表 xff0c 将这两个有序单链表合并成为一个
  • 数据结构实验之链表五:单链表的拆分

    数据结构实验之链表五 xff1a 单链表的拆分 Problem Description 输入N个整数顺序建立一个单链表 xff0c 将该单链表拆分成两个子链表 xff0c 第一个子链表存放了所有的偶数 xff0c 第二个子链表存放了所有的奇
  • 数据结构——二叉树的基本操作(不包括还原)

    小编没有写主函数 xff0c 你们需要用什么函数只需要自己写一个主函数调用一下就可以了 include lt stdio h gt include lt string h gt include lt stdlib h gt typedef
  • 数据结构实验之图论四:迷宫探索

    数据结构实验之图论四 xff1a 迷宫探索 Time Limit 1000 ms Memory Limit 65536 KiB Problem Description 有一个地下迷宫 xff0c 它的通道都是直的 xff0c 而通道所有交叉
  • 数据结构实验之图论七:驴友计划

    数据结构实验之图论七 xff1a 驴友计划 Time Limit 1000MS Memory Limit 65536KB Problem Description 做为一个资深驴友 xff0c 小新有一张珍藏的自驾游线路图 xff0c 图上详
  • 数据结构实验之排序一:一趟快排

    H 数据结构实验之排序一 xff1a 一趟快排 Problem Description 给定N个长整型范围内的整数 xff0c 要求输出以给定数据中第一个数为枢轴进行一趟快速排序之后的结果 Input 连续输入多组数据 xff0c 每组输入
  • 数据结构实验之排序二:交换排序

    include lt stdio h gt int s x void qsort int a int l int h int i 61 l j 61 h k 61 a l while i gt 61 j return while i lt
  • vs当前不会命中断点,还未为文档加载符号

    一般网上的解决办法是 xff1a A 工具 选项 调试 常规中的 要求源文件和原始版本完全匹配 的勾去掉 B 工具 选项 调试 常规中的 启用仅我的代码 的勾去掉 这种是治标不治本 xff0c 有的时候也不起作用 当前不会命中断点 xff0
  • 数据结构实验之排序三:bucket sort

    数据结构实验之排序三 xff1a bucket sort 作为桶排序的典型例题 xff0c 我们完全可以按照桶排序的思想来做这个题 但是本题完全不需要用太多的空间去换时间 xff0c 只需要一个空间为101的一维数组就好 Problem D
  • 数据结构实训——停车场系统

    这个程序是利用栈和循环队列实现的 xff0c 自己得先处理好逻辑关系就好了 由于题目没有要求 xff0c 这个程序就没加重复判断 xff0c 比如一辆车已经停在车位上或者便道上 xff0c 再来一辆就判断不了了 关于栈 xff0c 就是先进
  • 关于在linux下监测内存泄漏的问题

    小伙伴们 xff0c 会不会时常注意自己的程序会不会有内存泄漏的问题 xff1f 分享一个工具 1 安装valgrind 1 xff09 将安装包valgrind 3 8 1 9 el6 i686 rpm拷贝到虚拟中 2 xff09 yum
  • 计算机组成原理第二章测试题

    1 在定点机中执行算术运算时会产生溢出 xff0c 其原因是 C A 运算过程中最高位产生了进位或借位 B 参与运算的操作数超出了机器的表示范围 C 运算结果的操作数超出了机器的表示范围 D 寄存器的位数太少 2 某机器字长32位 xff0
  • MySQL操作语言汇总

    创建表数据 create table 表名 字段名 数据类型 约束条件 xff0c xff1b xff08 其中约束条件可选 xff09 注意 xff1a 1 必须给定表名 xff0c 且不能使用SQL语言中的关键字 2 必须给字段命名 x
  • 数据库第三次实验

    lt 实验要求 gt 每次实验前学生必须根据实验内容认真准备 在指导教师的帮助下能够完成实验内容 实验结束后总结实验内容 书写实验报告 遵守实验室规章制度 不缺席 实验学时内必须做数据库的有关内容 xff0c 不允许上网聊天或玩游戏 lt
  • 数据库第二次实验

    lt 实验要求 gt 每次实验前学生必须根据实验内容认真准备 在指导教师的帮助下能够完成实验内容 实验结束后总结实验内容 书写实验报告 遵守实验室规章制度 不缺席 实验学时内必须做数据库的有关内容 xff0c 不允许上网聊天或玩游戏 lt