掌握Mysql高阶语句,玩转Mysql(万字总结)

本文详细介绍了MySQL的高级查询技巧,包括SELECT、DISTINCT、WHERE、JOIN、子查询、视图、UNION及CASE等,还涵盖了空值处理、正则表达式和存储过程的使用,是MySQL查询的全面指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

创建一个库和两个表(1-22使用)

 1.SELECT

2.DISTINCT

3.WHERE

4.AND(且) OR(或)

5.IN

6.BETWEEN

7.通配符、LIKE

通配符:

LIKE:

8.ORDER BY 

9.数学函数

10.聚合函数

11.字符串函数

12.| | 连接符

13.GROUP BY

14.HAVING

15.别名

16. 子查询

17.EXISTS

18.连接查询(内连接、左连接、右连接)

19.CREATE VIEW

20.UNION(联集)

21.取交集值与无交集值

交集值

 无交集值

22.CASE

创建一个新表(23-27使用)

23.算排名

24. 算中位数

25.算累积总计

26.算总合百分比

27.算累积总合百分比

28.空值(NULL) 和无值('')的区别

29. 正则表达式

30. 存储过程

存储过程简述

 存储过程的控制语句


创建一个库和两个表(1-22使用)

create database xcc;
use xcc;
create table sales_area (area char(20),name char(20));
insert into sales_area values('beibu','beijing');
insert into sales_area values('beibu','tianjin');
insert into sales_area values('nanbu','shanghai');
insert into sales_area values('nanbu','nanjing');
select * from sales_area;

sales_area 表格如下:
+-------+----------+
| area  | name     |
+-------+----------+
| beibu | beijing  |
| beibu | tianjin  |
| nanbu | shanghai |
| nanbu | nanjing  |
+-------+----------+

create table sales_date (name char(20),sales int(10),date char(10));
insert into sales_date values('beijing','1500','2021-12-05');
insert into sales_date values('nanjing','250','2021-12-07');
insert into sales_date values('beijing','300','2021-12-08');
insert into sales_date values('shanghai','700','2021-12-08');

select * from sales_date;
+----------+-------+------------+
| name     | sales | date       |
+----------+-------+------------+
| beijing  |  1500 | 2021-12-05 |
| nanjing  |   250 | 2021-12-07 |
| beijing  |   300 | 2021-12-08 |
| shanghai |   700 | 2021-12-08 |
+----------+-------+------------+

show tables;
+---------------+
| Tables_in_xcc |
+---------------+
| sales_area    |
| sales_date    |
+---------------+

 1.SELECT

作用:显示表格中一个或数个栏位的所有资料

语法: SELECT "栏位" FROM "表名"

2.DISTINCT

作用:不显示重复的资料

语法: SELECT DISTINCT "栏位" FROM "表名";

3.WHERE

有条件查询

语法: SELECT "栏位" FROM "表名" WHERE "条件";

4.AND(且) OR(或)

语法: SELECT "栏位" FROM "表名" WHERE "条件1" ([AND|OR] "条件2")+ ;

5.IN

作用:显示已知的值的资料

语法: SELECT "栏位" FROM "表名" WHERE "栏位" IN ('值1','值2',...);

6.BETWEEN

作用:显示两个值范围内的资料

语法: SELECT "栏位" FROM "表名" WHERE "栏位" BETWEEN '值1' AND '值2';

7.通配符、LIKE

通常通配符都是跟 LIKE 一起使用的

通配符:

% 百分号表示零个、一个或多个字符
_ 下划线表示单个字符
'A_Z' 所有以'A'起头,中间一个为任何值的字符,且以'Z'为结尾的字符串。例如,'ABZ' 和'A2Z'都符合这一个模式,而'AKKZ' 并不符合
'ABC%' 所有以'ABC' 开头的字符串。 例如,'ABCD' 和'ABCABC' 都符合这个模式
'%XYZ' 所有以'XYZ' 结尾的字符串。 例如,'WXYZ' 和'ZZXYZ' 都符合这个模式
'%AN%' 所有含有'AN'这个模式的字符串。例如,'LANG'和'SAN' 都符合这个模式
'_AN%' 所有第二个字母为'A' 和第三个字母为'N' 的字符串。例如,'SAN ' 符合这个模式,而'LOSAN‘则不符合这个模式。

LIKE:

作用:匹配一个模式来找出我们要的资料

语法: SELECT "栏位” FROM "表名" WHERE "栏位" LIKE {模式};

8.ORDER BY 

按关键字排序

语法: SELECT "栏位" FROM "表名" [WHERE "条件"] ORDER BY "栏位" [ASC,DESC];

#ASC是按照升序进行排序的,是默认的排序方式。
#DESC是按降序方式进行排序。

9.数学函数

abs(x) 返回 x 的绝对值
rand() 返回 0 到 1 的随机数
mod(x,y) 返回 x 除以 y 以后的余数
power(x,y) 返回 x 的 y 次方
round(x) 返回离 x 最近的整数
round(x,y) 保留 x 的 y 位小数四舍五入后的值
sqrt(x) 返回 x 的平方根
truncate(x,y) 返回数字 x 截断为 y 位小数的值
ceil(x) 返回大于或等于 x 的最小整数
floor(x)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值