肖sir__mysql之三表__008
mysql之三表
create table student(
stu_no int,
stu_name varchar(10),
sex char(1),
age int(3),
edit varchar(20) )
DEFAULT charset=utf8;
insert into student values
(1,‘wang’,‘男’,21,‘hello’),
(2,‘小明’,‘女’,22,‘haha2’),
(3,‘hu’,‘女’,23,‘haha3’),
(4,‘li’,‘男’,25,‘haha4’);
create table course(
c_no int,
c_name varchar(10))
DEFAULT charset=utf8;
insert into course values
(1,‘计算机原理’),
(2,‘java’),
(3,‘c’),
(4,‘php’),
(5,‘py’);
#drop table sc;
create table sc(
sc_no int,
stu_no int,
c_no int,
score int(3))
DEFAULT charset=utf8;
insert into sc values
(1,1,1,80),
(2,2,2,90),
(3,2,1,85),
(4,2,3,70),
(5,2,4,95),
(6,2,5,89);
select * from student;
select * from course;
select * from sc;
Student学生表(学号、姓名、性别、年龄、编辑)
Course课程表(编号、课程名称)
sc选课表(选课编号、学号、课程编号、成绩)
(1)写一个SQL语句,查询选修了“计算机原理”的学生学号和姓名
结果:学生学号(stu_no)和姓名(stu_name)
条件:选修了“计算机原理” c_name=‘“计算机原理” ’
思路:合表 and 条件(c_name=’“计算机原理” ') 显示学生学号(stu_no)和姓名(stu_name)
方法1:
select t.stu_no ‘学号’,t.stu_name ‘姓名’ from student t,course c,sc s where t.stu_no = s.stu_no and c.c_no = s.c_no and c.c_name = ‘计算机原理’;
方法2:
select student.stu_no,student.stu_name from student LEFT JOIN sc on sc.stu_no=student.stu_no LEFT JOIN course on course.c_no=sc.c_no where course.c_name=‘计算机原理’
方法3:
select stu_no,stu_name from student where stu_no in(SELECT stu_no from sc c where c_no=(select c_no from course b where c_name=‘计算机原理’))
(2)写一个SQL语句,查询“小明”同学选修的课程名称
结果:课程名称 c_name
条件:“小明”同学 stu_name= ‘ 小明’
思路:合表 接条件 stu_name= ‘ 小明’
方法1·:select c.c_name ‘课程名称’ from student t,course c,sc s where
t.stu_no = s.stu_no and c.c_no = s.c_no and t.stu_name = ‘小明’;
(3)写一个SQL语句,查询选修了5门课程的学生学号和姓名
结果:学生学号、姓名
条件:选修了5门课程 count(c_name)=5
思路:合表 ,函数count =5
方法1:(错误)
select stu_name,a.stu_no from student a inner join sc b on a.stu_no=b.stu_no inner join course c on b.c_no=c.c_no group by stu_name having count(stu_name)=5 ;
方法2:(错误)
select student.stu_no,student.stu_name from student LEFT JOIN sc on sc.stu_no=student.stu_no LEFT JOIN course on course.c_no=sc.c_no GROUP BY sc.stu_no HAVING count(sc.stu_no)=5
方法3:
SELECT stu_no,stu_name from student where stu_no=(
select a.stu_no from student a inner join sc b on a.stu_no=b.stu_no inner join course c on b.c_no=c.c_no group by a.stu_no having count(a.stu_no)=5 );
总结格式:
1、三表隐藏内连接
格式:
select * FROM 表1 ,表2,表3 where 表1.关联字段=表3.关联字段 and 表2.关联字段=表3.关联字段 ;
案例:select * FROM student a,sc b,course c where a.stu_no=b.stu_no and b.c_no=c.c_no ;
2、三表普通内连接
格式:select * FROM 表1 inner join 表3 on 表1.关联字段=表3.关联字段 inner join 表2 on 表3.关联字段=表3.关联字段 ;
案例:select * FROM student a INNER JOIN sc b on a.stu_no=b.stu_no INNER JOIN course c on b.c_no=c.c_no ;
3、三表左连接
格式:select * FROM 表1 left join 表2 on 表1.关联字段=表3.关联字段 left join 表2 on 表2.关联字段=表3.关联字段 ;
案例:select * FROM student a left JOIN sc b on a.stu_no=b.stu_no left JOIN course c on b.c_no=c.c_no ;
4、三表右连接
格式:select * FROM 表1 right join 表2 on 表1.关联字段=表3.关联字段 right join 表2 on 表2.关联字段=表3.关联字段 ;
案例:select * FROM student a right JOIN sc b on a.stu_no=b.stu_no right JOIN course c on b.c_no=c.c_no ;
5、先合两个表,在合另一张表
格式:select * from (select 字段名 FROM 表1 right join 表2 on 表1.关联字段=表3.关联字段 )别名,表2 where
合表.关联字段=表3.关联字段
select * from (select a.stu_no,stu_name,sex ,age ,edit ,sc_no ,c_no ,score FROM student a right JOIN sc b on a.stu_no=b.stu_no)s ,course c where s.c_no=c.c_no ;
6、把三表单成单表理解
(SELECT b.,c. FROM sc a,student b,course c WHERE a.stu_no=b.stu_no AND a.c_no=c.c_no)s 当成单表
select * from (SELECT b.,c. FROM sc a,student b,course c WHERE a.stu_no=b.stu_no AND a.c_no=c.c_no)s
相关文章:
肖sir__mysql之三表__008
mysql之三表 create table student( stu_no int, stu_name varchar(10), sex char(1), age int(3), edit varchar(20) ) DEFAULT charsetutf8; insert into student values (1,‘wang’,‘男’,21,‘hello’), (2,‘小明’,‘女’,22,‘haha2’), (3,‘hu’,‘女’,23,‘haha3…...
【Linux】常用工具(上)
Linux 常用工具 一、Linux 软件包管理器 yum1. 软件包2. 查看软件包3. 安装/卸载软件4. yum 其他指令的功能 二、Linux 编辑器 - vim 使用1. vim 的基本概念2. vim 的基本操作(1)光标移动(命令模式)(2)光标…...
【kafka】可视化工具KAFKA EAGLE安装分享
目录 准备: 开始: 1.解压 2.环境变量配置 3.生效环境变量配置文件 3.修改配置文件 1.修改zookeeper集群信息 2.修改mysql配置信息 4.启动 5.异常排查 6.页面 创作不易,你的动力是我创作的动力,如果有帮助请关注我&…...
【深度装机】深度U盘装机后黑屏闪光标
装x64的系统 装机版的gho文件太多预装软件了。几年前买的这种无风扇的机器,之前装的ubuntu:装机U盘启动后,先删掉的所有的ubuntu分区。使用了10几年的AOC又肩负使命: 感觉发热还是挺大的。 有人说因为secure boot 打开secure boo…...
【性能测试】JMeter:集合点,同步定时器的应用实例!
一、集合点的定义 在性能测试过程中,为了真实模拟多个用户同时进行操作以度量服务器的处理能力,可以考虑同步虚拟用户以便恰好在同一时刻执行操作或发送请求。 通过插入集合点可以较真实模拟多个用户并发操作。 (注意:虽然通过加入集合点可…...
21天学会C++:Day11----运算符重载
CSDN的uu们,大家好。这里是C入门的第十一讲。 座右铭:前路坎坷,披荆斩棘,扶摇直上。 博客主页: 姬如祎 收录专栏:C专题 目录 1. 知识引入 2. 运算符重载 2.1 operator<() 2.2 operator() 2.3 o…...
面经pc端项目
创建项目 安装脚手架-----创建项目------选择自定义 sass基础语法 https://www.sass.hk/ sass语法有两个:sass(旧) scss(新) 1.scss语法 和less语法类似,支持嵌套,支持变量… scss: $变量名 less: @变量名 $color:orange; .box{width: 400px;height: 400px;borde…...
三步在两台服务器间迁移conda环境
引言: 背景是我现在要跑的实验在一台服务器上跑有点来不及了,需要将conda环境和文件一起迁移到另一台服务器上。文件的迁移可以用scp或者rsync。但是conda虚拟环境的迁移则不行。 步骤: step 1 将当前的虚拟幻境信息写入environment.yml c…...
websocket服务部署在内网,app无法访问
描述:websocket服务部署在内网(ws://),app无法访问外网,需要将内网地址映射到外网 解法:通过nginx配置ws代理,部署nginx的服务器连通的外网和内网,通过nginx配置将原有的ws请求转换…...
vs2010对于c++11的支持
不支持 using代替typedef变参模板for each...
OpenCV cv::Mat和QImage互相转换
在使用OpenCV和Qt进行图像处理时,经常需要将cv::Mat和QImage之间进行转换。下面是cv::Mat和QImage之间的相互转换方法: 将cv::Mat转换为QImage: cv::Mat cvImage; // 你的cv::Mat图像// 将cv::Mat转换为QImage QImage qtImage(cvImage.data…...
pgsql 主从搭建
在 PostgreSQL 中,主从复制(Master-Slave Replication)是一种常见的数据库高可用性和数据备份解决方案。它允许你创建一个主数据库服务器(Master),并在一个或多个从数据库服务器(Slaveÿ…...
JS中的数值精度问题(二)
一、精度范围,精度最多只能到53个二进制位 JavaScript 能够准确表示的整数范围在-2^53到2^53之间(不含两个端点),超过这个范围,无法精确表示这个值。 国际标准IEEE 754规定,有效数字第一位默认总是…...
WPF——Control与Template理解
文章目录 一、前言二、控件三、模板3.1 DataTemplate3.2 ControlTemplate3.3 ContentPresenter 四、结语 一、前言 最近又翻看了下刘铁猛的《深入浅出WPF》,发现对模板章节中的部分内容有了更深的体会,所以写篇文扯扯。 文章标题是Control与Template&a…...
华为HCIA学习(一)
文章目录 一.根据考试题总结知识点(一题一点)二.上午学习三.下午学习四.今天只做了70题,需要的可以找我 一.根据考试题总结知识点(一题一点) 二.上午学习 ① VRP系统是VRP是华为公司从低端到高端的全系列路由器、交换…...
使用jmeter+ant+jenkins+git搭建自动化测试平台
最近正在学习自动化测试,于是随手搭建了一下jmeterantjenkinsgit平台。 接下来,我会按照jdk,jmeter,ant,jenkins,git这个顺序一步一步的搭建起来。 一、jdk。这个就不多说了。我用的是1.8版本的,配环境变…...
C# Winform中在DataGridView中添加Button按钮,操作Button按钮
.Net的DataGridView控件中,提供了一种列的类型,叫 DataGridViewButtonColumn ,这种列类型是展示为一个 按钮,可以给button赋予相应的text,并且,此button可以用来做处理事件的判断依据。 DataGridViewButto…...
Docker 网络学习
docker的网络模式 当你开始大规模使用Docker时,你会发现需要了解很多关于网络的知识。Docker作为目前最火的轻量级容器技术,有很多令人称道的功能,如Docker的镜像管理。然而,Docker同样有着很多不完善的地方,网络方面…...
django创建web服务器
安装 pip install django 创建项目 django-admin startproject report django-admin startapp data //project下可创建多个app 执行使用 python manage.py migrate //orm代码到数据库 python manage.py runserver 0.0.0.0:80 权限管理 python manage.py createsuperuser 创建…...
极光笔记 | 推送服务数据中心选择:合规性与传输效率的双重考量
随着全球化进程的深入,跨境数据传输与存储问题已经变得愈发重要。推送服务的数据中心节点选择不仅关乎数据访问速度和用户体验,同时也直接牵扯到数据合规性和安全保障。EngageLab Push深知这一点,为了满足更多国际客户和全球用户触达需求&…...
Python灰帽编程——初识Python上
1. Python 简介 常用安全工具语言示例perljoomscan whatwebrubymetasploit-frameworkpythonsqlmap pocsuite3gogoby 1.1 Python 起源 1.1.1 语言的作者 贵铎范罗萨姆(Guido van Rossum)荷兰人于1989 年圣诞节始创了python。 大神就是大神࿰…...
OLED透明屏交互技术:开创未来科技的新篇章
OLED透明屏交互技术作为一项前沿的科技创新,正在以其高透明度、触摸和手势交互等特点,引领着未来科技的发展。 不仅在智能手机、可穿戴设备和汽车行业有着广泛应用,还在广告和展示领域展现出巨大的潜力。 那么,尼伽在这篇文章中将…...
揭秘Spring Boot内嵌Tomcat原理
tomcat 介绍 tomcat 是 web容器(servlet 容器),不管请求是访问静态资源HTML、JSP还是java接口,对tomcat而言,都是通过servlet访问: 访问静态资源,tomcat 会交由一个叫做DefaultServlet的类来处…...
分类散点图 stripplot() 加辅助线axhline() 多图合一
分类散点图 stripplot 加辅助线axhline 多图合一 效果图代码 画图没有什么可说的,直接上图 效果图 代码 # 绘制图, 查看是否数值在阈值上 plt.figure(figsize(30, 18)) n 0 for header, value_list in info_dict.items():ref_value_list ref_info_dic…...
一文告诉你为什么时序场景下 TDengine 数据订阅比 Kafka 好
在 TDengine 3.0 中,我们对流式计算、数据订阅功能都进行了再升级,帮助用户极大简化了数据架构的复杂程度,降低整体运维成本。TDengine 提供的类似消息队列产品的数据订阅、消费接口,本质上是为了帮助应用实时获取写入 TDengine 的…...
reg与wire的用法,证明reg可以在右边,wire型在左边,来作组合逻辑处理。
reg与wire的用法,证明reg可以在右边,wire型在左边,来作组合逻辑处理。 1,RTL2,生成的原理图 1,RTL 参考文献: 1,verilog 中 wire 和reg 的使用 2,解决一个assign问题&…...
Studio One6.2简体中文免费最新版本宿主软件
对于一些有创作需求的朋友来说,为自己写的歌制作伴奏是很平常的。今天要和大家分享的就是自己写的歌怎么做伴奏,自己做伴奏的软件有哪些。Studio One是宿主软件界的一个后起之秀,推出的时间不久,但是受到了大量音乐制作人的推崇。…...
算法刷题 week2
目录 week21. 二维数组中的查找题目题解(单调性扫描) O(nm) 2.替换空格题目题解(线性扫描) O(n)(双指针扫描) O(n) 3.从尾到头打印链表题目题解(遍历链表) O(n) week2 1. 二维数组中的查找 题目 题解 (单调性扫描) O(nm) 核心在于发现每个子矩阵右上角的数的性质࿱…...
子网的划分
强化计算机网络发现王道没有这一块的内容,导致做题稀里糊涂。于是个人调研补充。 子网划分是将一个大型IP网络划分成更小的子网,以实现更有效的网络管理和资源分配。 原因: 提高网络性能:子网划分可以减少广播域的大小ÿ…...
Docker安装与卸载
Docker安装与卸载 安装 yum install -y yum-utils \device-mapper-persistent-data \lvm2 --skip-broken更新本地镜像源 打开终端或 SSH 连接到 Rocky Linux 的服务器。 进入 /etc/yum.repos.d/ 目录,该目录包含 Rocky Linux 的 yum 配置文件。 cd /etc/yum.repo…...
亚马逊网站建设的意义/总排行榜总点击榜总收藏榜
【http://msdn.microsoft.com/zh-cn/library/bb861909.aspx】 在 Microsoft SharePoint Foundation 中,修改 web.config 设置的一种方法是使用 Microsoft.SharePoint.Administration 命名空间的 SPWebConfigModification 类,这使得您能够动态地对实体进行…...
网站倒计时怎么做/项目推广渠道有哪些
Numpy包含大量的数学函数,如三角函数、算术函数和处理复数的函数等等,这些函数可以用来执行各种数学操作。三角函数Numpy中包含三角函数,用于不同角度的正弦、余弦和正切等就散。示例importnumpy as nparr np.array([0, 30, 60, 90, 120, 150…...
征求网站建设意见的通知/2024年最新时政热点
在第三期项目的视频中,官方提供了一整套新的工具链,bootloader, 内核和文件系统(arm-linux-gcc_4.3.2, uboot-2012.04.01, linux-3.4.2)其中uboot-2012.04.01来源于毕业班,其下载烧写功能远不如uboot-1.1.6,…...
集约化网站数据库建设规范/学it什么培训机构好
grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,本文主要给大家分享Linux grep与正则表达式的相关知识,感兴趣的朋友一起看看吧,希望能帮助到大家。grep简介grep 是一种强大的文本搜…...
为什么做网站还要续费/百度网址ip
为什么80%的码农都做不了架构师?>>> 序 本文主要研究下springboot2的ScheduledTasksEndpoint 实例 注解形式 Component public class ScheduleTask {Scheduled(cron "0 0 5 * * ?")public void cronJob(){}Scheduled(fixedDelay 2*60*1000…...
中山建设网站官网/百度指数趋势
题目链接 Leetcode.939 最小面积矩形 Rating : 1752 题目描述 给定在 xy平面上的一组点,确定由这些点组成的矩形的最小面积,其中矩形的边平行于 x 轴和 y 轴。 如果没有任何矩形,就返回 0。 示例 1: 输入࿱…...