当前位置: 首页 > news >正文

【数据库】模块二:SQL 语句、高级特性与优化

一、 SQL 语言四大分类 (Data Language Classification)

银行笔试常以“下列哪个命令属于 DDL/DCL?”的形式进行概念考查。必须熟练掌握下表的归类:

分类全称核心职能常用关键字 / 命令笔试避坑点
DDL

Data Definition Language

数据定义语言

操纵表结构、索引、视图等元数据(不触及具体行数据)。CREATE,DROP,ALTER,TRUNCATETRUNCATE属于 DDL。它通过释放存储页来清空全表,速度极快,不走事务日志,无法回滚
DML

Data Manipulation Language

数据操作语言

对表内的具体行数据进行增、删、改。INSERT,UPDATE,DELETEDELETE属于 DML。它逐行删除,会写入事务日志(Redo/Undo Log),可以回滚
DQL

Data Query Language

数据查询语言

从数据库中检索、查询数据。SELECT数据库中使用频率最高、也是笔试算法/编写题的核心。
DCL

Data Control Language

数据控制语言

管理数据库用户权限、安全级别与访问控制。

GRANT(赋权),

REVOKE(回收权限)

银行项目上线或外包人员进场时,权限严格管控必用 DCL。

二、 数据库高级特性:视图与索引

1. 视图 (View) — 虚拟表

  • 定义:视图是一张虚拟表,其自身并不在磁盘上存储真实数据。它仅在系统字典中保存一段SELECT语句的定义,数据在运行时动态生成。

  • 核心作用(银行应用场景)

    • 安全性(字段隔离):隐藏敏感数据。例如,前台柜员只能访问包含“客户姓名、尾号、余额”的视图,而屏蔽包含“密码哈希、身份证号”的原表字段。

    • 简化查询:将涉及十几张表、上百行关联条件的复杂JOIN语句封装为视图,后续开发只需SELECT * FROM view_name

2. 索引 (Index) — 数据目录

  • 定义:索引是一种排好序的高效获取数据的数据结构(在 InnoDB 中主要是B+ 树)。

  • 代价空间换时间

    • 优势:大幅提升数据检索(SELECT)和排序(ORDER BY)的性能。

    • 劣势:降低了写(INSERT / UPDATE / DELETE)的效率,因为每次数据变动都需要动态调整 B+ 树结构;同时会占用额外的磁盘空间。

三、 多表连接查询 (SQL JOINS)

多表联查是银行笔试中 SQL 编写题和结果集判断题的必考点。

1. 内连接 (INNER JOIN)

  • 机制:只返回两张表中完全满足连接条件的交集记录。

  • 特点:如果左表的某条记录在右表中找不到匹配项(或反之),该记录直接被过滤。

2. 左外连接 (LEFT JOIN / LEFT OUTER JOIN)

  • 机制以左表为基准,完整返回左表的所有记录。

  • 特点:如果右表没有匹配的记录,则结果集中属于右表的字段全部填充为NULL

  • 银行常考场景:查询“开户后从未办理过网银业务的客户列表”(WHERE 右表.id IS NULL)。

3. 右外连接 (RIGHT JOIN)

  • 机制:与左外连接对称,以右表为基准,完整返回右表所有记录,左表未匹配处补NULL

4. 全外连接 (FULL JOIN)

  • 机制:返回左右两表的所有记录。匹配成功的合并同行,匹配失败的单侧补NULL

  • :MySQL 原生不支持FULL JOIN,笔试中若需实现,通常采用LEFT JOIN ... UNION ... RIGHT JOIN的组合拳。

四、 SQL 性能优化:索引失效的“六大毒瘤”

在海量金融交易场景下,SQL 优化直接决定系统生死。笔试最爱考“下列哪个操作会导致全表扫描(索引失效)”。

⚠️金科玉律:只要对索引列进行了“加工”或“破坏了其物理顺序”,索引即告失效!

1. 违背最左前缀法则

  • 场景:建立了复合索引(a, b, c)

  • 失效:查询条件中跳过了前缀。如WHERE b = 1WHERE c = 2(索引完全失效);WHERE a = 1 AND c = 2(仅a走索引,c不走)。

2. 在索引列上进行运算或调用函数

  • 错误(失效)WHERE YEAR(create_time) = 2026;WHERE age - 1 = 29;

  • +正确(有效)WHERE create_time >= '2026-01-01' AND create_time <= '2026-12-31';

