Sql编程

一.变量:系统变量、自定义变量

        1.系统变量:用来控制服务器的属性,如autocommit、auto_increment_increment

                a.查看系统变量:show  global variables;

                b.查看具体变量值:select @@变量名

   

               c.修改系统变量:会话级别、全局级别

                       1.会话级别:临时修改,当前客户端当次有效。

                                set autocommit=0;

                       2.全局级别:永久修改,所有客户端都有效,当前客户端已连接服务器,需推出后生效。set global 变量名=值;

                    

        2.自定义变量  

                a.设置自定义变量:系统为了区分系统变量,规定用户自定义变量必须使用一个@,set @变量名=值。

                    

                b.自定义变量的查看:select   @变量名;

                     

                c.从表中获取数据赋值给变量

                   

                d.只赋值不看结果每次只能复制一条记录

                    

             所有自定义变量都是会话级别,当前客户端当前连接有效,不区分数据库属于(用户级别)。

二.触发器(trigger):事先写好一段代码,当表中的数据发生改变时(增删改),系统自动触发代码执行事件

                a.触发器要素:触发事件、触发时间、出发对象

                        1.触发事件:增、删、改(insert、delete、update)

                        2.触发时间:前、后(before、after)

                        3.表中的每一条记录(行)

                一张表中最多只能有一种时间的一种触发器,一张表中最多有6个触发器

                 b.创建触发器:在mysql中没有大括号、小括号都是用对应的字母代替

                        临时修改结束符:delimiter 自定义符号,后续代码只有遇到自定义符号才算结束

                           1.创建触发器基本语法

                

                

            c.查看触发器

                   1.查看所有触发器:show triggers [like 'pattern']

        

                2.查看触发器创建语句:show create trigger 触发器名称;

              

               3. 所有的触发器都会放在Information_schema.triggers

  

             4.触发器的使用

               5.修改&删除触发器:不能修改,只能先删除后新增

                 语法:drop trigger 触发器名称;

               

        6.触发器的记录:不管触发器是否触发,当系统某种操作准备执行,系统会将当前状态和即将操作的记录状态保存下来,

            当前状态保存在old中,操作后的状态保存在new中。

               1):使用方式:old/new(旧、新记录)   字段名 (new 代表的是假设发生后的结果)

三.代码的执行结构:顺序结构、分支结构、循环结构

           a.分支结构:准备多个代码块,按照条件选择性执行

                1.语法:if 判断条件

                             then 满足条件代码块

                             else 不满足条件代码块

                             end if;

                案例:触发器结合分支if结构,如果库存够生成订单,不满足不生成订单。

                

            b.循环结构:某段代码在满足条件下一直循环执行

                   

四.函数:将一段代码封装到一个结构中,需要调用代码块时调用结构即可(提高代码的复用性)。

              a.函数的分类:系统函数、自定义函数

                    1.系统函数

                         1):substring:字符串截取

                           

                         2):char_length:字符长度、length:字节长度

                            

                        3):Instr:判断字符串是否在某个字符里,存在返回位置

                        

                   2.自定义函数

                           1)函数要素:函数名、参数列表、返回值、函数体(作用域)           

                           2)创建函数语法:create function 函数名([参数列表]) returns  -- 规定要返回的类型

                                                       begin    函数体

                                                       end

                               

                         3)调用函数:select 函数名称;

                            

                        4)查看函数:select function status [like 'pattern'];

                   

                       5)查看函数的创建:show create function 函数名;

                    

                      6)函数的修改&删除:drop  function 函数名称;

                      7)函数参数:分为实参和形参,形参制定时必须指定数据据类型

                          function 函数名(参数类型 参数) returns 返回值

                       

                       8)参数作用域

                    

五.存储过程

            1.创建过程

                create procedure 过程名字([参数列表])

               begin 过程体

                end

            

            2.查看存储过程

                show procedure status[like 'pattern'];

            3.查看创建过程:show create procedure 过程名字;

            4.调用过程 call test();

            5.删除过程: drop procedure 过程名字;

            6.过程参数

           

                

                

                



                                                                                                                                

猜你喜欢

转载自blog.csdn.net/superstarsteven/article/details/79863221