开篇点题单行函数
概念:类似于java中的方法,将一组逻辑语句封装在方法体重,对外暴露方法的名
好处:1、隐藏了实现细节 2、提高代码的重要性
调用:select 函数名() [from 表];
特点:①叫什么②干什么
分类:
1.单行函数 如concat、length、ifnull等
2.分组函数 (当然今天这个不在这里面)
字符函数
函数名 | 功能 |
---|
length | 计算长度 |
concat | 用来字符的拼接 |
upper | 转大写 |
lower | 转小写 |
substr | 截取字符 |
instr | 该字符串第一次出现的下标 |
trim | 去掉左右的空格(默认,也可以设置去掉其他的) |
lpad | 左填充(如果超过了就要从右边截断) |
rpad | 自己想去 |
replace | 替换 |
这里是一些学习的时候相关的演示代码
SELECT LENGTH('join');
SELECT LENGTH('求求了点个赞再走吧')
SELECT CONCAT(last_name, '_', first_name) AS 姓名 FROM employees;
SELECT UPPER('join');
SELECT LOWER('All');
SELECT CONCAT(UPPER(last_name),LOWER(first_name) AS 姓名 FROM employees;
SELECT SUBSTR('我爱上了她',2) AS out_put;
SELECT SUBSTR('我爱上了她',1,1) AS out_put;
SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),'_',LOWER(SUBSTR(last_name,2))) out_put FROM employees;
SELECT INSTR('我爱上了她','了她') AS out_put;
SELECT LENGTH(TRIM(' 我爱上了她 '))) AS out_put;
SELECT TRIM('a' FROM 'aaaa我爱上了她aaaa') AS out_put;
SELECT LPAD('s',10,'*') AS out_put;
SELECT REPLACE ('我又爱上了他','他','她') AS out_put;
数学函数
函数 | 功能 |
---|
round | 四舍五入 |
ceil | 向上去整 |
floor | 向下去整 |
truncate | 截断 |
mod | 取余 |
rand | 获得随机数,返回0-1之间的小数 |
同上
SELECT ROUND (1.45);
SELECT ROUND(1.234,2);
SELECT CEIL(2.4);
SELECT FLOOR(1.2);
SELECT TRUNCATE(1.4800,1);
SELECT MOD(11,2);
日期函数
函数 | 功能 |
---|
now | 返回系统当前的日期+时间 |
curdate | 返回系统当前日期 |
curtime | 返回系统当前的时间 |
year | 截取年份 |
等等 | 截取月份,日,分,秒(用英文就是函数了) |
str_to_date | 将字符转换成日期(这个有一些格式要求的) |
date_format | 将日期转换为字符(也有格式要求) |
datediff | 日期相减返回天数 |
相关代码
SELECT NOW();
SELECT CURDATE();
SELECT CURTIME();
SELECT YEAR(NOW()) AS 年
SELECT MONTH(NOW()) AS 月;
SELECT MONTHNAME(NOW()) AS 月英文;
SELECT DAY(NOW()) AS 日;
SELECT YEAR('190-2-2') AS 年;
SELECT hiredate FROM employees;
SELECT STR_TO_DATE('1992-3-2','%Y-%c-%d') AS out_put;
SELECT DATE_FORMAT(NOW(),'%y年%m月%d日');
SELECT last_name, DATE_FORMAT(hiredate,'%m月/%d日 %y年') AS 入职日期
FROM employees
WHERE commission_pct IS NOT NULL;
SELECT DATEDIFF('2012-1-1','2011-1-1');
流程控制函数
函数 | 功能 |
---|
if | 如果第一个参数为真就返回第二个参数的值,反之返回第三个参数 |
case | 具体可以看看下面的代码 我里面有解释(我说不清楚) |
SELECT VERSION();
SELECT DATABASE();
SELECT IF(10 > 5, '大', '小');
SELECT last_name, commission_pct, IF(commission_pct IS NULL, '没', '有')
FROM employees;
SELECT salary, department_id,
CASE department_id
WHEN 30 THEN salary * 1.1
WHEN 40 THEN salary * 1.2
WHEN 50 THEN salary * 1.3
ELSE salary
END AS 新工资
FROM employees;
SELECT salary,
CASE
WHEN salary > 20000 THEN 'A'
WHEN salary > 10000 THEN 'B'
ELSE salary
END
FROM employees;
这里可以直达下面然后点赞