这篇文章主要讲解mysql常见函数的用法和意义,包括字符串函数、数值函数、日期函数、流程函数。
1.字符串函数
① CONCAT(S1,S2,…,Sn):讲S1到Sn拼接为一个字符串;
② LOWER(Str):将字符串Str全部转换为小写;
③ UPPER(Str):将字符串Str全部转换为大写;
④ LPAD(Str,n,pad):用字符串pad对字符串Str左边进行填充,达到n个字符的长度;
⑤ RPAD(Str,n,pad):用字符串pad对字符串Str右边进行填充,达到n个字符的长度;
⑥ TRIM(Str):去掉字符转头部和尾部的空格;
⑦ SUBSTRING(Str,Start,Len):截取字符串Str从Start开始Len个长度的字符串。
2. 数值函数
① CEIL(X):向上取整;
② FLOOR(X):向下取整;
③ MOD(X,Y);返回X/Y的模;
④ RAND():返回0~1之间的随机数;
⑤ ROUND(X,Y):求X的四舍五入的值,并保留Y位小数;
例:生成一个6位数的随机验证码:
3. 日期函数
① CURDATE():返回当前日期;
② CURTIME():返回当前时间;
③ NOW();返回当前日期+时间;
④ YEAR(date):获取指定date的年份;
⑤ MONTH(date):获取指定date的月份;
⑥ DAY(date):获取指定date的天数;
⑦ DATE_add(date, INTERVEL expr type):返回一个指定日期/时间 date加上一个expr值之后的时间值;
⑧ DATEDIFF(date1, date2):返回两个日期之间间隔的天数;
4. 流程函数
① IF(value, t, f):如果value的表达式为true,返回t,否则返回;
② IFNULL(value1, value2): value1 が空でない場合は value1 を返し、それ以外の場合は value2 を返します。
③ CASE WHEN [val1] THEN [res1]…ELSE [DEFAULT] END: val1 が true の場合、戻り値は res1、…それ以外の場合、戻り値はデフォルト、学生情報テーブル Student とスコア テーブルの 2 つのテーブルがあります。 scのテーブルは以下の通りです
。 80点以上を優秀、60点以上を合格、それ以外を不合格と判断する必要があります。 学生テーブル:
スコア
テーブル:
SQL文は次のように書きます。
select s.*, (case when sc.score>80 then '优秀' when sc.score>60 then '及格' else '不及格' end )as 'level' from student as s
left join sc on s.SId = sc.SId;
実行結果は次のようになります。
④ CASE [expr] WHEN [val1] THEN [res1]…ELSE [defalut] END: expr の値が val1 と等しい場合は res1 を返し、それ以外の場合は値 defalut を返します。