DQL 语言 --常见函数

一、概述

  功能:类似于java中的方法好处:提高重用性和隐藏实现细节
  调用:select 函数名(实参列表);

二、单行函数

  1、字符函数
    concat:连接
    substr:截取子串
    upper:变大写
    lower:变小写
    replace:替换
    length:获取字节长度
    trim:去前后空格
    lpad:左填充
    rpad:右填充
    instr:获取子串第一次出现的索引

#1.length 获取参数值的字节个数

SELECT LENGTH('john');

SELECT LENGTH('张三丰hahaha');

SHOW VARIABLES LIKE '%char%'                                  //查看变量字符类型

扫描二维码关注公众号,回复: 11447061 查看本文章

#2.concat 拼接字符串

SELECT CONCAT(last_name,'_',first_name) 姓名 FROM employees;

#3.upper、lower  大小写转换

SELECT UPPER('john');  

SELECT LOWER('joHn');

#示例:将姓变大写,名变小写,然后拼接

SELECT CONCAT(UPPER(last_name),LOWER(first_name))  姓名 FROM employees;

#4.substr、substring

  注意:索引从1开始
截取从指定索引处后面所有字符

SELECT SUBSTR('李莫愁爱上了陆展元',7)  out_put;

截取从指定索引处指定字符长度的字符

SELECT SUBSTR('李莫愁爱上了陆展元',1,3) out_put;

#案例:姓名中首字符大写,其他字符小写然后用_拼接,显示出来

SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),'_',LOWER(SUBSTR(last_name,2)))  out_put
FROM employees;

#5.instr 返回子串第一次出现的索引,如果找不到返回0

SELECT INSTR('杨不殷六侠悔爱上了殷六侠','殷六侠') AS out_put;

#6.trim   用于去掉前后空格,也可以用于去掉指定字符(串)。

SELECT LENGTH(TRIM('    张翠山    ')) AS out_put;

SELECT TRIM('a' FROM 'aaaaaaaaa张aaaaaaaaaaaa翠山aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')  AS out_put;

#7.lpad   用指定的字符实现左填充指定长度

SELECT LPAD('殷素素',10,'*') AS out_put;

SELECT LPAD('殷素素',2,'*') AS out_put;

#8.rpad 用指定的字符实现右填充指定长度

SELECT RPAD('殷素素',12,'ab') AS out_put;

#9.replace 替换

SELECT REPLACE('周芷若周芷若周芷若周芷若张无忌爱上了周芷若','周芷若','赵敏') AS out_put;

  2、数学函数

    ceil:向上取整
    round:四舍五入
    mod:取模
    floor:向下取整
    truncate:截断
    rand:获取随机数,返回0-1之间的小数

#1.round 四舍五入

SELECT ROUND(-1.55);

SELECT ROUND(1.567,2);  #保留两位小数

#2.ceil 向上取整,返回 >= 该参数的最小整数

SELECT CEIL(-1.02);

#3.floor 向下取整,返回<=该参数的最大整数

SELECT FLOOR(-9.99);

#4.truncate 截断(小数点后保留几位)

SELECT TRUNCATE(1.69999,1); #小数点后保留一位

#5.mod取余

  实现算法:mod(a,b) :  a-a/b*b
  例子:mod(-10,-3):-10- (-10)/(-3)*(-3)=-1
  记忆:被除数是正数,余数为正数,被除数是负数,余数为负数。
SELECT MOD(10,-3);

 简写:

SELECT -10 % -3;

  3、日期函数
    now:返回当前日期+时间
    year:返回年
    month:返回月
    day:返回日
    date_format:将日期转换成字符
    curdate:返回当前日期
    str_to_date:将字符转换成日期
    curtime:返回当前时间
    hour:小时
    minute:分钟
    second:秒
    datediff:返回两个日期相差的天数
    monthname:以英文形式返回月
 
#1.now 返回当前系统日期+时间
SELECT NOW();

#2.curdate 返回当前系统日期,不包含时间

SELECT CURDATE();

#3.curtime 返回当前时间,不包含日期

#4.可以获取指定的部分,年、月、日、小时、分钟、秒

SELECT YEAR(NOW()) 年;

SELECT YEAR('1998-1-1') 年;

查询雇员出生日期:

SELECT  YEAR(hiredate) 年 FROM employees;

SELECT MONTH(NOW()) 月;

SELECT MONTHNAME(NOW()) 月;

 查询: 日,时,分,秒

SELECT CONCAT(DATE(NOW()),'_',HOUR(NOW()),'_',MINUTE(NOW()),'_',SECOND(NOW())) ;

 #5.str_to_date 将字符串通过指定的格式转换成日期

  相关参数表:

SELECT STR_TO_DATE('1998-3-2','%Y-%c-%d') AS out_put;

#查询入职日期为1992-4-3的员工信息

SELECT * FROM employees WHERE hiredate = '1992-4-3';    #这种传统的方法,如果格式变了 ‘4-3 1992’ ,则无法搜到。

SELECT * FROM employees WHERE hiredate = STR_TO_DATE('4-3 1992','%c-%d %Y');  #用这种指定格式查询,保证能查到

猜你喜欢

转载自www.cnblogs.com/lfw421935678/p/13380062.html
今日推荐