SQL综合查询-学校教务管理系统数据库

一、一个完整的数据查询语句的格式

SELECT 【ALL|DISTINCT】<目标列表达式>【,<目标列表达式2>,...】

FROM <表名或视图名1>【,<表名或视图名2>,...】

【WHERE <元组选择条件表达式>】

【GROUP BY <属性列名>【HAVING <组选择条件表达式>】】

【ORDER BY <目标列名1>【ASC|DESC】【,<目标列名2>【ASC|DESC】,...】】

二、创建一个数据库实例-学校教务管理系统数据库

create database JWGL;

1、学生表 STUDENT(学号SNO,姓名SNAME,性别GENDER,所在班级号CNO)

create table student(
sNo char(12) primary key,
sName char(6),
gender char(2),
cNo char(3),
check(gender in('男','女'))
);

2、班级表CLASS(班级号CNO,所在院系DEPARTMENT,所属专业SPECIALITY,班长学号MONITOR)

create table class(
  cNo char(3) primary key,
  department char(18),
  speciality char(16),
  monitor char(12)
)

3、课程表LESSION(课程号LNO,课程名LNAME,教材名BOOK,学分CREDIT)

create table lession(
   lNo char(3) primary key,
   lName char(16),
   book char(16),
   CREDIT int
);

4、教师表TEACHER(教师编号TID,姓名TNAME,所在院系DEPARTMENT)

create table teacher(
  tId char(5) primary key,
  tName char(6),
  department char(16)
);

5、班级选课表ELECTION(班级号CNO,课程号LNO,教师编号TID,上课年度SYEAR,上课学期SEMESTER)

create table election(
cNo char(3),
lNo char(3),
tId char(5),
sYear int,
semester char(6),
primary key(cNo,lNo)
);

6、学生成绩表GRADE(学生学号SNO,课程号LNO,分数SCORE)

create table grade(
 sNo char(12),
 lNo char(3),
 score int,
 primary key(sNo,lNo)
);

注意:表CREDIN,SCORE,YEAR属性为INT类型,其余为CHAR类型

三、查询所有班长的学号,姓名,所在班级号和所学专业

select sNo,sName,student.cNo,speciality
from student,class
where student.sNo=class.Monitor

四、查询2024年度讲授过两门或两门以上课程的教师编号和所授的课程号

方法一:

select distinct e1.tid,e1.lNo
from election as e1,election as e2
where e1.sYear=2024 and e1.tId=e2.tId
and (e1.lNo<>e2.lNo or e1.cNo<>e2.cNo) and e2.sYear=2024

方法二:

select distinct tId,lNo
from election
where sYear=2024 and tId in(
select tId
from election
where sYear=2024
group by tId having count(*)>=2
);

五、统计“数计学院”所有教师的教师编号,教师姓名,2024年度教授的总课程数和总学分数,按总学分数从低到高排列

select teacher.tId,teacher.tName,总课程数=count(election.lNo),总学分数=sum(credit)
from teacher,election,lession
where teacher.tId=election.tId and election.lNo=lession.lNo
and sYear=2024
group by teacher.tId,teacher.tName
order by 4;

六、查询选修了“复合材料”但没有选修“计算机网络”的班级号,所属专业和该班学生人数。

select class.cNo 班级号,speciality 专业,count(sNo) 人数
from class,student
where student.cNo=class.cNo and
   class.cNo in(
   select election.cNo
   from election,lession
   where election.lNo=lession.lNo and lName='复合材料'
   )
   and class.cNo not in(
   select election.cNo
   from election,lession
   where election.lNo=lession.lNo and lName='计算机网络'
   )
group by class.cNo,speciality

七、创建一个视图v1,给出所有“数计学院”学生的学号,姓名,性别,所在班级号和选修“计算机网络”课程的分数(在此题中不需要显示属于数计学院但未选修计算机网络这门课程的学生)

方法一:

create view v1
  as select student.sNo,sName,gender,cNo,score
     from student,lession,grade
     where student.sNo=grade.sNo and grade.lNo=lession.lNo and lName='计算机网络'
	 and student.cNo in(
	 select cNo
	 from class
	 where department='数计学院'
	 )

方法二:

create view v2
 as select student.sNo,sName,gender,class.cNo,score
    from student,grade,class,lession
	where student.sNo=grade.sNo and
	      student.cNo=class.cNo and
		  department='数计学院' and
		  grade.lNo=lession.lNo and
		  lName='计算机网络'

八、查询“数计学院”学生中“计算机网络”课程分数最高的学生学号,姓名和所得分数