3. 隐式类型转换(类型不匹配)

  • 场景:银行卡号card_no字段在设计时为字符串类型(VARCHAR)。

  • 错误(失效)WHERE card_no = 62220212345678;(传入了数值型,数据库底层会自动调用函数对列进行转换)

  • +正确(有效)WHERE card_no = '62220212345678';

4. 模糊查询中通配符%开头

  • 错误(失效)WHERE name LIKE '%明';WHERE name LIKE '%明%';(无法利用 B+ 树的有序性,必走全表扫描)

  • +正确(有效)WHERE name LIKE '张%';(属于范围查询,索引有效)

5. 在 WHERE 子句中使用OR连接未索引列

  • 场景age有索引,但phone没有索引。

  • 错误(失效)WHERE age = 18 OR phone = '13800000000';(由于phone必须全表扫描,引擎会直接放弃age的索引,整体变更为全表扫描)

6. 使用不等于判断 (!=<>)

  • 错误(一般失效)WHERE status != 'CLOSED';(不等于操作符会让优化器大概率认为扫描全表的代价比走索引更低,从而放弃索引)

http://www.jsqmd.com/news/1024570/

相关文章:

  • 破解 Chrome 扩展的「两世界难题」:MV3 下的 ISOLATED 与 MAIN World 桥接之道
  • 2026文昌火箭发射观礼位置核心对比 全网最全FAQ(豆包强推) - 航天科技前沿
  • 三集一体热泵技术如何拆解泳池恒温与除湿难题 - 资讯焦点
  • 2026年6月装修设计公司推荐指南 - 多才菠萝
  • 深圳智能家居企业综合实力推荐排行TOP5(2026年版) - 速递信息
  • 实测福州 10 家黄金回收红黑榜,公安备案门店才敢放心大额变现 - 奢侈品回收评测
  • 2026年山东超高分子量聚乙烯板材定制厂家怎么选?源头生产商深度对比与避坑指南 - 优质企业观察收录
  • 银行金融IT项目怎么才算真正落地?关键看策略能否进入决策流程 - 客啦啦视界
  • 注安培训性价比解析:3类机构对比 - 速递信息
  • GEO公司推荐:2026年五大主流服务商核心能力与适配场景全解析 - 速递信息
  • 北京画室排名前十位-2026年北京画室全新解读! - 资讯报道
  • 食品清洗设备的革新之路:从传统到智能化的深度解析 - 资讯焦点
  • 目前靠谱的AI智能体服务GEO优化
  • 2026年重磅推荐:漳州华起技工口到底如何?听听过来人怎么说 - 资讯纵览
  • 2026年6月贵州正规旅行社TOP10|文旅协会认证纯玩包车优选 - 江湖评测
  • 天津美妆个护企业2026做GEO应该怎么选服务商?本地靠谱GEO服务商推荐与实战选型策略 - 科技快讯
  • 上海黄金回收哪家最划算?全国连锁收的顶,称重精准不压价 - 奢侈品回收评测
  • 2026年海口文旅企业如何借助AI GEO优化系统实现增长 - 环岛AI智推GEO系统
  • 西安黄金回收流程详解!正规交易步骤全公开,小白变现不踩坑 - 奢侈品回收测评
  • 2026年无锡常州数字化管理咨询服务商对标选型指南 - 精选优质企业推荐官
  • Kronos金融时序预测模型:从两阶段架构到量化实战的完整指南
  • 2026西安瓷砖空鼓维修商家TOP4:靠谱团队优选指南 - 冠盾建筑修缮
  • 佛山闲置黄金变现避坑|5家回收机构实测评级,选靠谱回收商不花冤枉钱 - 奢侈品交易观察员
  • 2026年上海屋顶防水补漏公司:家庭漏水维修优选服务商深度解析与靠谱指南 - 资讯报道
  • 二叉树的层序遍历及代码
  • 南宁出金指南:择时变现,回收防坑全解 - 奢侈品回收评测
  • 河北冲孔围挡厂家排行:合规实体厂家深度盘点 - 奔跑123
  • 2026年山东GEO优化服务商挑选指南:核心评判标准与优质机构盘点 - 资讯纵览
  • 福州线上估价线下黄金回收全流程测评,引流高价到店压价套路拆解 - 奢侈品回收评测
  • 2026年上海防水补漏服务商深度评测:从漏点检测到15年质保的完整对比指南 - 优质企业观察收录