MySQL的查询

基础函数

概述:MySQL提供了很多函数,可以快速操作数据。

各种函数的使用

–基本函数:lower \ upper \ lenght \ substr \ concat \ replace \ ifnull \ uuid

–小数的函数: round \ ceil \floor

​ --**日期的函数:**now \ year \month \ day \ hour \ minute \ second \ 转义字符

lower:

select lower(ename) from emp; 数据转小写

upper:

select upper(ename) from emp; 数据转大写

length:

select length(ename) from emp ; 数据的长度

substr:

select ename ,length(ename,1,3) from emp; 截取【1-3】

concat:

select ename,concat(ename,‘123’) from emp ; 拼接数据

replace:

select ename , replace(ename,‘a’,‘666’) from emp ; 把a字符偷换成666

ifnull :

select ifnull (comm ,13) comm from emp ; 判断,如果comm是null,用13替换

round:

select comm ,round (comm) from emp; 直接四舍五入取整

round:

select comm, ceil (round,1) from emp; 四舍五入并保留一位小数

ceil floor:

select comm , ceil(comm),floor(comm) from emp ; ceil 向上取整,floor向下取整

uuid:

select uuid() 返回uuid

now:

select now() 年与日,时分秒

select curdate()年与日

select curtime() 时分秒

转义字符:

’作为sql语句符号,内容中出现单撇就会乱套,进行转义即可

select ‘ab’cd’ – 单引号是一个SQL语句的特殊字符

select ‘ab’cd’ --数据中有单引号时,用一个\转义变成普通字符

条件查询

distinct \ where \ like \ order by \ limit

distinct:

使用distinct关键字,去除重复的记录行

select distinct loc from dept; # 给字段的值去重

where:

注意:where中不能使用列别名!!

select * from emp where 字段名=字段值;
select * from emp where ename='jack' ;#查ename是jack的数据
		#查询id>200的所有数据的名字和工资总和
		select sal,comm,ename,sal+ifnull(comm,0) from emp where id>200
#SQL执行的顺序:from > where > select 

like:

模糊查询

select * from emp where ename like 'a';#条件相当于ename='a'
		select * from emp where ename like '%a%';#中间包含着a
		select * from emp where ename like 't%';#以t开始后面有几个都行
		select * from emp where ename like '%y';#以y结束前面有几个都行

#between and :

select * from emp where sal>8000 and sal<20000
			#过滤工资在[8000,20000]的
			select * from emp where sal between 8000 and 20000#[8000,20000]

#order by 排序

select * from emp order by sal #默认升序,按数字的从小到大
			select * from emp order by comm #默认升序,null放最上面
			select * from emp order by ename #默认升序,按自然顺序
			select * from emp order by hiredate #默认升序,按自然顺序
			select * from emp ORDER BY sal desc #默认是升序,desc降序


#limit 分页技术

			select * from emp limit 3 #只取前三条
​			select * from emp limit 1,3 #从第二条开始取,取总共3条
​			select * from emp limit 2,2 #从第三条开始取,取总共2条
​			#order by 排序
​			select * from emp order by sal #默认升序,按数字的从小到大
​			select * from emp order by comm #默认升序,null放最上面
​			select * from emp order by ename #默认升序,按自然顺序
​			select * from emp order by hiredate #默认升序,按自然顺序
​			select * from emp ORDER BY sal desc #默认是升序,desc降序


SQL的执行顺序?

from > where > order by > limit

聚合函数

–对一列的结果进行运算
–count \ sum \avg \max \min

select * from emp 
			select count(*) from emp #统计emp的记录总数-低效
			select count(1) from emp #高效
			select count(id) from emp #高效
			select sal from emp 
			select max(sal) from emp #获取sal的最大值
			select min(sal) from emp #获取sal的最小值
			select avg(sal) from emp #获取sal的平均值
			select sum(sal) from emp #获取sal的求和
			#获取每个部门的,最高薪
			select deptno,min(sal),max(sal) from emp group by deptno
			#分组--聚合函数以外的列都需要分组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值