SQL学习记录-03----单行函数

#进阶3:排序查询
语法:

select * 查询列表
fromwhere 筛选条件
order by 排序列表

特点:
1.asc代表升序,desc代表降序
若不写,默认升序
2.order by 子句中可以支持单个字段、多个字段、表达式,函数,别名
3.order by 字句一般是放在查询语句的最后面,limit字句除外
例子:查询员工信息表,要求工资从高到底排序

SELECT * FROM emmployees ORDER  BY  salary DESC;//从高到低
SELECT * FROM emmployees ORDER  BY  salary ASC;//从底到高
//如果不写,则默认是升序

在这里插入图片描述
order by 后面可以是别名 函数 或是多个字段
例如:查询员工信息,要求先按工资身序,再按员工编号降序

SELECT *
FROM employees
ORDER BY salary ASC ,employee_id DESc;

#进阶4:常见函数:
/*
概念:类似于java的方法,将一组逻辑语句封装在方法体中,对外暴露方法名好处:
1、隐藏了实现细节 2、提高代码的重用性
调用:select 函数名(实参列表);
特点:
①叫什么(函数名)
②干什么(函数功能)
分类:
1、单行函数
如concat、length、isnull
*/

#一、字符函数

#length----获取参数值的自己个数
SELECT LENGTH(‘john’);
SELECT LENGTH(‘张三丰hahaha’);

#2.concat 拼接字符串

SELECT CONCAT(last_name,"_",first_name)姓名 FROM employees;

#3.upper、lower
#例子:将性变大写,名变小写,然后拼接

SELECT CONCAT(UPPER(last_name),LOWER(first_name))  姓名 FROM employees;

#4.substr、substring

SELECT SUBSTR('阿珍爱上了阿强',5) out_put;//这里索引从1开始
#截取从指定索引后面所有字符
SELECT SUBSTR('阿珍爱上了阿强',1,3) out_put;
#从指定索引处到指定字符长度的字符

#5.instr//返回子串第一次出现的索引,如果找不到返回0

SELECT INSTR('阿珍爱上了阿强''阿强') AS out_put

是[外链图片转存失败,源站可能有防盗返回结果值]!链机制,https://(img-tyVblog.cssmg.cn/202004071362435.png2(https://img-blg.csdnimg.cn/2020040713123463.png)]
#6.trim

SELECT LENGTH(TRIM('   小明    '))AS out_put;//这里表示去除空格
SELECT TRIM('a' FROM 'aaa小aa明aaa') AS out_put;//这里表示去除小明外面的aaaa

在这里插入图片描述
#7.lpad 用指定的字符实现左填充指定长度

SELECT LPAD('小明',5,'ab') AS a;//

#8.rpad同理

#9.replace 替换

SELECT REPLACE('阿珍爱上了阿强','阿珍','铁柱')  AS out_put;

在这里插入图片描述

二、数学函数

#round 四舍五入

SELECT ROUND(1.55;
SELECT ROUND(1.567,2);//代表小数位后2位

在这里插入图片描述在这里插入图片描述
#ceil 向上取整,返回》=该参数的最小整数

SELECT CEIL(-1.02);//返回-1

#floor 向下取整

SELECT FLOOR(-9.99);//返回-10

#truncate截断

SELECT TRUNCATE1.2323,1//小数后一位  为1.6

#MOD取余
mod(a,b):a-a/b*b

SELECT MOD(10,-3;

三、日期函数

#now 返回当前系统日期+时间

SELECT NOW();

在这里插入图片描述
#curdate 返回当前系统日期,不包含时间

SELECT CURDATE();

#curtime 返回当前时间,不包含日期

SELECT CURTIME();

#可以获取指定的部分,年月,日,小时,分钟,秒

SELECT YEARNOW()) 年;
SELECT YEAR'1999-12-19')年;
SELECT MONTH(hiredate)FROM employee;
SELECT ....同样的

四、流程控制函数

#1.if 函数: if else的效果

SELECT IF(10>5,'大','小');//类似于三目运算符
SELECT last_name,commission_pct,IF(commission_pct IS NULL,'没','有')
FROM employees;

#2.case函数的使用一:switch case 效果

case 要判断的字段或表达式
when 常量1 then 要显示的值1或语句1;
...
else 要显示的值n 或语句n;
end
例子:查询员工工资,部门号=30,显示工资为1.1倍,401.2倍,501.3SELECT salary 工资, department_id,
CASE department_id
WHEN department_id=30 THEN salary*1.1
WHEN department_id=40 THEN salary*1.2
WHEN department_id=50 THEN salary*1.3
ELSE salary
END AS 新工资
FROM employees

使用效果二
case
when 条件1 then 要显示的值1或语句
when 条件2 then 要显示的值2或语句2
。。。
else 要显示的值n或语句n
end
如果工资>20000,显示A级别
如果工资>15000,显示B级别
如果工资>10000,显示C级别
否则D级别

SELECT salary,
CASE
WHEN salary>20000 THEN 'A'
WHEN salary>15000 THEN 'B'
WHEN salary>10000 THEN 'C'
ELSE 'D'
END AS 等级
FROM employees;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值