zoukankan      html  css  js  c++  java
  • mysql_函数

    函数:
    将一段代码块封装到一个结构中,在需要执行代码块的时候,调用结构即可(代码复用)

    系统函数:系统定义好的函数,直接调用即可,任何函数都有返回值,因此函数的调用时通过select调用。

    mysql中,字符是基本单位
    substring:字符串截取(字符为单位)
    --定义两个变量
    set @cn = '世界你好'
    set @en = 'hello world'
    select substring(@cn,1,1);
    select substring(@en,1,1);
    mysql位置下标从1开始,截取单位为字符
    char_length;字符长度
    length:字节长度,和当前编码有关
    -- 字符串长度
    select char_length(@cn),char_length(@en),length(@cn),length(@en);

    instr:在某个字符串是否在某个字符串中,存在返回位置,0代表没找到
    -- 字符串查找
    select instr(@cn,'世界'),instr(@en,'ll'),instr(@cn,'拜拜');
    lPad:左填充,将字符串按照某个指定方式,填充到指定长度
    -- 字符串填充
    select lpad(!cn,20,'欢迎'),lpad(@en,20,'hello');
    insert:替换,找到目标位置,指定长度的的字符串,替换为目标字符串
    -- 字符串替换
    select insert(@en,3,3,'y');
    strcmp:字符串比较,小-1,等0,大1,不区分大小写
    -- 字符串比较
    set @f = 'hello';
    set @s = 'hey';
    set @t = 'HEY';
    select strcmp(@f,@s),strcmp(@f,@t),strcmp(@f,@f);

    自定义函数:
    函数要素:函数名,参数,返回值,函数体(作用域)

    创建函数:
    语法:create function 函数名([形参列表]) returns 数据类型 --固定要反悔的数据类型
    begin
    -- 函数体
    -- 返回值 return 类型
    end

    -- 定义函数
    create function display() returns int
    return 100;
    自定义函数与系统函数一样
    select 函数名(实参列表)
    select display1();

    查看函数
    show function status[like 'pattern'];
    查看函数创建语句:
    show create function 函数名;
    use information_schema;

    修改&删除
    函数只能先删除后新增
    drop function 函数名;
    --删除函数
    drop function display1();

    函数参数
    参数:形参、实参,实参可以是变量,形参必须制定数据类型
    function 函数名(形参名字 形参类型)
    -- 计算1到指定书的和
    delimiter $$
    create function display2(int_1 int) returns int
    begin
    -- 定义条件变量
    set @i = 1;
    set @res = 0;
    -- 循环求和
    while @i <= int_1 do
    -- 求和,任何变量要修改,必须使用set关键字
    -- mysql没有+=,++
    set @res = @res +@i;
    -- 修改循环变量
    set @i = @i +1;
    end while
    -- 返回值
    return @res

    end
    $$
    delimiter ;

    在函数内部使用@定义的变量在函数外部也可以访问


    作用域;mysql中的作用域与js中的作用域一样,全局变量可以再任何地方使用,局部变量只能在函数内部使用

    全局变量:使用set关键字定义,使用@符号标志
    局部变量:使用declare关键字声明,没有@符号,所有的局部变量必须在函数体之前
    -- 求1到指定书之间的和,要求5的倍数不加

    delimiter $$
    create function display3(int_1 int) returns int
    begin
    -- 声明变量,循环变量,结果变量
    declare i int default 1;
    decalre res int default 0;-- 定义局部变量可以有属性
    -- 循环判断
    mywhile:while i <= int_1 do
    -- 相加;判断
    if i % 5 = 0 then
    -- 修改循环条件
    set i = i +1;
    -- 不符合条件:循环从新来过
    iterate mywhile;

    end if;
    --相加
    set res = res +i;
    -- 改变循环变量
    set i = i+1;
    end while;
    return res;
    end
    $$
    delimiter ;

  • 相关阅读:
    超酷图片压缩工具,就是不支持批量
    eclipse java热加载
    mysql 突然报错,连接不上
    svn问题终极解决办法
    svn经常困扰我的问题
    洛谷 P3628
    CodeForces 1091H
    委托的实际应用
    WPF 小知识点001
    C# 扩展方法一
  • 原文地址:https://www.cnblogs.com/qull/p/6597214.html
Copyright © 2011-2022 走看看