存储过程和内建函数

本博客详细介绍了MySQL数据库中的存储过程及其使用方法,包括创建、调用、注意事项等,并阐述了内建函数的功能与应用,如字符串、日期时间、控制流等函数,帮助开发者更高效地进行数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

今天老师带着我们学习了:存储过程的一些知识还有内建函数这两块内容。

1,存储过程:

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

2)语法格式:Create procdure 存储过程名(参数

                  特征描述

                      SQL语句体

          例子:use  test

            create  procedure  p1()

         begin 

     /*this is my first procedure*/

         end;

3)存储过程中应该注意的:

                    begin。。。end相当于{}的作用

    如果SQL语句体只有一句可以省略begin。。end

    名称不区分大小写,尽量避免与内建函数同名,假如同名则在名称()  之间加空格;

    名称长度限制64字符;

   ()可以为空,不能省略

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

    大部分的DDLDML都是合法语句

非法语句:

Create procedure  db.p()  drop  database  db;

含有use  库名等

       4)存储过程的调用:

              语法格式:Call  存储过程名(…);

       5带有描述信息的存储过程:

         例子:     Create  procedure  p3()

                     Language sql ----声明用什么语言来实现存储过程

                      ( 目前只支持sql语句,将来可能会使用php

                      来代替sql

                      Not  deterministic---返回的结果不确定

                       Sql  security  definer----创建者

                       Comment  ‘ a  procedure---给存储过程加注释

                       Select  *  。。。------SQL 语句体;

2,内建函数:

      1)字符串函数:AscII():返回char类型数据中第一个对应的整型;

         Char():输入0-255之间的整数,返回char类型;

         Left(字符,长度):可以对字段内容进行截取

         Right(字符,长度)

            Rpad’填充对象’,最终的长度,填充内容):

         Lpad :截取、填充

         Replace(“被作用的对象”,被替换的内容,替换后的内容);

          例:select replace('123ab123a123','a','f');

              结果: 123fb123f123

            C oncat:连接字符串,逗号作为分隔符

               例: select concat ('a','b');

                    结果: ab

         Substring(“被作用的对象”,开始截取位置,截取的长度);

             例: select Substring('abcdef'tg,1,2);

                 结果:ab

         (开始截取的位置从1开始,>=1…………………是负数,表示从后向前截取)

         Strcmp(字符1,字符2);按照字节比较相等  0,大于 1,小于 -1

             例: select strcmp('a','b');

                     结果:1

  2)日期和时间函数:Now();Curtime()Curdate()Year()                 

  3)控制流函数: Ifnull()Nullif() If()

  4格式化函数Format:针对浮点 Date_format:日期格式化Time_format:时间格式化

     注意:字符和时间日期需要单引号

     5) 类型转换

          语法格式:  Cast(要转换的对象  as  类型);

  6常量

      例如:‘a’  12  3.14

     变量:保存运行过程中的临时结果

1)用户变量(和会话---连接服务器到退出服务器的一段时间)

@变量名一定要初始化

     Set @a=2;

     Select @a;

     Select 返回结果分几类:表,列,行,值(标量)

2)系统变量  @@VERSION

结语:时间过的真快,转眼第三周了,我要加倍努力了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值