MySQL-查询

一:普通查询

  • 查询单个字段或者多个字段
select  fieldname1,filed2 from tablename #查询字段从某个表格
  • 查询全部字段
select * from tablename #查询表中所有信息
缺点:执行效率低,语义不明确,可读性差
优点:简单
  • 字段是可以参与运算的以及起别名
select filed1<operation><number> [as] [alias] from tablename

二:条件查询

select field1,filed2 from tablename where condtion=true
运算符说明
=等于
<>或者!=不等于
<小于
<=小于等于
>大于
>=大于等于
between and两个值之间,等价于>=and<=
is null为null(is not null不为空)
and并且
or或者
in包含,相当于for,not in不在这个范围
not取非,主要用于is或in
likelike为模糊查询,支持%或者下划线匹配
%匹配任意个字符
下划线匹配一个字符
当用户查询的字符串本身含有%或者_时候,要使用ESCAPE’<转码字符>'短语进行转义
默认为"\"

注意:and的比较级高于or

  • 嵌套查询
    (1) where 后面直接表达式
    (2)where后面接谓词in引导的子查询
    (3)where后面接比较谓词ANY(SOME)/ALL引导的子查询
    在这里插入图片描述
    (4)where后面接谓词exists(not exists)引导的子查询
    (5)from后面接临时生成的表

说明:子查询不能用orderby语句

三:排序

排序采用order by子句,order by后面跟上排序字段,排序字段可以放多个,多个采用逗号连接,order by默认采用升序(asc),如果存在where子句,那么order by必须放在where后面。

select * from tablename order by field1 desc #降序排序
select * from tablename order by field1 asc #升序排序
select * from tablename order by 3 asc #升序排序(按序号排序,不推荐)
select ename hiredate from emp where hiredate=str_to_date(12-03-1981’,‘%m-%d-%Y’)

四:处理函数

select substr(ename,0,1) as ename from emp;
select trim(filed1) as trim from emp;
select ename,(sal+ifnull(comm,0))*12 as yearsal from emp;
函数作用
Lower转换小写
upper转化大写
substr取字串(被截取的字符,起始下标,截断的长度)
length取长度
trim去空格
str_to_date字符串转化为日期
date_format日期格式化
format设置千分位
round四舍五入
rand()生成随机数
Ifnull将null转为一个具体的值
sum求和
avg平均值
max最大值
min最小值

多行处理函数会自动过滤null和空行

五:去重

select distince filed1 from emp1;

作用:将查询结果中的某一字段的重复记录去掉
用法:distinct字段名或者distinct 字段名1,字段名2…
distinct 字段A:去除和字段名A相同的记录
distince 字段A,字段B:去除与字段A和字段B同时相同的记录
注意:distinct只能出现在所有字段最前面,后面如果有多个字段及为多字段去重

六:分组查询
作用:通过哪个或者哪个字段进行分组

七:having
必须和groupby联合使用

select job,avg(sal) as avgsal from emp group by job having avgsal>2000

与where区别:where过滤在group by之前,having过滤在group by 之后.

八:union
将两个sql语句相加

select ename,job from emp where job='manage'
union
select ename,job from emp where job='salary'

九:limit

limit(m,n)
m:记录开始的index,默认为0,表示第一条记录
n:只从m+1开始,取n条
分页:limit(pageNo-1)*pageSize,pageSize

十:执行顺序
(1)from:将硬盘上的表文件加载到内存
(2)where:将符合条件的数据摘取出来,生成一张临时表
(3)groupby:对生成的临时表进行分组.
(4)having:过滤掉group by生成的不符合条件的临时表
(5)select:对临时表进行整列读取
(6)order by:对select生成的临时表,进行重新排序生成新的临时表
(7)limit:对最后生成的临时表的数据行进行截取.

十一: 其他

函数功能
IF(value,t,f)如果value为真,返回f,否则返回f
IFNULL(value1,value2)如果value不为空,则返回value,否则返回value2
CASE WHEN [value] then [result1]…else [default] END如果value为真,返回result1,否则返回default
CASE [expr] WHEN [value] then [result1]…else [default] END如果expr等于value,返回result1,否则返回default
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值