• 函数


    202024

    12:10

    概念:类似于Java的方法,将一组逻辑代码语句而封装在方法体中,对外暴露方法名

    好处:1、隐藏了实现细节 2、提高了代码的重用性

    调用:select 函数名(实参列表)【from 表】

    特点: 1、叫什么(函数名)

    2、干什么(函数功能)

    分类:

    1、单行函数

    如 concat、length、ifnull等

    2、分类函数

    #一、字符函数

       

    #1.length 获取参数值的字节个数(汉字占用三个字节)

    SELECT LENGTH('john');

    SELECT LENGTH('张三丰hahaha');

       

    系统中各常量字符编码格式

    SHOW VARIABLES LIKE '%char%';

       

    结果:

    character_set_client        

    utf8        

    character_set_connection        

    utf8        

    character_set_database        

    gb2312        

    character_set_filesystem        

    binary        

    character_set_results        

    utf8        

    character_set_server        

    utf8mb4        

    character_set_system        

    utf8        

    character_sets_dir        

    F:MySQLmysql-8.0.18

       

       

    #2.concat 拼接字符串

       

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

       

    #3.upperlower

    SELECT UPPER('john');

    SELECT LOWER('joHn');

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

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

       

    #4.substrsubstring

    注意:索引从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('aa' FROM 'aaaaaaaaaaaaaaaaaaaaa翠山aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa') AS out_put;

       

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

       

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

       

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

       

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

       

       

    #9.replace 替换

       

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

       

    二、数字函数

    #1、round() 四舍五入

       

    select round(1.65);

    select round(1.6665,3);

       

    #2ceil 向上取整数 返回>=参数的整数

       

    select ceil(1,65);

    select ceil(-1.0);

       

    #3floor 向下取整数返回<=参数的整数

       

    select floor(1.65);

       

    #4、truncate 截断

       

    #5mod 取余

       

    三、时间函数

    #1、返回现在系统时间

       

    select now();

       

    #2、查询现在系统时间的年、月、日。

    select year(now()) ;

    select yearname(now()) 年;

       

    select month(now()) ;

    select monthname(now()) ;

       

    select day(now()) ;

    select dayname(now ()) ;

       

    #3、str-to-date 将字符通过指定的格式转换为日期

       

       

       

    select str_to_date('1992-3-2','%Y-%c-%d') as out_put;

       

    select * from employees where hiredate = str_to_date('1992 4-3','%Y %c-%d');

       

       

       

       

    #4date_format(),将日期转换为字符(与上面相反)

       

    4、流程控制函数

    #1if函数 if else 效果

       

    select if(16>10,'xixi','hehe');

    结果:

    xixi

       

    select last_name,commission_pct,if(commission_pct is null,'没工资,完了','有工资嘻嘻') 备注 from employees;

       

       

       

    #2、case函数 ( switch效果)

       

    格式:

    case 条件或者常量

    when 常量1 then 要执行的语句

    when 常量2 then 要执行的语句

    when 常量3 then 要执行的语句

    end

       

       

    select case 50

    when 10 then 'good'

    when 50 then 'sad'

    end

       

    #3、case 函数使用2(多重if效果)

       

    格式:

    case

    when 条件1 then 要显示的值或者语句1

    when 条件2 then 要显示的值或者语句2

    when 条件3 then 要显示的值或者语句3

    else 要显示的值或语句n

    end

       

    select concat(last_name,' ',first_name) as name,salary,

    case

    when salary>20000 then 'A'

    when salary>15000 then 'B'

    when salary>10000 then 'C'

    else 'D'

    end as 工资级别

    from employees

    order by salary desc;

       

       

      

  • 相关阅读:
    vue项目在IE中使用的一些坑(未完待续)
    Vue在IE下显示空白问题
    nginx 解决AJAX 跨域问题。
    node.js+express+jade 国际化
    Angular 2 HTTP Requests with Promise
    Windows x64编译 Qt5.7 Mysql驱动
    mysql [Err] 1215
    VS Code 调试Node.js express网站
    Node.js express 入门示例1
    build qt4.8.5 on centos7 or suse11.1
  • 原文地址:https://www.cnblogs.com/yuknight/p/12784268.html
Copyright © 2020-2023  润新知