MySQL数据库学习扩展知识:子查询、外键、索引、开窗函数 子查询(三步走) 1、子查询(嵌套查询)的介绍 在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为子查询语句,外部那个select语句则称为主查询. select * from (select * from xxx) as t; 主查询和子查询的关系: 子查询是嵌入到主查询中 子查询是辅助主查询的,要么充当条件,要么充当数据源(数据表) 子查询是可以独立存在的语句,是一条完整的 select 语句 了解:子查询的应用场景 答:在我们需求的基础上,如果这个需求需要通过多条SQL语句分步查询的情况,一般都需要基于子查询。 2、子查询的使用 例1. 查询学生表中大于平均年龄的所有学生: 需求:查询年龄 > 平均年龄的所有学生 前提: ① 班级的平均年龄值 ② 查询表中的所有记录,判断哪个同学 > 平均年龄值 第一步:写子查询 第二步:写主查询 第三步:第一步和第二步进行合并 例2. 查询tb_goods产品表中具有分类信息的产品 需求:查询产品表中具有分类信息的产品(没有与之对应分类信息的产品不显示) 前提: ① 查询分类表中,到底有哪些分类(cid编号) ② 到产品表中进行判断,判断这个商品的cid编号与①中的是否相等 第一步:编写子查询 第二步:编写主查询 第三步:把主查询和子查询合并 例3. 查找年龄最小且成绩最低的学生: 第一步:年龄最小值和成绩最小值 第二步:查询所有学员信息(主查询) 第三步:把第一步和第二步合并 注:数据表中必须有这样一条记录,否则可能查询不到结果,重点练习子查询返回多个结果情况。 3、小结 子查询是一个完整的SQL语句,子查询被嵌入到一对小括号里面 掌握子查询编写三步走 外键(扩展) 主键:primary key 外键:foreign key(应用场景:在两表或多表关联的时候设置的,用于标志两个表之间的联系) 1、外键约束作用 外键约束:对外键字段的值进行更新和插入时会和引用表中字段的数据进行验证,数据如果不合法则更新和插入会失败,保证数据的有效性。 dage表:
xiaodi表:
外键设计原则:保证两张表的关联关系,保证数据的一致性。在选择时,一般在一个表中时关联字段,在另外一个表中是主键,则这个字段建议设置为外键。 2、对于已经存在的字段添加外键约束 3、在创建数据表时设置外键约束 4、删除外键约束 索引[了解] 1、索引概述 索引作用: 快速检索数据. (提高查询效率),其底层主要是使用B+ Tree结构 2、普通索引使用 创建索引: 修改表添加索引: 查询索引: 删除索引: 查看所有库或者表的索引: 3、唯一索引使用 创建索引 删除索引 4、索引使用注意 索引不是越多越好. 索引使用应该注意以下问题: 磁盘空间消耗 创建索引和维护索引的时间消耗 经常增删改数据,索引需要动态维护,效率低下。 不经常查询的字段不需要创建索引 大部分值相同的字段不需要创建索引 扩展: 开启mysql时间检测: set profiling=1; 查看sql语句执行时间: show profiles; 开窗函数(mysql 8.0后新的) 1、数据准备 2、开窗函数使用 格式: partition by :相当于分组group by order by :相当于前面的order by 使用:
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/78177.html