select sNo,sName,score
from v1
where score=(
select max(score)
from v1
)

九、查询出不学“计算机网络”课程的专业名称

select speciality
from class
except
select speciality
from class,lession,election
where election.lNo=lession.lNo and lName='计算机网络'
and election.cNo=class.cNo;

错误示例:

select speciality
from class,lession,election
where election.lNo=lession.lNo and lName<>'计算机网络'
and election.cNo=class.cNo;

错误原因:该SELECT语句将不仅仅学“计算机网络”这门课程的专业名称也进行了输出

十、小结

1、SELECT语句实现的查询功能是SQL语言的核心和重点。

2、SQL语言可满足用户对数据库的不同查询需求

3、SQL语言是高度非过程化的语言。

4、用SQL语言表达的对数据库的操作,最终由DBMS来对语句进行查询分析并优化执行,用户只需按语句格式正确表达操作需求即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/717056.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI大模型浪潮席卷而来,你准备好乘风破浪成为行业翘楚了吗?

揭秘AI大模型浪潮&#xff1a;你准备好乘风破浪了吗&#xff1f; 在繁华的都市中&#xff0c;程序员小李一直默默耕耘在代码的海洋中。然而&#xff0c;随着AI大模型技术的迅猛发展&#xff0c;他发现自己仿佛置身于一场没有硝烟的战争中。身边的同事纷纷掌握了新技术&#xf…

Python基础教程(二十四):日期和时间

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

bit band

位带(bit band) 简介: 在嵌入式系统和微控制器中,位带是一种特殊的内存映射技术. 它允许程序员像访问普通内存一样直接访问和修改特定寄存器的单个位. 使用bit band技术,可以通过内存映射的方式,将特定的位操作转换位对整个字的操作,从而实现对单个位的读写. 作用: 提高位操…

oracle发送http请求

UTL_HTTP包让SQL和PLSQL能够调用超文本传输协议&#xff08;HTTP&#xff09;&#xff0c;也就是说可以使用它在Internet上访问数据。 当包用HTTPS从Web site获取数据时&#xff0c;要使用Oracle Wallet&#xff0c;它是由Oracle Wallet Manager或者orapki utility创建。非HTT…

Elixir学习笔记——调试

在 Elixir 中&#xff0c;有多种调试代码的方法。在本章中&#xff0c;我们将介绍一些较常见的方法。 IO.inspect/2 O.inspect(item, opts \\ []) 在调试中真正有用的原因是它返回传递给它的 item 参数而不影响原始代码的行为。让我们看一个例子。 打印&#xff1a; 如您所见…

web3.0链游农民世界开发搭建0撸狼人杀玩法模式定制开发

随着区块链技术的飞速发展&#xff0c;Web3.0时代的链游已成为游戏行业的新宠。本文将介绍一款基于Web3.0的链游——农民世界&#xff0c;如何定制开发0撸狼人杀玩法模式&#xff0c;以及该模式的专业性、深度思考和逻辑性。 一、背景介绍 农民世界是一款以农业为主题的链游…

5G消息 x 融媒 | 媒体融合新入口

5G消息 x 融媒 | 媒体融合新入口 5G 消息是 5G 时代三大运营商联合手机厂商推出的平台型应用&#xff0c;5G 消息以短信为入口&#xff0c;以富媒体消息为媒介&#xff0c;具有权威真实、全面覆盖、精准投放、内容汇聚、开放共享等特点。这些特点符合当下融媒体发展的需求&…

最新下载:Hype 4 mac版【软件附加安装教程】

Hype是一款强大的Mac OS平台 HTML5 创作工具&#xff0c;它可以在网页上做出赏心悦目的动画效果&#xff0c;创建丰富的网页交互动画&#xff0c;支持层、时间轴等编辑方式&#xff0c;并能很好的导出HTML5/CSS3/JavaScript&#xff0c;在台式机&#xff0c;智能手机和iPad上流…

C++类对象模型、类对象的存储方式、this指针、this指针的引出、this指针的特性、C语言和C++实现Stack的对比等的介绍。

文章目录 前言一、C类对象模型1. 类对象的存储方式2. 结构体内存对齐规则 二、this指针1. this指针的引出2. this指针的特性3. C语言和C实现Stack的对比 总结 前言 C类对象模型、类对象的存储方式、this指针、this指针的引出、this指针的特性、C语言和C实现Stack的对比等的介绍…

【论文阅读笔记】PA-SAM: Prompt Adapter SAM for High-Quality Image Segmentation

