联合查询

1.为什么要使用联合查询?

联合查询也叫多表查询。在设计数据库表时,由于范式的要求,数据被拆分到多个表中,在查询一条数据的完整信息,就要从多个表中获取数据。

2.多表查询时MySQl内部是怎样计算的?

笛卡尔积

多表查询是一个低效操作,如果一次联合的表过多,SQL执行的会很慢,造成系统卡顿

3.内连接

1.语法

2.查询学生的班级及班级名称

MySQL内部进行笛卡尔运算后得到的结果是混乱的,需要加上条件得到期望结果

3.查询学生姓名为孙悟空的个人信息和班级信息alter

内连接还可写为:

4.查询唐三藏同学的成绩alter

5.查询所有同学的总成绩

6.查询每个同学每门课的成绩

4.外连接

外连接与内连接得到的结果可能不同

1.外连接的结果与表内数据对应关系有关

1.当两个表一一对应时

1.内连接
2.左外连接
3.右外连接

2.当两个表数据不一一对应时

注意:补充:在MysQl安全更新模式下,要删除表内全部数据,先关闭安全模式,才能进行删除

MySQL认为

delete from stu;

delete from score;

不安全的原因是:没有where条件

1.内连接

得到两个中同时存在的结果

2.左外连接

左表的全部内容

3.右外连接

右表的全部内容

5.全外连接MySQL不支持

相关推荐
SelectDB14 分钟前
云数仓费钱?用 SelectDB Serverless 三步配出秒级弹性,最高降本 70%
数据库·云原生·数据分析
time展天116 分钟前
Dddify:给 ASP.NET Core 项目一套轻量、清晰、可落地的 DDD 基础设施
数据库·后端·asp.net
杜子不疼.28 分钟前
【Qt初识】工程起步:项目创建、代码解读与对象树
数据库·c++·qt
SelectDB34 分钟前
Agent 场景动态 JSON 性能拆解:Apache Doris 比 ClickHouse 快 7 倍、比 Elasticsearch 快 2 倍
数据库·json·agent
宠友信息40 分钟前
MySQL 租户数据隔离在即时通讯源码后端中的落地方式
java·数据库·spring boot·redis·websocket·mysql
jnrjian2 小时前
PG 切换用户 \c -
数据库·postgresql
Database_Cool_2 小时前
内存数据库持久化方案:阿里云 Tair 持久内存型数据不丢失
数据库·阿里云
treesforest2 小时前
高精度IP定位怎么选?从企业需求出发的选型指南
网络·数据库·tcp/ip·web安全·ip·高精度ip查询
吴声子夜歌2 小时前
Redis 5.x——pub/sub和Stream
数据库·redis·bootstrap
吴声子夜歌2 小时前
Redis 5.x——多种数据类型使用场景
数据库·redis