mysql基础函数

select  查询字段
from 表
【where 条件】——>可要可不要看情况
order by 排序列表(单个字段,多个字段之间用逗号隔开,表达式,函数,列数,及以上组合;asc升序 默认的,desc降序)

执行顺序

from 》 where 》select 》 order by

字符串函数

CONCAT(字符串,字段,…),拼接字符函数,可以写入多个字符串或是字段

SELECT CONCAT(字段,' hellow') from 表;

LENGTH(str),可写入字符串或是字段,获取字节长度

SELECT LENGTH('哈哈哈哈,嘻嘻嘻');

CHAR_LENGTH(str)可写入字符串或是字段,获取字符长度,有几个字符

SELECT CHAR_LENGTH('哈哈哈哈,嘻嘻嘻');

SUBSTRING(字符串,起始索引,截取字符长度)截取字串,起始索引是1开始;

SELECT SUBSTRING('张三丰爱上了郭襄',3,3);
SELECT SUBSTRING('张三丰爱上了郭襄',3,1);

SUBSTRING(字符串,起始索引),截取从起始索引及其之后的字符
SELECT SUBSTRING(‘张三丰爱上了郭襄’,3);重载

SUBSTR(str FROM pos FOR len),与截取字符串一样

SELECT SUBSTR('张三丰爱上了郭襄',2,4);

LEFT\RIGHT(字符串,截取长度),从左右开始截取

SELECT LEFT('asdfg',2);
SELECT RIGHT('asdfg',2);

INSTR(字符串,需要查询的第一次出现的字符串),获取字节第一次出现的索引

SELECT INSTR('三打白骨金aaa白骨金白骨金 白骨金','白骨金');

TRIM(指定需要去除的字符 from 字符串),默认的是去除前后空格,指定去除字符串前后的字符

SELECT TRIM('    哈哈哈   嘻嘻嘻');
	SELECT TRIM('x' FROM 'xxxxxx哈哈哈xx嘻嘻嘻xxxxx');

LPAD\RPAD(字符串,填充长度,填充字符),左右填充

SELECT LPAD('虚竹',10,'西夏公主');
SELECT RPAD('虚竹',10,'西夏公主');

UPPER(str)变大写字符,LOWER(str)变小写字符

STRCMP(字符串,字符串) 比较两个字符串的大小,第一个先比较若是同再比较第二个,若是不同则结束比较

SELECT STRCMP('郭襄','张三丰');  > 1
		SELECT STRCMP('张三丰','郭襄');  < -1
		SELECT STRCMP('郭襄','郭襄');    = 0

数学函数

ABS(数值),绝对值

SELECT ABS(-0.2);

CEIL(数值),向上取整

SELECT CEIL(0.2);
		SELECT CEIL(-0.2);

FLOOR(数值),向下取整

SELECT FLOOR(0.2);
SELECT FLOOR(-0.2);

ROUND(数值,小数点后保留位数),四舍五入,默认保留整数

SELECT ROUND(1.25,1);
SELECT ROUND(1.25);

TRUNCATE(数值,保留位数),截断,保留小数点后面位数

SELECT TRUNCATE(1.252423,2);

MOD(数值,数值),% 取余数

SELECT MOD(10,3);
		 SELECT MOD(-10,-3);
		 SELECT MOD(-10,3);
		 SELECT -10%-3;

日期函数

NOW(),获取当前时间日期

SELECT NOW();

CURDATE() 只获取当前日期

SELECT CURDATE();

CURTIME() 只获取当前时间

SELECT CURTIME();

DATEDIFF(日期1,日期2) 计算两个时间之差,天为单位

SELECT DATEDIFF('2021-11-15','1996-11-15');

DATE_FORMAT(时间日期,指定的格式),指定时间日期格式

SELECT DATE_FORMAT('2021.6.8 08.41.0','%Y-%m-%d %H:%i:%s');

STR_TO_DATE(str,指定格式),解析字符串为合法日期

SELECT STR_TO_DATE('6/8 2021','%m/%d %Y');只可以根据字符串中的格式来写

流程控制函数

*IF(条件,是显示的结果,否显示的结果)*

/*CASE 表达式       与swith一样;类似多重if语句的,表达式直接直接写在when之后。
	WHEN 值1 THEN 结果1 。。。。
	
	ELSE 结果
	
END
*/
/*
部门号30,工资2倍
部门号50,工资3倍
部门号60,工资4倍

	SELECT department_id,salary 旧工资,
	CASE department_id
	WHEN 30 THEN salary*2
	WHEN 50 THEN salary*3
	WHEN 60 THEN salary*4
	ELSE
		salary
	END 新工资
	FROM employees;
*/

#类似多重if语句的,表达式直接直接写在when之后。
/*
工资>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 级别
	FROM employees;
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值