1.论文介绍 PA-SAM: Prompt Adapter SAM for High-Quality Image Segmentation PA-SAM&#xff1a;用于高质量图像分割的提示适配器SAM 2024年 ICME Paper Code 2.摘要 Segment Anything Model&#xff0c;SAM在各种图像分割任务中表现出了优异的性能。尽管SAM接受了超过10亿…

揭秘“湖仓一体”——Flink+Paimon+StarRocks,打造实时分析新纪元

1.湖仓一体 数据湖仓是 Flink 流批一体发挥重要作用的场景,使用 Flink Paimon starRocks 来构建湖仓一体数据分析. Apache Paimon 是一个专为实时数据处理而设计的湖表格式&#xff0c;它最大的亮点是使用了 LSM Tree 技术。与 Hudi 相比&#xff0c;Paimon 在更新插入&…

中国星网时空信息集团春招Offer面经

本文介绍2024届春招中&#xff0c;中国卫星网络集团有限公司下属中国时空信息集团有限公司中&#xff0c;业务助理岗位1场面试的基本情况、提问问题等。 2024年04月投递了中国卫星网络集团有限公司下属中国时空信息集团有限公司中的业务助理岗位&#xff0c;所属部门为运营中心…

第9章 类

第9章 类 9.1 创建和使用类9.1.1 创建 Dog 类9.1.2 根据类创建实例 9.2 使用类和实例9.2.1 Car 类9.2.2 给属性指定默认值9.2.3 修改属性的值 9.3 继承9.3.1 子类的方法__init__()9.3.2 给子类定义属性和方法9.3.3 重写父类的方法9.3.4 将实例用作属性9.3.5 模拟实物 9.4 导入类…

短URL服务设计

引言 在营销系统里&#xff0c;为了增加系统的活跃用户数&#xff0c;经常会有各种各样的营销活动。这类活动几乎都是为了充分利用存量用户的价值&#xff0c;促使他们分享产品或App以达到触达到更多用户的目的。又或者是出于营销目的&#xff0c;群发优惠券触达短信这种场景。…

充电学习—3、Uevent机制和其在android层的实现

sysfs 是 Linux userspace 和 kernel 进行交互的一个媒介。通过 sysfs&#xff0c;userspace 可以主动去读写 kernel 的一些数据&#xff0c;同样的&#xff0c; kernel 也可以主动将一些“变化”告知给 userspace。也就是说&#xff0c;通过sysfs&#xff0c;userspace 和 ker…

欣九康诊疗系统助力诊所向数字化转型

数字化已经成为各行各业转型的重点方向&#xff0c;而为了不被时代所淘汰&#xff0c;医疗机构也势必要紧跟潮流&#xff0c;本人作为门诊部的负责人深知医疗机构要想实现数字化转型那么拥有一款便捷实用的医疗平台是必不可少的&#xff0c;近几年&#xff0c;随着国家大力支持…

Ubuntu 在线或离线安装docker

查看自己的ubuntu版本 在终端中执行以下命令&#xff1a; lsb_release -a 终端中的复制粘贴&#xff1a; ctrl shift c ctrl shifr v 在线安装docker&#xff08;不需要外网&#xff09;: 命令行安装&#xff1a;Ubuntu Docker -- 从入门到实践 看完…

Ollama:本地部署大模型 + LobeChat:聊天界面 = 自己的ChatGPT

本地部署大模型 在本地部署大模型有多种方式&#xff0c;其中Ollama方式是最简单的&#xff0c;但是其也有一定的局限性&#xff0c;比如大模型没有其支持的GGUF二进制格式&#xff0c;就无法使用Ollama方式部署。 GGUF旨在实现快速加载和保存大语言模型&#xff0c;并易于阅读…

香港Web3时代:比特币可以成为「收益性资产」吗?

原文标题&#xff1a;《CAN BITCOIN BE A PRODUCTIVE ASSET?》撰文&#xff1a;Pascal Hgli编译&#xff1a;Chris&#xff0c;Techub News本文来源香港Web3媒体 Techub News 比特币正在经历一场大的变化&#xff0c;人们对其性质有不同的看法。有些人将其视为日常交易的货币…

ANSYS EMC解决方案与经典案例

EMC问题非常复杂&#xff0c;各行各业都会涉及&#xff0c;例如航空、航天、船舶、汽车、火车、高科技、物联网、消费电子。要考虑EMC的对象很多&#xff0c;包含整个系统、设备、PCB、线缆、电源、芯片封装。而且技术领域覆盖广&#xff0c;涉及高频问题、低频问题&#xff1b…