金融情报局网_中国金融门户网站 让金融财经离的更近

MySQL流程控制语句

当前位置:金融情报局网_中国金融门户网站 让金融财经离的更近>家居 > 正文  2023-08-11 01:34:49 来源:博客园


(资料图片仅供参考)

连接数据库

mysql -hlocalhost -uroot -proot

MySQL函数

函数:是指一段可以直接被另一段程序调用的程序或代码。在MySQL中会有很多的内置函数,我们只需要使用就行;

常见的字符串函数

concat函数

select concat("hello","zhangsan");返回的是:hellozhangsan

select lower("HELLo");返回的是:hello

由于企业需求的变更,企业员工的工号统一为8位数,目前不足8位数的全部在前面补上0;

update person set workno = lpad(workno,8,"0")

常见的数值函数

select ceil(1.5); // 向上取整。1.5是2select floor(1.9);// 向下取整。1select mod(5,4); // 5除以4,取余数。是1slect rand(); // 返回0-1之间的数slect round(2.43,2);// 对2.43四舍五入,保留2位小数

小例子-通过SQL语句生成一个6位数的随机验证码.

select round(rand()*1000000,0);上面这样写有问题,因为 slect rand()生成的是0-1,可能是0.053111这种的.我们按照这样补0就不会出问题了。select  lpad(round(rand()*1000000,0),6,"0");

日期函数

当前日期YYYY-MM-DD    select curdate();   返回的是 2023-08-07当前的时分秒 hh:mm:ss  select curtime();   返回的是 19:52:11当前的时间YYYY-MM-DD hh:mm:ss  select now(); 返回的是 2023-08-07 19:53:28当前的年份YYYY       select year(now()); 返回的是2023当前的月份M       select month(now()); 返回的是8 【当时是8月份】当前的年份D       select day(now()); 返回的是7   【当时是8月7号】select date_add(now(), interval 70 day); 当前时间加上70天后的时间  2023-10-16 19:59:24select date_add(now(), interval 70 month); 当前时间加上70个月后的时间  2029-06-07 20:00:19两个时间相差多少天   select datediff("2023-09-07", "2023-08-07") 输出31天 注意先是结束时间,后面是开始时间

小粒子--查询所有员工的入职天数,并根据入职天数倒序排序

select name, datediff(curdate(), ruzhikey) as "ruzhitime" from person order by ruzhitime desc;ps:别名在这里可以起到非常大的作用 

流程函数

select if(true, "ok", fail); // 返回的是 failselect ifnull("ok","default"); // 如果第一个值不为null,返回第一个值,如果第一个值是null,返回第二个值case when [val1] then [res1] ... else [default] end如果val1为true,返回res1, 否者返回 default 默认值需求描述:查询person表,员工姓名和工作地址,(如果是北京上线--显示一线城市, 其他显示二线城市)select name (case workaddress when "北京" then "一线城市" when "上海" then "一线城市" else "二线城市" end) as "工作地点" from person;需求:成绩>=85优秀; 成绩>= 60 及格;成绩>= 60 及格;select id,name (case when chengji>=85 then "优秀" when chengji >= 60 then "及格" else "不及格" end) "成绩" from "person"

关键词: