mysql初级学习(三)

字符串函数

---数据表当中的某些信息转换为大写    小写select lower('HELLO')
select upper('hello')

---左填充
select lpad('ename',20,'*') from emp;
---右填充
select rpad('ename',20,'$') from emp;
---去掉前后的空格
SELECT trim('               11 1   ')


---重复字符串
SELECT repeat('aa',8)
---替换字符串
SELECT replace(ename,'o','*') from emp

---字符串截取函数
---从字符串左截取,截取的长度为3
select left('hello word',3);   
---从字符串右边截取,截取的长度为3
select right('hello word',3);  
---substring(字符串,开始的位置,截取长度)  从0开始
select substring('hello word',4,5)

---字符串拼接
select concat('hello' ,'word','mysql')
---concat_ws(拼接符,字符串1,字符串2)
select concat_ws('-','aa','bb','cc','dd')

---字符串信息
select length('1234567890');
---locate(字符串1,字符串2) 返回字符串1在字符串2中的位置
select locate('4','1234567890')

数字函数

---round(第一个参数:原数值,第二个参数:四舍五入的小数后位置) 第二个参数可有可无  
select round(4.33733,2);

SELECT CEIL(4.1);  进位
SELECT floor(4.9);  向下保留整数

---和第一个函数round函数参数用法一致,但是不考虑四舍五入
SELECT TRUNCATE(12.33599,2) 

SELECT PI(); 圆周率
SELECT pow(2,3);
SELECT sqrt(64);

---随机数(0-1)
SELECT RAND();

时间函数

---当前日期
SELECT ==NOW()==			2020-08-06 09:37:01
SELECT CURDATE();		2020-08-06
SELECT CURTIME();		09:33:55

select ==year(curdate());==
select month(curdate());
select day(curdate());
SELECT hour(NOW());
SELECT minute(NOW());
SELECT SECOND(NOW());
---传回季度
SELECT quarter(NOW());


---==extract()==  可选择任何,等价于上面的那些操作
SELECT extract(year from now());
SELECT extract(quarter from now());
SELECT extract(hour from now());

---[返回1-7、、、星期日、星期一、。。。星期日=1]
SELECT dayofweek(NOW());  
--- [==返回今天是今年的第几天==]
SELECT dayofyear(NOW());  
---**==计算时间差==
SELECT ==datediff('2021-1-1',NOW());==

---==不常用==
---**之后时间
---日期,天数  算多少天数的日期
SELECT adddate(NOW(),30);  30天之后为2020-09-05 09:53:04
SELECT adddate(NOW(),interval 5 year);   2025-08-06 09:54:30
---之前的时间
---获取5天之前的时间
SELECT subdate(NOW(),5);  5小时之前为2020-08-01 19:25:46
SELECT subdate(now(),interval 5 hour);

流程控制函数

—流程控制函数,简单的说和三目运算符类似,第一个参数:判断条件,第二个参数:成立执行,第三个参数:不成立的时候执行

select if(5>4,'aaa','bbb');
use pythonbs
select ename,if(sex='女','小姐姐','小哥哥')  称呼  from emp

多条件选择

CASE when 条件 THEN 运算式
when 条件 then 运算式
ELSE 运算式
end 名称

---语句[sal>=6000,sal>=4000,]
SELECT ename,sal ,
case when sal>=6000 then  '白领'
		when sal >=4000 then '蓝领'
		else '其他'
end 等级
from emp

聚合函数

---求和
SELECT sum(sal) from emp;
---最大值
SELECT max(sal) from emp;
---最小值
SELECT min(sal) from emp;
---平均值
SELECT avg(sal) from emp;
---出现的次数
SELECT count(ename) from emp;

高级查询

group by…HAVING…
—1.查询每个部门的平均工资 【思路:按照部门分类,平均数聚合函数实现求每一个部门的平均工资】
—group by 查询列表只能出现分组关键字和聚合函数

select avg(sel) from emp group by deptno

—2.查找每个部门女生的的平均工资
—【先查找女生 然后按照部门分类】

select  deptno 部门,avg(sal)  平均薪资  from emp where sex='女' group by deptno

—3.查询平均工资高于4000的
—注意:having 必须在group by 之后出现,判断条件仅仅可以为:完成分组后可用的条件

select deptno,avg(sal) from emp 
	group by deptno
	 HAVING avg(sal)>4000;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值