常用的SQL数据库中都提供了许多常用的操作函数,以减少开发者的工作量,MySQL也不例外,也提供了诸如:字符串函数、日期函数、数学函数、系统信息函数等等,以下为日常开发中可能会经常用到的MySQL函数
select concat('1',2,'abc')
SELECT concat(t.id,',',t.created_time)
FROM
t_demo t
WHERE
t.id = 1
select concat(trim(' abc ab '),'123')
select LENGTH('12345')
select SUBSTRING('12345', 1),SUBSTRING('12345', 2,1)
select REPLACE('12345', '23', 'ab');
select REVERSE('12345');
select lower('ABc');
select upper('ABc');
select now() 获取日期+时间
select sysdate() 和now()效果相同,mssql中使用select sysdate
select curtime() 获取当前时间
select abs(-10) 绝对值
select mod(-10,11) 取余
select ceiling(5.11) 天花板函数
select floor(5.11) 地板函数
select ROUND(5.11) 四舍五入
select max(t.score) from t
select min(t.score) from t
select sum(t.score) from t
select avg(t.score) from t
select count(t.id) from t
CREATE PROCEDURE myfunc(in order_number int) -- 定义一个存储过程
BEGIN -- 开始标志
declare count_index int default 0; -- 定义局部变量
declare result varchar(1000);
declare order_index int default 0;
select count(id) into count_index from t where t.id > 10;
select count_index; -- 将会返回结果
-- if-else-if的使用
if count_index < 10 then
set result := '小于10个';
elseif count_index >= 10 and count_index < 20 then
set result := '在10到20个之间';
else
set result := '超过20了';
end if;
select result;
-- case-when的使用
case
when count_index < 10 then
set result := 'when 小于10个';
when count_index >= 10 and count_index < 20 then
set result := 'when 在10到20个之间';
else
set result := 'when 超过20了';
end case;
select result;
-- while循环打印订单号
while length(order_number)>order_index do
set order_index := order_index+1;
select order_number;
end while;
END ; -- 结束标志