(资料图片仅供参考)
mysql -hlocalhost -uroot -proot
函数:是指一段可以直接被另一段程序调用的程序或代码。在MySQL中会有很多的内置函数,我们只需要使用就行;
select concat("hello","zhangsan");返回的是:hellozhangsan
select lower("HELLo");返回的是:hello
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位小数
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"
关键词:
质检
推荐