Mysql高价语句

一.高级语法的查询语句

1.排序语法(默认的排序方式就是升序)。

升序ASC:select * from test01 order by name;

降序DESC:select * from test01 order by name desc;

多个列排序:以多个列作为排序,只有第一个参数有相同的值,第二个字段才有意义。

2.where条件的筛选功能(比较符号),也就是区间判断,and、or。

嵌套多条件

3.分组查询:对sql查询的结果进行分组,使用group by 语句来实现,group by配合聚合函数一起用,二者必须一起使用。

在聚合函数分组语句中,所有的非聚合函数列都要在group by语句当中。

聚合函数的类型:统计:count 求平均数:avg 最大值:MAX 最小值:min 求和:sum

统计

统计筛选(where和having):where要在group by语句前

having要在group by后

练习:

4.limit 1,3 1是位置偏移量(可选参数),如果不设定位置偏移量,默认就从第一行开始,默认值的值是0。

5.表和列的别名:因为在实际工作中,表的名字和列的名字可能会很长,书写起来不太方便,多次声明表和列时完整的展示太复杂,设置别名可以使书写简化,可读性增加,简洁明了。

以下两个语法是一样的as可以不加

6.as对表进行复制:只能复制内容,约束条件复制不了

只复制规定范围的内容

7.通配符:like模糊查询。

%匹配0个、1个或者多个字符,

匹配包含s都算

_下划线:匹配单个字符 。

下划线及%联合使用

8.子查询:内查询,嵌套查询,selsect语句当中有嵌套了一个select,嵌套的select才是子查询,查询的时候是先执行子查询语句,外部的select再根据子条件的结果进行过滤查找;子查询可以是多个表,也可以是同一张表;关联语句in , not in。

同一张表

多个表

根据test表中id的行来改变info表里的scroce的值。

9.exists:判断子查询的结果是否为空,不为空返回true,空返回false

10.子查询当中的多表查询和别名:

查出info表成绩大于80的数据

info表和test表,这两张的id部分相同,然后根据id相同的部分,查询info表的平均值

二、mysql的视图

1.视图时一个虚拟的表,表的数据基于查询的结果生成;视图可以简化复杂的查询,隐藏复杂的细节,访问数据更安全;是多表数据的集合体。

2.视图与表的区别:

存储方式:表是实际的数据表,视图不存储数据,仅仅是查询结果的虚拟表

数据更新:更新表可以直接更新视图表的数据

占用空间:表占用空间,视图表不占用空间,只是一个动态结果的展示

视图表的数据可能是一张表的部分查询数据,也可能是多个表的一部分查询数据

3.查询当前数据库当中的是视图表:

show full tables in xy102 where table_type like 'view';

创建视图表:

create view test as select * from info where score >= 80;

4.创建视图表内容只有info表score大于等于80的数据

5.单独修改视图或者表的内容时,二者的值都会发生改变

6.​​​​​​​

7.删除视图表

三、连接查询:把两张表或者多个表的记录结合起来,基于这些表共同的字段进行拼接,首选要确定一个主表作为结果集,然后把其它表的行有选择性的选定到主表的结果上。

1.内连接:两张表或者多张表之间符合条件的数据记录的集合 inner join

2.左连接:左表连接,left jion, left outer join 写在left左边的为左表

左连接以左表为基础,接收左表的所有行,以左表的记录和右表的记录进行匹配,匹配左表的所有,以及右表中符合条件的行,不符合的显示null。已比较条件为标准,展示结果。两个表相同的部分展示出来,做拼接。不同的结果显示null。

  1. 右连接:在right右边的为主表

右连接:右外连接,right iion right outer join右连接以右表为基础,接收右表的所用行,以右表记录和左表的记录进行匹配。匹配右表的所有,以及左表中符合条件的行,不符合显示null

相关推荐
万亿少女的梦16825 分钟前
基于Spring Boot与Vue的繁星技术论坛系统设计与实现
java·spring boot·mysql·vue·系统设计
源图客31 分钟前
Claude Code基础使用
服务器·前端·数据库
白帽小丑10 小时前
# 一次 MySQL DELETE 误操作的数据恢复尝试实录
数据库·mysql
Dxy123931021611 小时前
MySQL索引完整教程:创建、查看、修改、删除与日常管理
前端·javascript·mysql
Quincy_Freak12 小时前
信创内网数据规范实践:银河麒麟下SQLite本地数据安全管理方案
数据库·sqlite·arm·数据库管理·大数据分析·银河麒麟·aarch64
至乐活着13 小时前
MySQL索引底层原理与查询优化实战:从B+树到执行计划
mysql·b+树·查询优化·sql性能·索引原理
2601_9626838914 小时前
治理遗留系统中的“生肉 SQL”:一次用多模型协作优化慢查询的实战复盘
数据库·人工智能·sql
酱学编程15 小时前
【从零到一实现一个 AI Agent 框架 · 第四篇】04. 任务规划:拆解复杂目标 -
服务器·网络·数据库·人工智能
shushangyun_16 小时前
2026智能采购商城系统选型指南:如何引领企业数字化采购升级
java·大数据·数据库·人工智能·机器学习
华山令狐虫17 小时前
DBAPI AI 写 SQL:支持动态 SQL 与参数占位符,自然语言一键生成
数据库·人工智能·sql·dbapi