数据库系统--T-SQL数据查询功能-多表查询(超详细/设计/实验/作业/练习)
目录
- 课程名:数据库系统
- 内容/作用:设计/实验/作业/练习
- 学习:T-SQL数据查询功能-多表查询
- 一、前言
- 二、环境与设备
- 三、内容
- 四、内容
- 练习题目:
- 对应题目答案:
- 五、总结
课程名:数据库系统
内容/作用:设计/实验/作业/练习
学习:T-SQL数据查询功能-多表查询
一、前言
(1)熟悉使用Select…from语句进行单表数据查询;
(2)能将这些更新操作应用于实际操作中去。
(3)掌握Where语句、order by语句、group by语句、having语句的使用方法
(4)理解多表内连接、外连接的使用
(5)理解嵌套查询的执行过程
(6)掌握多表连接查询和嵌套查询
二、环境与设备
1、设备:Windows 10
2、软件:MySQL 8.0和Navicat 12 for MySQL
三、内容
数据库与表之间的关系:数据库是由各种数据表组成的,数据表是数据库中最重要的对象,用来存储和操作数据的逻辑结构。
SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,是一个综合的、通用的、功能极强的,同时又简洁易学的语言。
select distinct 输出字段名列表
from 表名列表
where 筛选条件 and 连接条件
group by 分组字段
having 分组后的条件
order by 排序字段 asc|desc
limit <偏移量(起始行号),行数>
注意: (1)若输出表中全部字段,则可使用*代替(2)查询结果消除重复值distinct(3)limit语句中的偏移量(起始行号)默认从0开始(4)字段重命名:字段名|表达式 as 新名字(5)聚合函数的使用:count-个数、sum-求和、avg-平均值、max-最大值、min-最小值
常用函数:year()-求年份 now()—返回系统日期时间
四、内容
练习题目:
1、 查询学生选课信息,列出学号、姓名、性别、课程号、课程名、学分、成绩
2、 查询选修了1610课程且成绩及格的学生信息,列出学号、姓名、课程号、课程名、成绩
3、 查询选修的课程名中包含“应用”两字的学生选课信息。列出学号、课程号、课程名、成绩
4、 统计每位学生所选课程及格的课程门数,列出学号、姓名、及格课程门数
5、 统计每个学生所获的总学分,列出学号、姓名、总学分,按总学分降序排列
6、 统计每个学生选课信息,列出学号、姓名、选课门数、最高分、最低分、平均分、总分
7、 查询选课门数最多的学生选课信息,列出其姓名,选课门数
8、 分别统计各年份出生的男生人数和女生人数
9、 查询选修了课程的学生信息,列出学生的学号,姓名,课程号,课程名及成绩
10、 查询未选修课程的学生信息,列出学号,姓名
11、 查询未被选修的课程信息,列出课程号,课程名
12、 查询入学成绩高于平均入学成绩的学生信息,列出学号,姓名及入学成绩
13、 查询年龄最大的学生信息。列出学号,姓名及年龄
14、 查询选课成绩最高的学生信息,列出其学号,姓名、课程号及选课成绩。
对应题目答案:
1、 查询学生选课信息,列出学号、姓名、性别、课程号、课程名、学分、成绩
select *
from student,sc,course
where student.sno=sc.sno and sc.cid=course.cid
2、 查询选修了1610课程且成绩及格的学生信息,列出学号、姓名、课程号、课程名、成绩
select sc.sno,sname,sc.cid,cname,scores
from student,sc,course
where student.sno=sc.sno and sc.cid=1610 and scores>=60
3、 查询选修的课程名中包含“应用”两字的学生选课信息。列出学号、课程号、课程名、成绩
select sc.sno,sc.cid,cname,scores
from student,course,sc
where cname like '%应用%' and student.sno=sc.sno and sc.cid=course.cid
4、 统计每位学生所选课程及格的课程门数,列出学号、姓名、及格课程门数
select student.sno,student.sname,count(scores)
from student,sc
where student.sno=sc.sno and sc.scores>=60
group by sc.sno
5、 统计每个学生所获的总学分,列出学号、姓名、总学分,按总学分降序排列
select sc.sno,student.sname,sum(credit)
from student,sc,course
where student.sno=sc.sno and sc.cid=course.cid
group by sc.sno
order by sum(credit) desc
6、 统计每个
学生选课信息,列出学号、姓名、选课门数、最高分、最低分、平均分、总分
select student.sno,student.sname,count(cid),max(scores),min(scores),avg(scores),sum(scores)
from student,sc
where student.sno=sc.sno
group by student.sno
7、 查询选课门数最多的学生选课信息,列出其姓名,选课门数
select student.sname,count(*)
from student,sc
where student.sno=sc.sno
group by student.sname
order by count(*) desc
limit 0,1
8、 分别统计各年份出生的男生人数和女生人数
select year(birthdate) as 年份,sex,count(*)
from student
group by year(birthdate),sex
order by 1,3 desc
9、查询选修了课程的学生信息,列出学生的学号,姓名,课程号,课程名及成绩
select student.sno,sname,sc.cid,course.cname,scores
from sc,student,course
where student.sno=sc.sno and course.cid=sc.cid
10、 查询未选修课程的学生信息,列出学号,姓名
select sc.sno,sname
from sc right join student on sc.sno=student.sno
where sc.sno is not null
法2:select sno,sname from student where not exists(
select * from sc where sno=student.sno)
11、 查询未被选修的课程信息,列出课程号,课程名
select
from
where
12、 查询入学成绩高于平均入学成绩的学生信息,列出学号,姓名及入学成绩
select
from
where
13、 查询年龄最大的学生信息。列出学号,姓名及年龄
select *,year(now())-year(birthdate)
from student
order by 3 desc
limit 0,2
法2:
select sno,sname,year(now())-year(birthdate)
from student
where year(now())-year(birthdate)=(
select max(year(now())-year(birthdate))
from student)
14、 查询选课成绩最高的学生信息,列出其学号,姓名、课程号及选课成绩。
select *
from sc
where scores>=90
union
select *
from sc
where scores<60create view stuino as
select sno,sname from student
五、总结
好好学习,天天向上。
相关文章:
数据库系统--T-SQL数据查询功能-多表查询(超详细/设计/实验/作业/练习)
目录课程名:数据库系统内容/作用:设计/实验/作业/练习学习:T-SQL数据查询功能-多表查询一、前言二、环境与设备三、内容四、内容练习题目:对应题目答案:五、总结课程名:数据库系统 内容/作用:设…...
Spring Boot 3.0系列【14】核心特性篇之Configuration相关注解汇总介绍
有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.0.3 源码地址:https://gitee.com/pearl-organization/study-spring-boot3 文章目录 前言@Configuration@ConfigurationProperties@EnableConfigurationProperties@ConfigurationPropertiesScan@Configuratio…...
[ubuntu][jetson]给jetson增加swap空间类似于给windows加虚拟内存
具体操作如下: #打开性能模式 sudo nvpmodel -m 0 && sudo jetson_clocks #增加swap空间,防止爆内存 swapoff -a sudo fallocate -l 15G /swapfile sudo chmod 600 /var/swapfile sudo mkswap /swapfile sudo swapon /swapfile…...
小黑子—Java从入门到入土过程:第二章
Java零基础入门2.0Java系列第二章1. 注释和关键字2. 字面量3. 变量3.1 基本用法3.2 使用方式3.3 注意事项4. 变量练习5. 计算机中的数据存储5.1 计算机的存储规则5.2 进制5.3 进制间转换二进制转十八进制转十十六进制转十十进制转其他进制6. 数据类型7. 定义变量的练习8. 标识符…...
ElasticSearch搜索详细讲解与操作
全文检索基础 全文检索流程 流程: #mermaid-svg-7Eg2qFEl06PIEAxZ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-7Eg2qFEl06PIEAxZ .error-icon{fill:#552222;}#mermaid-svg-7Eg2qFEl06PIEAxZ .error…...
web实现太极八卦图、旋转动画、定位、角度、坐标、html、css、JavaScript、animation
文章目录前言1、html部分2、css部分3、JavaScript部分4、微信小程序演示前言 哈哈 1、html部分 <div class"great_ultimate_eight_diagrams_box"><div class"eight_diagrams_box"><div class"eight_diagrams"><div class&…...
【LeetCode】33. 搜索旋转排序数组、1290. 二进制链表转整数
作者:小卢 专栏:《Leetcode》 喜欢的话:世间因为少年的挺身而出,而更加瑰丽。 ——《人民日报》 目录 33. 搜索旋转排序数组 1290. 二进制链表转整数 33. 搜索旋转排序数组 33. 搜索旋转排序…...
IBM Semeru Windows 下的安装 JDK 17
要搞清楚下载那个版本,请参考文章:来聊聊 OpenJDK 和 JVM 虚拟机下载地址semeru 有认证版和非认证版,主要是因为和 OpenJ9 的关系和操作系统的关系而使用不同的许可证罢了,本质代码是一样的。在 Windows 下没有认证版,…...
Lambda表达式和steram流
目录 引言: 语法: Lambda 表达式实例: demo演示: Stream流: 引言: Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。 Lambda 允许把函数作为一个方法的参数(函…...
面试必会-MySQL篇
1. Mysql查询语句的书写顺序Select [distinct ] <字段名称>from 表1 [ <join类型> join 表2 on <join条件> ]where <where条件>group by <字段>having <having条件>order by <排序字段>limit <起始偏移量,行数>2. Mysql查询语…...
Hadoop入门常见面试题与集群时间同步操作
目录 一,常用端口号 Hadoop3.x : Hadoop2.x: 二,常用配置文件: Hadoop3.x: Hadoop2.x: 集群时间同步: 时间服务器配置(必须root用户): (1)…...
JS 数组去重的方法
// 数组去重 const arr ["1", "1", "2", "3", "5", "3", "1", "5", "4"] console.log(this.deduplicate(arr)) // [1, 2, 3, 5, 4] // 数组对象去重 const arr [ { id: 1, nam…...
PMP项目管理项目沟通管理
目录1 项目沟通管理2 规划沟通管理3 管理沟通4 监督沟通1 项目沟通管理 项目沟通管理包括通过开发工件,以及执行用于有效交换信息的各种活动,来确保项目及其相关方的信息需求得以满足的各个过程。项目沟通管理由两个部分组成:第一部分是制定…...
2.JVM常识之 运行时数据区
1.JVM核心组成 2.JVM 运行时数据区(jdk8) 程序计数器:线程私有,当前线程所执行字节码的行号指示器 jvm栈:线程私有,Java 虚拟机栈为 JVM 执行 Java 方法服务 本地方法栈:线程私有,本…...
你的游戏帐号是如何被盗的
据报道,2022上半年,中国游戏市场用户规模达到了5.54亿人,游戏市场销售收入1163.1亿元,相较去年均为同比增长的情况。如此庞大的市场规模,黑色产业链是绕不开的话题。 但相较于游戏中大家常见的玩家与玩家、玩家与官方…...
C++11异步编程
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言1、std::future和std::shared_future1.1 std:future1.2 std::shared_future2、std::async3、std::promise4、std::packaged_task前言 C11提供了异步操作相关的类…...
20230310----重返学习-DOM元素的操作-时间对象-定时器
day-024-twenty-four-20230310-DOM元素的操作-时间对象-定时器 复习 获取元素 id document.getElementById() 类名 document.getElementsByClassName() 标签名 document.getElementsByTagName() name属性 document.getElementsByName() 选择器 document.querySelector()docum…...
江苏专转本转本人后悔排行榜
江苏专转本转本人后悔排行榜 一、复习的太迟: 后悔指数:五颗星。 复习越到最后,时间一天天变少,要复习的内容还有很多,很多人都后悔没有早早开始,总想着多给我两月一定会考上的。 担心时间不够用,那就努力利…...
【算法时间复杂度】学习记录
最近开算法课,开几篇文章记录一下算法的学习过程。 关于算法的重要性 学习计算机当程序员的话,在编程过程中是绕不开算法这个大矿山的,需要我们慢慢挖掘宝藏。 算法(Algorithm)是指用来操作数据、解决程序问题的一组…...
汽车车机芯片Linux系统内核编译问题总结
谈到车机,很多人会想到华为问界上装的大屏车机,号称车机的天花板,基于鸿蒙OS的,而今天谈到的车机芯片用的是linux内核Kernel,对于它的编译,很多人一时会觉得头大,的确如果工具不是很齐全,就会遇到这样那样的问题,但是过程都会有错误提示,按照错误提示基本可以解决,而…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
ubuntu22.04 安装docker 和docker-compose
首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...
高考志愿填报管理系统---开发介绍
高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发,采用现代化的Web技术,为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## 📋 系统概述 ### 🎯 系统定…...
