1、if语句
1.1、在查询中使用
基本语法:if(条件,为真结果,为假结果)
select * ,if(Sage>=22,'年龄 > = 22','年龄< 22') as 判断 from student;
1.2、复杂语句中使用(函数/存储过程/触发器)
基本语法:
if 条件表达式 then
语句1
else
语句2
end if;
2、while语句
基本语法
while 条件 do
要循环执行的代码;
end while;
当为某些特定结构进行命名时,为了可以在其他地方也能使用这个while时,加一个结构标识符,可以再次使用之
标识名字:While 条件 do
循环体
End while [标识名字];
mysql中没有continue和break,用 iterate 和 leave 代替
3、内置函数
在mysql中,函数的使用是在select中使用的,格式是:select 函数名(参数表);
3.1、字符串函数
char_length():判断字符串的字符数
length():判断字符串的字节数(与字符集)
concat():连接字符串
instr():判断字符在目标字符串中是否存在,存在返回其位置,不存在返回0
lcase():全部小写
left():从左侧开始截取,直到指定位置(位置如果超过长度,截取所有)
ltrim():消除左边对应的空格
mid():从中间指定位置开始截取,如果不指定截取长度,直接到最后
--举例
select lcase('DOTA2') ;
3.2、时间函数
now():返回当前时间,日期 时间
curdate():返回当前日期
curtime():返回当前时间
datediff():判断两个日期之间的天数差距,参数日期必须使用字符串格式(用引号)
date_add(日期,interval 时间数字 type):进行时间的增加
unix_timestamp():获取时间戳
fom_unixtime():将指定时间戳转换成对应的日期时间格式
3.3、数学函数
abs():绝对值
ceiling():向上取整
floor():向下取整
pow():求指数,谁的多少次方
rand():获取一个随机数(0-1之间)
round():四舍五入函数
3.4、其他函数
md5():对数据进行md5加密(mysql中的md5与其他任何地方的md5加密出来的内容是完全相同的)
version():获取版本号
databse():显示当前所在数据库
UUID():生成一个唯一标识符(自增长):自增长是单表唯一,UUID是整库(数据唯一同时空间唯一)
4、自定义函数
4.1、创建函数(俺也不懂)
函数定义基本语法:
修改语句结束符
create function 函数名(形参) returns 返回值类型
begin
//函数体
Return 返回值数据; //数据必须与结构中定义的返回值类型一致
end
语句结束符
修改语句结束符(改回来)
主要是网上说得乱七八糟也没说某些字段是什么得,就直接举个例子
--创建一个a*b的函数
delimiter $$--这是啥?
create function functest(a int,b int) returns int
begin
return a*b;
end
$$--啥玩意?
delimiter;--干嘛用的?
4.2、查看函数
查看函数的创建语句:show create function 函数名字;
4.3、删除函数
删除函数:drop function 函数名;
4.4、注意事项
- 1、 自定义函数是属于用户级别的:只有当前客户端对应的数据库中可以使用
- 2、 可以在不同的数据库下看到对应的函数,但是不可以调用
- 3、 自定义函数:通常是为了将多行代码集合到一起解决一个重复性的问题
- 4、 函数因为必须规范返回值:那么在函数内部不能使用select指令:select一旦执行就会得到一个结果(result set):select 字段 into @变量;(唯一可用)
4.5、综合案例
写出一个从1开始,直到用户传入的对应的值为止,自动求和的函数
delimiter $$--这是啥?
create function functest2(a int) returns int
begin --函数开始
--声明变量名
declare i int default 1;
declare sum int default 0;--定义i=1,sum=0
while i<=a--while(i<=a)
do
set sum=sum+i;
set i=i+1;--(sum=sum+i;i++;)
end while;
return sum;--返回值
end
$$
delimiter;
select functest2(20) ;
4.6、变量作用域
用@可以进行全局变量,其他库也能识别