mysql查询分几个阶段_Mysql查询——学习阶段

本文探讨了在大数据量场景下代码逻辑简洁性和SQL效率的重要性。通过实例展示了如何编写高效的SQL查询,包括查询特定字段、去除重复项、使用条件运算符、范围查询、集合查询、LIKE操作符、NULL处理、排序及聚合函数的运用。强调了HAVING子句与WHERE子句的区别,并总结了SQL查询的执行顺序。
摘要由CSDN通过智能技术生成

1、开篇

搞开发的都知道,当数据量很大的时候,我们的代码逻辑的简单性就显得十分重要,否则处理起来就需要花费相当多的时间。另外还有一个地方需要注意的是我们写的sql语句。

一个拥有多年开发的资深开发者可以相比于刚从事开发经验不足的开发者写的sql效率要高些,数据量小基本没有什么关系。但是假如你在拥有高数据的BAT,或者国家企业,那这

条sql的差异就明显就大了。所以,能写出好的sql是相当重要的。

2、简单的查询sql

(1)select * from pj_appoint_order;    查询所有的约单,*表示这个表中所有的字段

(2)select id,user_name,user_phone from pj_appoint_order;    查询所有约单中id,user_name,user_phone这几个字段。

当然你可以改变这个表中查询出来表中字段的名称,例如:

select id as '编号',user_name as '用户名称',user_phone as '用户手机' from pj_appoint_order;

select id  '编号',user_name  '用户名称',user_phone  '用户手机' from pj_appoint_order;

有as和没有都可以。

(3)select distinct user_name from pj_appoint_order; distinct去掉重复的用户名(保留一个)

(4)select * from pj_account where score>88;查询用户积分大于88的用户,不包含88.

当然,在我们mysql中

大于号:>

小于号:<

大于等于>=

小于等于<=

不等于 != 或者 <>

(5)select * from stu where type ='超级会员' and score >90;   查询用户为超级会员并且积分大于90的用户所有信息

(6)表达式的学习:  not , or  ,in , between  and

select * from pj_account where score between 75 and 85;

select * from pj_account where not type='超级会员';

select * from pj_account where type!='超级会员';

select * from pj_account where score = 70 or score=81 or score=59;  查询用户积分为70或者81或者59的用户信息

---------------------------------查询面积为400或者500或者600的约单----------------------------------------------------------

SELECT * FROM pj_appoint_order WHERE acreage IN(400,500,600);

SELECT * FROM pj_appoint_order WHERE acreage = 400 OR acreage=500 OR acreage=600;

(7)like 与 通配符的使用

_:占一个字符。

%:多个字符进行匹配

SELECT * FROM pj_appoint_order WHERE user_name LIKE '%哥%'

SELECT * FROM pj_appoint_order WHERE user_name LIKE '_哥_'

(8)一般而言查询值为null的情况比较少,但是也是会存在的,查询null需要用is

select * from pj_account where score is null;

select * from pj_account where score is not null;

(9)排序 order by   mysql默认的是升序排序(asc)

select * from pj_account order by id desc

(10) 聚集函数。聚合函数不对null进行操作

count()//统计数量

sum()//求和

max() //最大

min()//最小

avg()//平均

select count(*) from pj_account; 查询用户表中有多少条记录,其他的类似。可以自己试试。

select round( avg(ifnull(score,0)),2) from pj_account; 求平均成绩。

解析:如果积分是null则赋值为0,然后求平均值,求完平均值后保留两位小数。

(11) where 与 having 区别

1.     having  对聚集函数进行条件筛选 ,如果最后的条件是 聚集函数 那么我们就用 having

2.  具体的某一条数据

综合我们学习的查询相关关键字:

书写的顺序:

select,from,where,group by,having,order by;

执行的顺序:

from:找到我们要操作的表。

where,group by,having, 相当与我们的条件

select :查询

order by:排序。

3、一份耕耘一份收货!兢兢业业,必有丰收。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值