zoukankan      html  css  js  c++  java
  • 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()

    密码算法

     

    语法

     

  • 相关阅读:
    4 Apr 18 软件开发目录 logging模块的使用 序列化(Json, Pickle) os模块
    3 Apr 18 内置函数 列表生成式与生成器表达式 模块的使用之import 模块的使用之from…import…
    2 Apr 18 三元表达式 函数递归 匿名函数 内置函数
    30 Mar 18 迭代器 生成器 面向过程的编程
    29 Mar 18 函数 有参、无参装饰器
    28 Mar 18 函数
    27 Mar 18 函数的参数
    26 Mar 18 函数介绍
    23 Mar 18 文件处理
    22 Mar 18 补充数据类型+字符编码+文件处理
  • 原文地址:https://www.cnblogs.com/zxx7777777/p/11265643.html
Copyright © 2011-2022 走看看