• mysql 分类


    一、系统变量

    说明:变量由系统提供,不用自定义

    语法:

    1、查看系统变量

    show【global | session】varisables like ‘ ’;如果没有显示声明global 还是session,默认是session

    2、查看指定的系统变量的值

    select @@【global | session】,变量名;如果没有显示声明global还是session,则默认是session

    3、为系统变量赋值

    set 【global | session】变量名=值;

    set @@global,变量名=值

    set @@变量名=值;

    1、全局变量

    服务器层面上的,必须拥有super权限才能为系统变量赋值,作用域为整个服务器,也就是针对于所有链接(会话)有效

    2、会话变量

    服务器为每一个链接的客户端都提供了系统变量,作用域为当前的链接   

    二、自定义变量

    1、用户变量

    作用域:针对于当前链接(会话)生效

    位置:begin end里面,也可以放在外面

    使用

    1、声明并赋值

    set @变量名=值;

    set @变量名:=值

    select @变量名:=值

    2、更新值

    方式一:

    set @变量名=值;

    set @变量名:=值

    select @变量名:=值

    方式2:

    select xx into @变量名 from 表;

    3、使用

    select @变量名

    2、局部变量

    作用域:仅仅在定义他的begin end中有效

    位置:只能放在begin end中,而且只能放在第一句

    使用:

    1、声明

    declare 变量名 类型 【default 值】

    2、赋值

    set 变量名=值;

    set 变量名:=值

    select @变量名:=值

    方式2:

    select xx into 变量名 from 表;

    3、使用

    select 变量名;

    存储过程和函数:

    说明:类似于java中的方法,将一组完成特定功能的逻辑语句包装起来,对外暴露名字

    好处:

    1、提高重用性

    2、sql语句简单

    3、减少了数据库的链接次数,提高了效率

    存储过程的创建

    create producedure 存储过程名(参数模式 参数名 参数类型)

    begin

                        存储过程体

    end

    注意:

    1、参数模式:in、out、inout,其中in可省略

    2、存储过程体的每一条sql语句都需要用分号结尾

    二、调用

    call 存储过程名(实例列表)

    举例:

    调用in模式的参数:call sql(’值‘)

    调用out模式的参数:set @name;call sql(@name);select @name

    调用inout模式的参数:set @name=值;call sql(@name);select @name

    三、查看

    show create procedure 存储过程名;

    四、删除

    drop producedure 存储过程名;

    函数:

    一,创建

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

    begin 

    函数体

    end

    注意:函数体中肯定要有return语句

    二、调用

    select 函数名(实参列表);

    三、查看

    show create function 函数名;

    四、删除

    drop function 函数名;

    流程控制结构

    顺序结构

    分支结构:程序按条件选择执行,从两条或多条路径中,选择一条执行

      特点:

      if函数:实现双分支

    语法:if(条件 值1 值2)

    位置:可以作为表达式放在任何位置

    case结构

    功能:实现多分支

    语法1:

    case 表达式

    when 值1 then 语句1;

    。。。

    end 语句n;

    位置:

    任何位置,

    如果放在begin end 外面,作为表达式结合着其他语句使用

    语法2:

    case 

    when 条件1 then 语句1;

    。。。

    end 语句n;

    循环结构:程序在满足一定条件下,重复执行

    如果放在begin end里面,一般作为独立的语句使用

    3、if结构

    功能:实现多分枝

    if 条件1 then 语句1;

    if 条件2 then 语句2;

    。。。

    else 语句n;

    end if;

    位置:

    只能放在begin end 中

    循环结构

    位置:只能放在begin end中

    特点:都能实现循环结构

    对比:

    1、三种循环都可以省略名称,但如果循环中先加了循环控制语句(leave或iterate)则必须添加名称

    2、loop一般用于死循环

    while先判断后执行

    repeate 先执行后判断,无条件至少执行一次

    1while

    语法

    【名称:】while 循环条件 do

    循环体

    end while【名称】

    2、loop

    语法:

    【名称:】loop

    循环体

    end loop【名称】;

    3、repeat

    语法:

    【名称:】repeat

    循环体

    until 结束条件

    end repeat【名称】;

    循环控制语句:

    leave:类似于break,用于跳出所在的循环

    iterate:类似于continue,用于结束本次循环,继续下一次

  • 相关阅读:
    KVC KVO
    Objective-C的hook方案(一): Method Swizzling
    Method Swizzle黑魔法,修改 ios 系统类库方法 SEL IMP
    http 请求安全
    块对象block小结(2)
    块对象block小结
    springmvc项目目录总结
    软件开发实用标准流程——文档
    冷知识:反常识的margin-top与padding-top与%,你被坑过吗?
    菜鸟笔记:在公司内网下搭好Java项目环境(IDEA、maven、svn)
  • 原文地址:https://www.cnblogs.com/zhibei/p/9324152.html
Copyright © 2020-2023  润新知