内置函数和存储过程

                 内置函数

                1、数学函数

                2、聚合函数

                3、字符串函数

                4、日期和时间函数

                5、加密函数

                6、控制流函数

                7、格式化函数

                8、类型转换函数

                9、系统信息函数

   下面主要对字符串函数进行细说:

           ASCII():返回字符类型对应的整形(只返回char类型中的第一个字母)

              select   ASCII('abc');----------其中只返回a的整形。

     char():输入0-255之间的整数,返回字符型

              select char(65,66,67);----------返回值为ABC。

     left()|right():分别返回从字符串左边和右边开始指定X字符。

              select left|right(字符串,长度)------可对字符串内容进行截取。

     trim():删除字符串首部和尾部的所有空格,返回值为字符串

              select trim(‘    a          ’);

     ltrim()|rtrim():分别删除字符串中前面的空格和尾部的空格,返回值为字符串

     rpad()|lpad():左|右填充

             eg:rpad(被填充对象,最终的长度,填充的内容);-------可对字符串内容进行截取

                select  rpad(‘abc’,10,‘*’);--------返回结果为 abc*******

     replace():替换

                select  replace(‘被作用的对象’,被替换的内容,替换后的内容);

                select  replace(‘abcdsfsdsdfsdfs’,‘f’,‘#’);----返回结果为  abcds#sds#sd#s

     concat():连接字符串,逗号作为分隔符

                select  concat(‘abc’,‘def’);----返回结果为 abcdef

     substring():截取

                select substring(‘被作用的对象’,开始截取的位置,截取的长度);

                注:开始截取的位置从1开始,>=1

                   若开始截取的位置为负数,则表示从后向前截取。

      strcmp():比较两个字符串的大小,按字节比较

                select strcmp(字符串1,字符串2);

                             字符串1=字符串2  返回值为0

                             字符串1>字符串2  返回值为1

                             字符串1<字符串2  返回值为-1

    存储过程

    为什么使用存储过程?

   Mysql服务器在缓存机制做了改进,使用类似预处理的那种方式,由于没有编译器,因此Mysql存储过程不会像外部语言(C)编写的程序运行的那么快。提升速度的方法有两种:降低网络的信息流量,减少用户与服务器之间的交互;因为存储过程是在服务器端进行,所以使用存储过程就会减少用户与服务器的信息量;改变主机语言也可以,存储过程只是数据库的逻辑而不是应用程序,可移植性好,与系统主机型号等无关。

      语法格式:create procedure  存储过程名(参数)

               特征描述

               SQL语句体

          eg:use  test;

              create  procedure  p1()

              begin

              /*this is my first procedure*/

              end;

          注:begin.....end相当于“{}”的作用。如果sql语句只有一句时可省略“begin....end”。

            ▪名称不区分大小写,尽量避免与内置函数同名,假如同名,在“()”前加空格;

            ▪名称长度限制为64个字符;

            ▪“()”可为空,但不能省略

            ▪通常select不会出现在存储过程体内

            ▪大部分DDL、DML都是合法语句

             含有use库名等非法语句:create  procedure  db p()  drop  database db

        调用存储过程

             call   存储过程名(....)

        带有描述信息的存储过程

             create  procedure p3()

             -> language sql----接下来begin....end之间的语句是由sql语言实现存储过程(目前只支持sql语句,将来可能会使用PHP代替sql语句)

             ->not deterministic----返回结果不确定,deterministic返回结果确定,默认为不确定

             ->SQL security definer----创建者有权限调用存储过程

             ->comment 'a procedure'-----给存储过程加注释

             ->select * from tb1;------SQL语句体

                

 

 

 

 

 

 

 

                              

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值