sql了解2

简介: 本文介绍了SQL中多表连接查询的核心概念,包括内连接(取交集)、左外连接和右外连接(交集+单表全集)的用法及结果特征。同时讲解了子查询的不同形式(标量、列、行、子表),以及IN和BETWEEN操作符的区别和应用场景。此外,还说明了一对多关系中以“一”或“多”表为主对查询结果条数的影响,并通过示例展示了如何正确使用连接条件和子查询。

内连接(取的是交集)指的是数据相符合的全部信息(两个表中的所有字段,前提是符合 on后面的连接条件)

eg:select e.id,e.name,d.name from emp e inner join dept d on e.dept_id=d.id;

左外连接,右外连接(取得是交集+全集(单个表))

左连接:select emp.name ,dept.name from emp left join dept on

emp.dept_id=dept.id ;

右链接:select emp.name ,dept.name from emp right join dept on emp.dept_id=dept.id ;

一对多关系

如果以多表为主(左连接以左边的表为主,右连接同理)则数据记录与多表的记录条数相同

如果以一表为主,则数据记录条数会发生变化,(eg:学生表共30条记录,占据三个部门,且有一个未分属部门,部门表中有5个部门,则最终的记录为 30-1+2  含义:以谁为主,谁要全出来,所以5个部门要全出来,29条记录占据三个部门,再加两个部门,则为最终的记录结果数)   实际是部门表全出,但是某一个部门有多条数据而已

子查询:

标量 -- 针对是值 用值去匹配

列-- 一列

行- 一行

子表 -- 超过一行一列

count(*) 统计行数,只要存在即可

count(列名) 统计不为null的

in 与between

对比项

IN 操作符

BETWEEN 操作符

操作对象类型

值列表(固定值或子查询结果)

范围(数值范围、日期范围等)

匹配逻辑

判断字段是否等于列表中的 某个值

判断字段是否在指定的 闭区间 [min, max] 内

语法示例

WHERE column IN (value1, value2)

WHERE column BETWEEN min AND max

NULL 处理

若列表包含NULL

,则column=NULL

时返回UNKNOWN

(需显式处理)

若边界值为NULL

,则整个表达式返回UNKNOWN

场景

推荐操作符

示例

筛选离散值(如部门 ID、状态)

IN

WHERE dept_id IN (10, 20)

筛选连续范围(如薪资、日期)

BETWEEN

WHERE salary BETWEEN 5000 AND 10000

子查询结果匹配

IN

WHERE salary IN (SELECT ...)

in 对应的是离散的值,betwee对应的是范围,c in(a,b) 对应的关系是   c= a or c= b

直接查询:允许结果集存在重复列名,数据库会自动重命名(但可能导致不可预测的列名)。

select tb_emp.*,tb_dept.name from tb_emp , tb_dept where tb_dept.id=tb_emp.dept_id and tb_dept.name='教研部'; 为什么这里没有说列明重复,但是当作为一个子类是却说列明可能重复

带上前缀也不行吗???    查询时结果是不带表名的 ,只根据字段名匹配

子查询:要求列名必须唯一,否则报错

相关文章
|
7月前
|
消息中间件 人工智能 搜索推荐
AI 推理精细化流量治理实战:RocketMQ LiteTopic 的“千人千面”流控方案
AI推理场景下,传统消息队列面临队列头部阻塞与并发效率受损两大挑战。RocketMQ 5.x推出LiteTopic轻量主题模型,支持百万级物理隔离、毫秒级实时限流与分钟级忙闲调度,通过消费挂起等创新机制,实现“千人千面”的精细化流量治理。
AI 推理精细化流量治理实战:RocketMQ LiteTopic 的“千人千面”流控方案
|
安全 API 网络安全
API安全危机四伏!开发者掌握这“十八般武艺”才能破局?
在数字化时代,API作为连接应用的核心枢纽,其安全性至关重要。本文深入解析API安全攻防实战技巧,涵盖数据传输加密、身份认证、输入验证、速率限制、日志监控、API网关应用及持续安全实践等七大防御策略,帮助开发者全面掌握保护数据接口的关键技能,构筑坚实的安全防线。
811 100
|
10月前
|
安全 数据建模 物联网
阿里云SSL证书讲解:证书品牌、优势、应用场景以及免费版和收费版购买流程
阿里云数字证书管理服务集云上SSL证书生命周期管理和数字证书应用为一体的SAAS服务。本文将详细介绍该产品的优势、规格、售卖模式、功能、应用场景以及免费版和收费版购买流程,以供参考。
983 5
|
9月前
|
人工智能 自然语言处理 Cloud Native
2026年企业级智能客服系统建设方案:“三层一体”智能服务体系
2026年智能客服迈向全链路价值中枢,依托AI大模型与云原生技术,构建“三层一体”智能服务体系。以瓴羊Quick Service为标杆,实现降本增效、体验升级与增长赋能,推动客服从成本中心向利润中心转型,开启“服务即增长”新范式。
|
存储 Swift 对象存储
OpenStack的对象存储(Swift)
【8月更文挑战第24天】
869 1
|
存储 人工智能 前端开发
2025年解析 AI 编程:当前水平与对程序员的影响-优雅草卓伊凡
2025年解析 AI 编程:当前水平与对程序员的影响-优雅草卓伊凡
509 8
2025年解析 AI 编程:当前水平与对程序员的影响-优雅草卓伊凡
|
存储 Java 测试技术
YashanDB TPC-C测试介绍
本文介绍了在YashanDB单机数据库上运行基于BenchmarkSQL的TPC-C测试的操作流程与示例。TPC-C是针对OLTP系统的性能测试标准,模拟大型商品批发商的业务场景,包含5类核心事务:New-Order、Payment、Order-Status、Delivery和Stock-Level。文章详细说明了测试工具下载、环境配置(如修改jTPCC.java等文件)、数据装载及清理步骤,并提供了性能调优建议,包括数据库参数和建库配置优化。最后通过执行`runBenchmark.sh`完成测试,结果中的tpmC值反映系统性能,值越高表明性能越优。
YashanDB TPC-C测试介绍
北京市经开区对首次通过国家级大模型备案一次性奖励100万!
北京市为推动人工智能产业发展,出台了多项政策支持大模型及AI企业。经济技术开发区提供算力服务补贴(最高2000万)、数据集建设支持(最高200万)等;经信局推出算力券补贴(最高200万/年)。海淀区对通用和垂直大模型给予资金补贴(最高1000万)。石景山区则提供算力建设、应用、房租等多方面补贴(最高1000万),并强调智算中心建设。这些政策有效降低了研发成本,促进了技术创新与产业升级,助力北京在全球AI领域领先。
|
开发框架 JSON .NET
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
545 1
|
存储 JavaScript 前端开发