• 【Mysql】内置函数


    内置函数

    内置函数一般放在SQL语句里帮助我们执行一些逻辑.


    日期函数

    函数名称描述
    current date()获取当前日期
    current time()获取当前时间
    current_timestamp()获取当前时间戳
    date(datetime)返回 datetime 参数的日期部分
    date_add (date, interval dvalue_type)在date中添加日期或时间,interval后的数值单位可以是:year minute second day
    date_sub (date, interval dvalue_type)在date中减去日期或时间,linterval后的数值单位可以是:year minute second day
    datediff (datel, date2)两个日期的差,单位是天
    now()当前日期时间

    使用例子:

    image-20221014121729658


    image-20221014121742630


    image-20221014121752302


    案例1:创建一张表,记录生日信息

    image-20221014122448759


    案例2:创建一个留言表

    image-20221014122936519

    需求1:显示所有留言信息,发布日期只显示日期,不用显示时间 -> 很容易想到要用date函数

    • date(datetime)返回 datetime 参数的日期部分

    需求2:请查询在10分钟内发布的帖子

    • 做法:给发布时间添加上10分钟,然后和当前时间做比较,如果>=当前时间,说明就是10分钟内发布的

    • 所以此时需要使用:date_add 和now函数

    image-20221014123600801


    字符串函数

    字符串函数说明
    charset ( str )获取字符串字符集
    concat ( string2 [, ⋯] )拼接字符串
    length ( string )返回字符串的字节数
    replace ( str, search_str, replace_str )将字符串中的 replace_str 替换 search_str
    substring ( str, position [, length] )从字符串的postion位置开始截取length个字符
    ucase ( string )转换成大写
    lcase ( string )转换成小写
    instr ( string, substring )返回substring在string中出现的位置,没有返回0
    left ( string, length )从string中的左边起截取length个字符
    strcmp ( string1.string2 )逐字符比较两字符串大小
    ltrim ( string ) rtrim ( string ) trim ( string )去除前空格或后空格

    例子

    image-20221014153942261

    image-20221014154019734


    image-20221014154150293


    image-20221014154355541


    image-20221014154531386


    length函数返回字符串长度,以字节为单位,如果是多字节字符则计算多个字节数, 如果是单字节字符则算作一个字节,比如: 字母,数组算作一个字节,中文表示多个字节数(与字符集编码有关)

    image-20221014162306728


    案例:

    1)截取EMP表中ename字段的第二个到第三个字符: select substring(ename, 2, 2), ename from emp;

    2)以首字母小写的方式显示所有员工的姓名:

    image-20221014155503768


    数学函数

    数学函数描述
    abs ( number )绝对值函数
    bin ( decimal number )转换二进制
    hex ( decimalNumber )十六进制
    conv ( number, from_base, to_base )指定进制转换
    ceiling ( number )向上取整
    floor ( number )向下取整
    format ( number, decimal_places )格式化,保留小数位数
    rand ()返回随机浮点数,范围 [ 0.0, 1.0 )
    mod ( number, denominator )取模,求余

    例子:

    image-20221014161542965


    image-20221014161737958


    区分向上取整和向下取整

    向上取整: 向数轴中向正无穷方向取整 向下取整:向数轴中向负无穷方向取整


    其他函数

    其他函数描述
    user ()返回当前用户
    md5 ( string )对字符串进行md5摘要,摘要后得到一个32位字符串
    database ()返回当前所在数据库
    password ( string )对内容进行加密
    ifnull ( string1, string2 )如果string1不为null则返回string1,否则返回string2,如果两个都是null,返回null

    image-20221014161934977

    md5形成的是定长的字符串, 同样的内容形成的摘要是一样的


    一般在mysql中,保存用户密码不要出现明文,使用摘要的好处:

    • 1.mysql里面没有明文密码,即使是公司内部的DBA(数据库管理员),也无法查看密码
    • 2.摘要密码是定长的!(存储密码的数据库表好设计)

    刚注册账号的时候,数据库把密码加密成定长字符串保存到数据库中,之后再次登录只需要再次加密用户输入的密码与数据库中存的字符串比较即可判断密码是否正确

  • 相关阅读:
    【JavaScript】DOM增删改的操作
    对This 的指向的理解?
    HTML期末大作业:基于HTML+CSS+JavaScript新能源汽车资讯门户网站
    为什么要学习----------[澳大利亚]安德鲁·马修斯
    Java泛型总结
    我这两年的CSDN博客创作经历
    Python 项目一 数据可视化 01
    电子统计台账:处理时间与名称所在行有交错的流水账格式
    springboot多模块下swaggar界面出现异常(Knife4j文档请求异常)或者界面不报错但是没有显示任何信息
    YOLO物体检测-系列教程2:YOLOV2整体解读
  • 原文地址:https://blog.csdn.net/chuxinchangcun/article/details/127942262