• MySQL函数和过程(三)


    --加密32位字符
    select md5('123456')

    --获取字符串的长度(一个中文三个长度)
    select LENGTH('呵呵')

    --获取字符串字符个数
    select CHAR_LENGTH('呵呵')

    --删除前导空格
    SELECT CHAR_LENGTH(ltrim(' mysql'))

    --删除前导空格
    SELECT LTRIM(' mysql')

    --删除后续空格
    select rtrim('mysql ')

    --同时删除前后端空格
    SELECT TRIM(' mysql ')

    --删除后导某些字符
    SELECT TRIM(TRAILING'@@'from '@@mysql@@')

    --删除前导某些字符
    SELECT TRIM(LEADING'@@'from '@@mysql@@')

    --字符串截取(从1开始)
    SELECT SUBSTRING('mysql database' ,3,3)

    --字符串替换('单引号别忘了')
    SELECT REPLACE('mysql database','a', 'A')

    --字符串反转
    SELECT REVERSE('mysql')

    --返回n个前导空格构成的字符串
    SELECT LENGTH(SPACE(4))

    --字符串拼接
    SELECT CONCAT('msql',SPACE(2),'database')

    --使用制定的字符连接字符串
    SELECT CONCAT_WS(' ','mysql','database')

    --数字格式化
    SELECT FORMAT(31415.926,2)

    --字母转大写
    SELECT UPPER('java')

    --字母转小写
    SELECT LOWER('JAVA')

    --获取左边字符
    SELECT LEFT('java',2)

    --获取右侧字符
    SELECT RIGHT('java',2)

    --比较字符串(相等为0,前者大与后者为1,后者大与前者为-1)
    SELECT STRCMP('A','B')

    --取绝对值
    SELECT ABS(-3);

    --进一取整
    SELECT CEIL(3.14)

    --舍一取整
    SELECT FLOOR(3.14)

    --求商
    SELECT 5 DIV 2

    --求模
    SELECT MOD(5,2)

    --幂运算
    SELECT POW(5,5)

    --四舍五入
    SELECT ROUND(3.14)

    --取圆周率
    SELECT PI()

    --截断数字
    SELECT TRUNCATE(PI(),2)

    --返回0~1之间的随机数
    SELECT RAND()

    --获取当前时间
    SELECT NOW()

    --获取当前日期
    SELECT CURRENT_DATE()

    --获取当前时间
    SELECT CURRENT_TIME()

    --返回日期date加上间隔时间int的结果
    SELECT DATE_ADD(NOW(),INTERVAL 2 DAY)

    --返回日期date减去间隔时间int的结果
    SELECT DATE_SUB(NOW(),INTERVAL 2 DAY)

    --求日期之差('单引号别忘了')
    SELECT DATEDIFF('2019-07-31','2019-07-29')

    --日期格式化
    SELECT DATE_FORMAT(NOW(),'%Y%m%d %H%i%s')

    -- 查看当前库所有自定义函数
    SELECT * FROM MYSQL.PROC WHERE 1 = 1 AND DB = 'test' AND TYPE = 'FUNCTION';

    -- 查看当前库某个自定义函数的定义
    SHOW CREATE FUNCTION GET_STUDENT_NAME;

    -- 删除某自定义函数
    DROP FUNCTION GET_STUDENT_NAME;

    -- 创建自定义函数
    DELIMITER ;;
    CREATE FUNCTION GET_STUDENT_NAME(vsno CHAR(6))
    RETURNS VARCHAR(20)
    BEGIN
    DECLARE rname VARCHAR(20) DEFAULT '';
    SELECT SNAME INTO rname FROM T_STUDENT WHERE SNO = vsno;
    RETURN rname;
    END
    ;;
    DELIMITER ;

    -- 使用自定义函数
    SELECT GET_STUDENT_NAME('S20165');

    -- 查看当前库有所有自定义过程
    SELECT * FROM MYSQL.PROC WHERE 1 = 1 AND DB = 'test' AND TYPE = 'PROCEDURE';

    -- 查看当前库某个自定义过程的定义
    SHOW CREATE PROCEDURE PROC_GET_STUDENT_NAME;

    -- 删除存储过程
    DROP PROCEDURE PROC_GET_STUDENT_NAME;

    -- 创建存储过程
    DELIMITER ;;
    CREATE PROCEDURE PROC_GET_STUDENT_NAME(IN vsno CHAR(6), OUT rname VARCHAR(20))
    BEGIN
    SELECT SNAME INTO rname FROM T_STUDENT WHERE SNO = vsno;
    END
    ;;
    DELIMITER ;

    -- 调用存储过程
    call PROC_GET_STUDENT_NAME('S20165', @rname) ;
    SELECT @rname;

    --数据库关联
    SELECT * FROM a a
    INNER JOIN b b
    ON a.id=b.id
    WHERE a.id=1

     

    --在数据库创建账号密码表
    CREATE TABLE sys_user (
    id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(20) NOT NULL,
    PASSCODE CHAR(32) NOT NULL,
    status TINYINT UNSIGNED NOT NULL DEFAULT '1'
    );

     

                      

    函数名

    描述

    LENGTH(str)

    获取字符串长度

    CHAR_LENGTH(str)

    获取字符串的字符个数

    LTRIM(str)

    删除前导空格

    RTRIM(str)

    删除后续空格

    TRIM([{both | leading | trailing} [remstr] from] str)

    删除前导和后续空格

    SUBSTRING(str, pos[, len])

    字符串截取

    REPLACE(str, from_str, to_str)

    字符串替换

    REVERSE(str)

    字符串反转顺序

    SPACE(n)

    返回由n个空格构成的字符穿

                       

                     

    函数名

    描述

    CONCAT(column | str)

    字符连接

    CONCAT_WS(separator, str1, st2, …)

    使用指定的分隔符进行字符连接

    FORMAT(X, D[, locale])

    数字格式化

    LOWER(column | str)

    转化成小写字母

    UPPER(column | str)

    转化为大写字符

    LEFT(str, len)

    获取左侧字符

    RIGHT(str, len)

    获取右侧字符

    STRCMP(str1, str2)

    两个字符串相同返回0,前者大于后者返回1,前者小于后者返回-1

                     

    函数名

    描述

    ABS(x)

    取绝对值

    CEIL(x)

    进一取整

    DIV

    整数除法

    FLOOR(x)

    舍一取整

    MOD(x, y)

    取余数(模)

    POWER(x, y)

    幂运算

    ROUND(x, y)

    四舍五入

    TRUNCATE(x, y)

    截断数字

    PI()

    取圆周率π的值

    RAND()

    返回0到1之间的伪随机数

                         

    名称

    描述

    [NOT] BETWEEN…AND…

    [不]在范围内

    [NOT] IN()

    [不]在列出的范围内

    IS [NOT] NULL

    [不]为空

                         

    函数名

    描述

    NOW()

    当前日期和时间

    CURDATE()或CURRENT_DATE()

    当前日期

    CURTIME()或CURRENT_TIME()

    当期时间

    DATE_ADD(date, INTERVAL int keyword)

    返回日期date加上间隔时间int的结果

    DATE_SUB(date, INTERVAL int keyword)

    返回日期date加上间隔时间int的结果

    DATEDIFF(date1, date2)

    日期差值

    DATE_FORMAT(date, fmt)

    日期格式化

          

                     

    函数名

    描述

    CONNECTION_ID()

    连接ID

    DATEBASE()

    当前数据库

    LAST_INSERT_ID()

    最后插入记录的ID号

    USER()

    当前用户

    VERSION()

    版本信息

                         

    函数名

    描述

    AVG()

    平均值

    COUNT()

    计数

    MAX()

    最大值

    MIN()

    最小值

    SUM()

    求和

                         

    函数名

    描述

    MD5()

    数据摘要算法

    PASSWORD()

    密码算法

     

    语法

     

  • 相关阅读:
    javascript高级编程笔记03(正则表达式)
    javascript高级编程笔记02(基本概念)
    javascript高级编程笔记01(基本概念)
    ExtJS4加载FormPanel数据的几种方式
    Extjs 更新数据集Ext.PagingToolbar的start参数重置的处理
    四川绵阳 晴
    四川绵阳 阴
    四川绵阳 晴
    在IntelliJ IDEA中添加repository模板
    List分组 用于客服对话分组场景
  • 原文地址:https://www.cnblogs.com/zxx7777777/p/11265643.html
Copyright © 2020-2023  润新知