数据库实验 实验三 数据查询
注:此内容仅仅只是记录成长与分享学习,不能保证绝对正确
实验三 数据查询
实验日期:2022 年4 月 10 日 星期天 实验地点:宿舍
一 实验目的
1. 熟练掌握SQL的SELECT简单查询语句。
2. 熟练使用SQL语句进行多表连接查询、嵌套查询、集合查询等复杂查询。
二 实验要求
1. 请大家务必动手完成实验,实验过程中,会随机抽查提问,作为实验成绩重要参考。
2. 请将数据库studb的两个基本文件自行保留,下次实验在此基础上进行。
3. 请在本实验报告指定方框认真填写对应的实验代码或实验结果。
三 实验内容
1. 通过执行SQL的SELECT语句,对数据表S进行投影、选择等单表简单查询。
2. 通过执行SQL语句,对数据表S、C、SC中的数据进行多表连接查询。
3. 通过执行SQL语句,对数据表S、C、SC中的数据进行集合查询。
4. 通过执行SQL语句,对数据表S、C、SC中的数据进行嵌套查询。
四 实验步骤
附加前述数据库,按下述要求完成实验:
1. 投影查询
1)在S表中查询计算机系学生的学号和姓名。
SQL命令为:
SELECT SNO,SNAME FROM S; |
2)在S表中查询学生的学号、年龄和出生年份(当前年份减去年龄),要求查询结果的列名显示为“学号”,“年龄”,“出生年份”。
SQL命令为:
SELECT SNO AS 学号,AGE AS 年龄,2022-AGE AS 出生年份 FROM S; |
2. 选择查询
1)在S表中查询计算机系年龄小于20岁的学生信息。
SQL命令为:
SELECT * FROM S WHERE DNAME LIKE '计算机' AND AGE<20; |
2)利用字符串匹配进行模糊查询,在S表中找出其姓名中含有某个指定字的学生信息。
SQL命令为:
SELECT * FROM S WHERE SNAME LIKE '%X%' ; |
3. 多表连接查询
1)查询所有学生信息以及他们选修课程的课程号和得分(S表与SC表连接查询)。
SQL命令为:
SELECT S.SNO,SNAME,AGE,GENDER,DNAME,CNO,SCORE FROM S,SC WHERE S.SNO=SC.SNO; |
2)通过取别名将C表与其自身进行连接查询,查询每一门课程的间接先选课,查询结果的第一列为课程号,第二列为间接先选课的课程号,比如课程C4的先选课为C2,C2的先选课为C1,所以C4的间接先选课为C1。
SQL命令为:
SELECT first.CNO,second.PRE_CNO FROM C first ,C second WHERE first.PRE_CNO=second.CNO |
4. 集合查询 运用UNION运算符查询选修了课程C2或C4的学生的学号和姓名。
SQL命令为:
SELECT SC.SNO,S.SNAME FROM SC,S WHERE SC.SNO=S.SNO AND CNO='C2' GROUP BY CNO UNION SELECT SC.SNO,S.SNAME FROM SC,S WHERE SC.SNO=S.SNO AND CNO='C4' GROUP BY CNO |
5. 嵌套查询
1)使用运算符IN查询选修了“数据结构”课程(或其他课程)的学生的学号和姓名,完善并执行下列SQL语句。
SELECT SNO,SNAME FROM S
WHERE SNO IN
( SELECT SNO FROM SC
WHERE CNO IN
( SELECT CNO FROM C
WHERE CNAME='数据结构'
)
);
2)使用存在量词EXISTS查询选修了C2课程的学生的姓名,完善并执行下列SQL语句。
SELECT SNAME
FROM S
WHERE EXISTS
(
SELECT *
FROM SC
WHERE SC.SNO=S.SNO AND CNO='C2'
)
3)检索选修了所有课程的学生学号和姓名,完善并执行下列SQL语句(可通俗理解为:查询这样的学生,不存在(NOT EXISTS)这样的课程,该学生没选(NOT EXISTS))。
SELECT SNO,SNAME FROM S
WHERE NOT EXISTS
(
SELECT * FROM C
WHERE NOT EXISTS
(
SELECT * FROM SC
WHERE SC.SNO=S.SNO ANDSC.CNO=C.CNO
)
);
五 自选动作
请在下框填写除了上述实验内容之外自选的实验内容:
使用内联函数求学生总人数,总分,最高最低分,平均分等等 SELECT COUNT(*)人数 FROM S SELECT SUM(SCORE)总分,MAX(SCORE)最高分,MIN(SCORE)最低分,AVG(SCORE)及格 FROM SC SELECT SNO,AVG(SCORE)及格 FROM SC group by SNO having AVG(SCORE)>=60 |
六 实验总结
一开始实验的时候不知道切换数据库,导致一直显示的都是无效列名和无效对象名,上网查阅了资料才知道,打开SQL默认的是系统数据库master,所以一直都显示无效,后来在“新建查询”下面的可用数据库里把其改为“studb”后才行的。之后的实验基本都还顺畅,没什么大困难。 |
数据库实验 实验三 数据查询相关推荐
- 《数据库原理》实验六 SQL数据查询实验
本系列传送门: 实验二 SQL Server SSMS工具创建和管理数据库及数据表 实验三 SQL Server SSMS工具添加数据 实验四 SQL的数据定义语句 实验五 数据库完整性约束的实现与验 ...
- 数据库原理与应用实验指导书 实验四:数据查询
数据库原理与应用 实验指导书 实验四:数据查询 一.实验目的 掌握SELECT语句的基本语法: 熟练掌握模糊查询的用法: 熟练掌握连接查询的用法: 熟练掌握子查询的用法. 二.实验内容 表数据的查询 ...
- mysql实验训练2 数据查询操作_实验训练2:数据查询操作.doc
实验训练2:数据查询操作.doc 实验训练2数据查询操作请到电脑端查看实验目的基于实验1创建的汽车用品网上商城数据库Shopping,理解MySQL运算符.函数.谓词,练习Select语句的操作方法. ...
- 数据库SQL语言学习--数据查询(持续更新中)
数据库SQL语言学习--数据查询(持续更新中) 上机练习1 1. 启动SQL Server 2008中的 SQL Server Management Studio. 2. ...
- 【高级数据库】第三章 查询执行
[高级数据库]第三章 查询执行 第二章主要讲解如何在文件上添加索引来提高操作效率.第三章和第四章将主要讲解查询的实现细节. 第01讲 查询计划 1.查询编译预览 查询编译执行可分为三个步骤: ...
- MySQL数据库C接口的数据查询操作示例
MySQL数据库C接口的数据查询操作示例 命令行操作 (1)建库建表(已有则不用) 连接MySQL服务器,并登录之.选择某个数据库.假设用户在这个数据库下已有一个表了. (2)查询所有数据的方法 SE ...
- 数据库实验三 数据查询一
第1关:按条件查询单表的所有字段 任务描述 本关任务:按条件查询数据表的所有字段 为了完成本关任务,你需要掌握: 如何查询数据表的所有字段 相关知识 查询数据表 命令格式: select * from ...
- 数据库实验二之数据查询
实验二 数据查询 一.实验目的 1.理解数据库中数据的其他查询方法和应用: 2.学会各种查询要求的实现: 3.学会各种查询的异同及相互之间的转换方法. 二. 实验内容 在实验1的基础上,练习其它查询语 ...
- 合肥工业大学—SQL Server数据库实验七:数据查询
数据查询 1. 单表查询 2. 多表连接查询 1. 单表查询 1. 查询全体学生的信息: -- 查询全体学生的信息 select * from student 2. 根据专业编号(21)查询学生的学号 ...
- mysql实验训练2 数据查询操作_实验训练2:数据查询操作
<实验训练2:数据查询操作>由会员分享,可在线阅读,更多相关<实验训练2:数据查询操作(6页珍藏版)>请在人人文库网上搜索. 1.实验训练2:数据查询操作请到电脑端查看实验目的 ...
最新文章
- htc820+android+l,首款高通64位八核 HTC Desire 820评测
- java椭圆写字距离_保持轨道椭圆的距离
- c++学习笔记(3)
- 顺序查找(c/c++)
- 信息熵和交叉熵的细节理解
- [html] 你有使用过html5的rt标签吗?它有什么应用场景?
- 怎样用计算机算屋面的坡度,屋顶坡度要怎么算,一般是多少?
- java如何快速抛出异常,异常 - 如何抛出异常 - 《Java 编程要点(Essential Java)》 - 书栈网 · BookStack...
- EMC之对象参考1 -- 对象基本知识
- ATM机为什么不能存100张?
- linux如何打开url,用于打开URL的命令?
- python程序停止运行、重新开始_求教,程序执行到末尾如何重新开始的问题。
- 对抗生成网络(Generative Adversarial Network, GAN)
- python网络编程(进程与多线程)
- 最适合数据分析师的数据库为什么不是MySQL?
- OPPO R9s成为情侣最喜欢礼物,今年情人节就送它了!
- 天王表的网络营销战略
- 惊艳爆了,这是我见过的最美Redis客户端
- 凑个热闹,分析下Padavan的代码,一
- Android 动画基础知识学习(下)