Mysql学习——字符串日期数学流程控制等单行函数

 /*
 	分类:
 		单行函数:
 			eg: concat,length,ifnull
 		分组函数:
 			做统计使用,也叫聚合函数
 */
 
 ## 字符函数:
 
 # length: 计算字符串字节数
 # tips: 一个汉字占三个字节
 SELECT LENGTH("h好");
 
 # concat: 连接多个字段成为一个字符串
 SELECT CONCAT("111","???",122);
 
 # upper,lower: 转化内英文字符大小写
 SELECT UPPER("ZhangZelong");
 SELECT LOWER("ZhangZelong");
 
 # substr: 截取子字符串
 # 重载一:start
 # tips:	第一个是第几个字,这里一个汉字算一个
 SELECT SUBSTR('罗小黑战纪',5);
 # 重载二:start,length
 SELECT SUBSTR('罗小黑战纪',2,2);
 
 # instr: 返回子串在原字符串中的起始索引,没有返回0
 SELECT INSTR('阿能拐阿能','??');
 
 # trim: 去掉字符串前后的字符
 # 重载一:默认去空格
 SELECT LENGTH(TRIM('     hello    '));
 # 重载二:去掉指定字符
 SELECT TRIM('a' FROM 'aaaaaazerlenzhangaaaaa');
 
 # lpad:使用指定字符在左侧填充到指定长度
 SELECT LPAD('hello',10,'*');
 SELECT RPAD('汉字',10,'*');
 
 # replace:替换
 SELECT REPLACE('hello,hello,ello,llo,lo,o','llo','@');
 
 
 ## 数学函数
 
 # round: 
 # 重载一:四舍五入
 SELECT ROUND(-1.2);
 # 重载二:保留指定位数小数
 SELECT ROUND(1.2659,2);
 
 # ceil,floor: 向上/下取整
 SELECT CEIL(1.2);
 SELECT FLOOR(1.2);
 
 # truncate: 截断,第二参数是保留几位小数
 SELECT TRUNCATE(1.8,0);
 
 # mod: 取余  
 # tips:	a-a/b*b,所以余数符号一定和被除数一致
 SELECT MOD(-10,-3);
 
 
 ## 日期函数
 
 # now 返回当前日期加时间
 SELECT NOW();
 
 # curdate:返回当前日期不包含时间
 SELECT CURDATE();
 
 # curtime(): 返回当前时间不包含日期
 SELECT CURTIME();
 
 # year,month,day,hour,minute,second: 获取一个日期中的年月日,时分秒,
 SELECT YEAR("2000-03-19 18:23:48");
 SELECT MONTH("2000-03-19 18:23:48");
 SELECT DAY("2000-03-19 18:23:48");
 SELECT HOUR("2000-03-19 18:23:48");
 SELECT MINUTE("2000-03-19 18:23:48");
 SELECT SECOND("2000-03-19 18:23:48");
 SELECT MONTHNAME("2000-03-19 18:23:48");# 获取月份英文名
 
 # str_to_date: 将字符串转化成日期
 SELECT STR_TO_DATE('19-3-1999','%d-%c-%Y');
 
 # date_format: 将日期按格式输出
 SELECT DATE_FORMAT(NOW(),'%Y年%c月%d日');
 
 # 比较日期间隔,用前面的减去后面的,返回天数
 SELECT DATEDIFF(NOW(),'2000-03-19');
 
 
 ## 其他函数
 
 # version:查看当前版本号
 SELECT VERSION();
 
 # database:当前数据库
 SELECT DATABASE();
 
 # user: 当前用户
 SELECT USER();
 
 # MD5: 加密字符串
 SELECT MD5("hello");
 
 # password: 返回字符串密码形式
 SELECT PASSWORD("hello");
 
 
 ## 流程控制函数
 
 # if 类似条件表达式 
 SELECT IF(10>5,'大','小'); 
 SELECT IF(commission_pct IS NULL,'没奖金,hhh','居然有奖金')
 FROM employees;
 
 # case 语句
 
 SELECT salary 原始工资,
 		  department_id,
 		  CASE department_id
 		  WHEN 30 THEN salary*1
 		  WHEN 40 THEN salary*2
 		  WHEN 50 THEN salary*3
 		  ELSE salary
 		  END AS "新工资"
 FROM employees;
 		  
 
 SELECT salary,
 		  CASE 
 		  WHEN salary> 20000 THEN 'A'
 		  WHEN salary> 15000 THEN 'B'
 		  WHEN salary> 10000 THEN 'C'
 		  ELSE 'D'
 		  END AS "级别"
 FROM employees;
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值