zoukankan      html  css  js  c++  java
  • 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,用于结束本次循环,继续下一次

  • 相关阅读:
    DDD 领域驱动设计-谈谈 Repository、IUnitOfWork 和 IDbContext 的实践
    UVA10071 Back to High School Physics
    UVA10071 Back to High School Physics
    UVA10055 Hashmat the Brave Warrior
    UVA10055 Hashmat the Brave Warrior
    UVA458 The Decoder
    UVA458 The Decoder
    HDU2054 A == B ?
    HDU2054 A == B ?
    POJ3414 Pots
  • 原文地址:https://www.cnblogs.com/zhibei/p/9324152.html
Copyright © 2011-2022 走看看