MySQL高级语句

目录

SELECT

DISTINCT

WHERE

AND OR

IN

BETWEEN

通配符

LIKE

ORDER BY

函数

聚合函数

字符串函数

GROUP BY

HAVING

别名

表的自我连接

子查询

EXISTS

表连接的方式

CREATE VIEW--视图

UNION—联集

交集值

取两个SQL语句结果的交集,且没有重复

无交集值

CASE

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

正则表达式

存储过程

存储过程的优点:

创建存储过程

调用存储过程

查看存储过程

存储过程的参数

删除存储过程

存储过程的控制语句

先创建两个表

use huo; create table location (Region char(20),store_Name char(20));

insert into location values('East','Boston');

insert into location values('East','New York');

insert into location values('West','Los Angeles');

insert into location values('West','Houston');

create table store_info (Store_Name char(20),Sales int(10),Date char(10));

insert into store_info values('Los Angeles','1500','2022-5-05');

insert into store_info values('Houston','250','2022-5-07');

insert into store_info values('Los Angeles','300','2022-5-08');

insert into store_info values('Boston','700','2022-5-30');

SELECT

显示表格中一个或数个字段的所有数据记录

语法:SELECT "字段" FROM "表名";

SELECT Store_Name FROM store_info;

DISTINCT

不显示重复的数据记录

语法:SELECT DISTINCT "字段" FROM "表名";

SELECT DISTINCT Store_Name FROM store_info;

WHERE

有条件查询

语法:SELECT"字段"FROM"表名 "WHERE" 条件";

SELECT Store_Name FROM store_info WHERE Sales > 1000;

AND OR

且 或

语法:SELECT"字段"EROM"表名"WHERE"条件1"{[ANDIOR]"条件2"}+;

SELECT Store_Name FROM store_info WHERE Sales > 1000 OR (Sales < 500 AND Sales > 200);

IN

显示己知的值的数据记录

语法:SELECT "字段" ROM "表名" WHERE "字段" IN(值1,'值2',...);

SELECT * FROM store_info WHERE Store_Name IN ('Los Angeles','Houston');

BETWEEN

显示两个值范围内的数据记录

语法:SELECT"字段"TROM"表名"WHERE"字段"BETWEEN值1AND1值2; SELECT * FROM store_info WHERE Date BETWEEN '2022-5-05' AND '2022-5-08';

通配符

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

通配符 含义
% 百分号表示零个、一个或多个字符
_ 下划线表示单个字符
A Z 所有以'A'起头,另一个任何值的字符,且以,'Z'为结尾的宁符串.例如,'ABZ'和'A2Z'都符合这一个模式,而'AKKZ'并不符合(因为在A和Z之间有两个字符,而不是一个字符).
ABC% 所有以,'ABC'起头的字符串.例如'ABCD'和'ABCABC'都符合这个模式.
%XYZ 所有以'XYZ'结尾的字符串.例如,'WXYZ'和'ZZXYZ'都符合这个模式
%AN% 所有含有'AN'这个模式的字符串.例如,'LOS ANGELES'和'SAN FRANCISCO'都符合这个模式
_AN% 所有第二个字母为,'A'和第三个字母为'N'的字符串.例如,'SAN FRANCISCO'符合这个模式,而'LOS ANGELES'则不符合这个模式

LIKE

匹配一个模式来找出我们要的数据记录

语法:SELECT "字段" FROM "表名" WHERE "字段" LIKE{模式};

SELECT * FROM store_info WHERE Store_Name like '%os%';

SELECT * FROM store_info WHERE Store_Name like 'Lo%';

SELECT * FROM store_info WHERE Store_Name like '_o%n';

ORDER BY

按关键字排序

语法:SELECT "字段" ROM "表名" [WHERE "条件"] ORDER BY "字段"[ASC,DESC]; #ASC是按照升序进行排序的,是默认的排序方式.

#DESC是按降序方式进行排序.

SELECT Store_Name,Sales,Date FROM store_info ORDER BY Sales DESC;

SELECT Store_Name,Sales,Date FROM store_info ORDER BY Sales;

函数

数学函数

函数 含义
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) 返回小于或等于 x 的最大整数
greatest(x1,x2.....) 返回集合中最大的值
least(x1,x2..........) 返回集合中最小的值

select abs(-1),rand(),mod(5,3),power(2,3),round(1.89);

select round(1.8937,3),truncate(1.235,2),ceil(5.2),floor(2.1),least(1.8,3,6,2.1);

聚合函数

函数 含义
avg() 返回指定列的平均值
count() 返回指定列中非 NULL 值的个数
min() 返回指定列的最小值
max() 返回指定列的最大值
sum(x) 返回指定列的所有值之和

SELECT avg(Sales) FROM store_info;

select count(name) from info;

SELECT count(DISTINCT name) FROM in

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值