sql语言结构与存储过程

来源:互联网 发布:js 控制图片 90度旋转 编辑:程序博客网 时间:2024/05/16 09:17

一、 变量

1、用户变量(与连接有关):

一个客户端定义的变量不能被其他客户端看到或使用,当客户端退出时,该客户端连接的是所有变量自动释放。[服务器连接:一直到退出的一段时间]

可以保存运行过程中的临时结果

@ 变量名—>用户变量与会话有关;

定义初始化时候用set语句(一定要初始化),语法格式:set @a=2;(赋值)

查询获取:select @a;

2、系统变量:

也为一个值和一个数据类型,但不同的是,系统变量在mysql服务器启动时就被引入并初始化为默认值。(就是已经定义好的)

例如:获得系统当前的时间 select current_time;

注意:在系统变量中version和系统日期的值是不可以改变的,但是有些系统变量(如:sql_warnings)是可以通过set语句改变的

二、存储过程

1、为什么使用

   mysql服务器在缓存机制做了改进类似预处理的那种方式,由于没有编译器,因此mysql存储过程不会像外部语言(c)编写的程序那么快,提升速度的方法有2种:

降低网络的信息流量和减少用户与服务器之间的交互。因为存储过程是服务器端执行的,所以使用存储过程的话就会减少客户与服务器之间的信息量

2、要求:proc表

                  create routine(历程的权限)

                   返回标量值

                    隐含调用use库名,删除数据库,存储过程也被删除

3、语法格式

create procedure sp_name()   //小括号不可以省略

[characteristic...] routine_body;   //特征的描述

sql语句

4、例如

1)use test

 2) create  procedure   p1()

      begin

          /*  this is my first procedure  */

       end;

  注意:begin相当于{}的作用

如果sql语句只有一句可以省略begin...end 区域

该存储过程的名称不区分大写小写;(尽量避免与内建函数同名。)

小括号不能省略(可以为空)

通常情况下select不会出现在存储过程中

大部分的ddl,dml都是合法语句

3)调用存储过程

call 存储过程名(参数)

4)带有描述信息的存储过程

create produce p3()

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

not—deterministic:返回的结果不确定

5)当语句体内容两天以上的时候,出现结束符号delemiter

 

 

 

 

 

 

 

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 网上找兼职被骗了怎么办 海信空调开不了机怎么办 海信空调遥控器开不了怎么办 学生遭套路贷反被仲裁怎么办 赏脸打错字尝脸怎么办 红掌的花变黑了怎么办 红掌花苞发黑了怎么办 水培植物腐根了怎么办 水培绿萝水发臭怎么办 水里养花根烂掉怎么办 桅子花叶子发黑怎么办 大株月季烂根怎么办 月季水浇多了烂根的怎么办 金桔盆栽烂根怎么办 盆栽的长寿果树烂根怎么办 家里的石榴烂根怎么办 山桔盆栽烂根怎么办 养的植物烂根怎么办 桅子花叶子长霉怎么办 紫薇花叶子干了怎么办 高层玻璃阳台往下看恐高怎么办 比熊放阳台叫怎么办 海员入职体检不合格怎么办 联币金融立案投资人怎么办 联币金融的投资怎么办 养老保险领了几个月就挂了怎么办 高铁餐吧乘务员东西卖不出去怎么办 铁路局如果查出有乙肝怎么办 在火车站丢了东西怎么办 在新乡火车站丢了东西怎么办 自己的行李忘到高铁安检怎么办 高铁二等座睡觉怎么办 空少岁数大了怎么办 美国留学生办欧洲签证怎么办 苏州小区不让装充电桩怎么办 饿了么运力不足怎么办 书法落款写偏了怎么办 辐射4运行不流畅怎么办 vgs币忘了映射怎么办 货车把我的货物运输中损坏怎么办 道路货物运输从业资格证过期怎么办