zoukankan      html  css  js  c++  java
  • MySql——编程

     

     

    基本语法形式

    语句块模式:

    mysql编程中,begin....end;基本代替了原来编程语句中的{...}语法。

    但又有所区别:

    一个bigin...end;块,可以给定一个“标识符”,并且可以使用leave语句来“退出”该语句块。

    基本流程控制语句:

    if语句:

    case语句:(类似php中的switch)

    while循环语句:

    mysql中的变量

    变量它有一定的使用场景限制(其实包括前面的流程控制语句也这样):

    在通常的执行各种createinsertdeleteupdateselect等语句的“环境”中,并不使用常规变量,也不能使用流程控制语句。

    其实,这些语句只能在编程环境中用——通常的增删改查,可以称为命令环境。

    编程环境:存储函数中,存储过程中,触发器中

    普通变量的声明语法:

    declare 变量名 变量类型 [default 初始值]

    变量的赋值语法:

    set 变量名 = 变量值

    mysql还有一种变量形式,可以称为“会话变量”

    会话变量的形式为:  @变量名;

    会话变量无需单独声明,而是直接赋值就可以,类似php

    会话变量的赋值:  set  变量名 = 值;

    会话变量可以在普通命令行环境中或编程环境中使用。

    语法1:set 变量名 = 表达式;#此语法中的变量必须先使用declare声明

    语法2:set @变量名 = 表达式; #此方式可以无需declare语法声明,而是直接赋值,类似php定义变量并赋值。

    语法3:select @变量名 := 表达式;#此语句会给该变量赋值,同时还会作为一个select语句输出“结果集”。

    语法4:select 表达式 into @变量名;#此语句虽然看起来是select语句,但其实并不输出“结果集”,而只是给变量赋值。

     

    当然,也可以进行运算:

     

    稍微总结一下:

    有两种环境;

    常规mysql命令环境,可以执行:增删改查。。。

    编程环境:其实就是在特定的语句语法内部:存储过程内,存储函数内,触发器内。

    两种变量:

    普通变量:不带@符,直接写名字,必须先声明,后使用(赋值之类),只能用于编程环境

    会话变量:带@符,无需声明,直接使用(先赋值),可以用于2种环境。

    流程控制语句: 只能用于编程环境

    存储函数

    定义形式:

    调用形式:

    跟系统函数的调用形式一样,直接使用名字,并带括号,以及根据需要带实参。

    比如:

    select  3, now(), f1(); //f1为自定义的存储函数。

    select  3, now(), f2(3, ‘abc’,  @v1); //3个实参,其中@v1是一个前面赋值了的变量。

    举例:

    先得改变语句结束符:

     

    删除:drop function [if exists] 存储函数名

    存储过程

    存储过程就是一个没有返回值数据值的“函数”。

    虽然存储过程不返回单个数据值,但可以“返回”结果集——这里的返回起始就是select语句的正常结果表现。

    定义形式:

    其中,

    inoutinout用于修饰一个形参的“数据流向”:

    in:只作为外部输入数据,调用环境传入存储过程内部,默认值。

    out:只作为输出数据,即存储过程传出到调用环境。

    inout:具有双重。

    存储过程调用形式:

    call  存储过程名(实参1,实参2.....);

    举例:

    注:

    实际,在php中,其实是这样:

    $sql = “call   pro1(8, 'dd') ”;

    mysql_query( $sql );

     

    删除:drop procedure [if exists] 存储过程名

  • 相关阅读:
    .vue文件在phpstorm中红线解决办法
    javascript预编译详解
    javascript数据类型判断及数据隐式和显示转换
    用git版本库工具上传项目到github(新手简单易上手)
    javascript的数据运算和条件判断
    javascript基础类型和引用类型
    uniapp开发钉钉小程序遇到的坑!!!
    pdf解析器 用于小程序 h5
    百度的Ueditor(php)上传到aws s3存储方案
    css3 pointer-event属性
  • 原文地址:https://www.cnblogs.com/lemon-Net-Skill/p/9502395.html
Copyright © 2011-2022 走看看