精华内容
下载资源
问答
  • 本文实例讲述了mysql代码执行结构。分享给大家供大家参考,具体如下:本文内容:什么是代码执行...顺序结构顺序结构就是从上到下依次执行sql语句一般默认情况下都是顺序结构分支结构:分支结构的执行是依据一定的...

    本文实例讲述了mysql代码执行结构。分享给大家供大家参考,具体如下:

    本文内容:

    什么是代码执行结构

    顺序结构

    分支结构

    循环结构

    首发日期:2018-04-18

    什么是代码执行结构:

    这里所说的代码执行结构就是多条sql语句的执行顺序。

    代码执行结构主要用于触发器、存储过程和函数等存储多条sql语句中。

    顺序结构:

    顺序结构就是从上到下依次执行sql语句

    一般默认情况下都是顺序结构

    分支结构:

    分支结构的执行是依据一定的条件选择执行路径,它会依据我们给定的条件来选择执行那些sql语句

    mysql中分支结构只有if-else:

    语法:

    if 条件 then

    sql语句

    [elseif 条件 then

    sql语句]

    [else

    sql语句]

    end if;

    示例:

    --

    create table pass(id int primary key auto_increment,name varchar(15),score int );

    create table unpass(id int primary key auto_increment,name varchar(15),score int);

    -- 使用存储过程来

    create procedure myif(in name varchar(15),in score int)

    begin

    if score >=60 then

    insert into pass(name,score) values(name,score);

    else

    insert into unpass(name,score) values(name,score);

    end if;

    end;

    -- 调用,并查看结果

    call myif("lilei",61);

    call myif("hanmeimei",95);

    select * from pass;

    select * from unpass;

    call myif("tuhao",59);

    select * from unpass;

    if中的条件基本可以参照select语句的while子句的条件。什么in\not in \= \!= 等都可以用。

    create procedure myif3(in a char(1))

    begin

    if a in('a','b') then

    select 1;

    else

    select 2;

    end if;

    end;

    call myif3('a');

    call myif3('b');

    call myif3('c');

    补充:

    理论上,如果做出判断不符合,然而又不想继续执行下去的时候,应该执行返回(比如C语言的return来中断函数运行),但mysql中并没有对应的中断机制,所以需要我们主动中断(中断的方法有很多种,比如执行一条符合语法但无法运行的语句)【这种场景比如有:判断一名学生是否存在,不存在就不执行任何操作,所以应该执行一条无法成功运行的语句来报错返回。】

    事实上,还存在一种分支结构:case when 【好像好多书都没怎么讲到,所以这里不讲述。有兴趣的可以自行百度。】

    循环结构:

    循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。mysql中循环结构用于循环多次运行同一sql语句。

    mysql中的循环结构有loop结构、while结构、repeat结构,这里只讲述while结构,有兴趣了解其他的可以自行百度。

    8438cd438d2195dd9214afa8cfa471f6.png

    语法:

    while 条件 do

    sql语句

    end while;

    学过其他语言的可能会了解到循环结构中有continue(提前结束此次循环)和break(跳出整个循环)

    在mysql的循环结构中,使用leave来代替break,使用iterate来代替continue,但它们的使用语法是:leave\iterate 循环名,所以如何定义循环名呢?

    循环名:while 条件 do

    sql语句;

    leave\iterate 循环名;

    end while;

    示例:

    -- 无意义的一个例子,仅作演示

    create table whilenum(id int);

    -- 自带条件的

    create procedure mywhile()

    begin

    declare num int;

    set num=10;

    c1:while num>0 do

    insert into whilenum values(num);

    set num=num-1;

    end while;

    end;

    -- 以传入参数作为条件的

    create procedure mywhile2(in num int)

    begin

    c1:while num>0 do

    insert into whilenum values(num);

    set num=num-1;

    end while;

    end;

    -- 带中断的

    create procedure mywhile3(in num int)

    begin

    c1:while num>0 do

    if num%2=0 then

    set num=num-1;

    iterate c1;

    end if;

    insert into whilenum values(num);

    set num=num-1;

    end while;

    end;

    希望本文所述对大家MySQL数据库计有所帮助。

    展开全文
  • 流程结构流程结构:代码的执行顺序。if分支根据要求选择合适的执行部分。基本语法if在MySQL中有两种基本用法1.用在select查询当中,当作一种条件来进行判断。基本语法:if(条件,为真结果,为假结果)。select *,if...

    流程结构

    流程结构:代码的执行顺序。

    if分支

    根据要求选择合适的执行部分。

    基本语法

    if在MySQL中有两种基本用法

    1.用在select查询当中,当作一种条件来进行判断。

    基本语法:if(条件,为真结果,为假结果)。

    select *,if(age>30,'符合','不符合') as '情况' from people_name;

    可以理解为从people_name中的每一条记录都进行了分支判断,并加了一个字段表示关系。

    e8a52b3cd32a4833df096866ebbfc5ae.png

    2.用在复杂的语句块中(函数/存储过程/触发器)

    基本语法:if 条件表达式  then

    满足条件要执行的语句;

    end if;

    复合语法

    复合语法:代码的判断存在两面性,两面都有对应的代码执行。

    基本语法:

    if 条件表达式  then

    满足条件要执行的语句;

    esle

    不满足条件要执行的语句;

    //如果还有其他分支(细分),可以在里面在使用(if的嵌套)

    if 条件表达式  then

    满足条件要执行的语句;

    end if;

    end if;

    while循环结构

    基本语法:

    while  条件表达式    do

    循环体部分

    End while

    在循环体部分是可以嵌套的,

    while  条件表达式    do

    while  条件表达式    do

    循环体部分;

    End while;

    End while;

    标识符结构

    在MySQL中,可以使用标识符对一些特定的结构进行命名,以便使用。

    标识符的名字 :  while  条件表达式    do

    循环体部分;

    End while【标识符的名字】;

    这种标识符可以用来对循环进行控制,在MySQL中,并没有使用break,continue,而是使用了自带的关键字。

    iterate:迭代,表示结束本次循环,到下一次循环。相当于continue。

    leave:离开,表示结束循环,相当于break。

    标识符的名字:while  条件表达式    do

    if  条件表达式   then

    循环控制

    Iterate 标识符的名字;

    End if;

    End while;

    展开全文
  • 顺序结构顺序结构:程序从上往下依次执行。二. 分支结构分支结构:程序按条件进行选择执行,从两条或多条路径中选择一条执行。1. if语句/*语法:if(条件,表达式1,表达式2);功能:实现简单双分支,如果条件为真,则...

    一. 顺序结构

    顺序结构:程序从上往下依次执行。

    二. 分支结构

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

    1. if语句

    /*

    语法:if(条件,表达式1,表达式2);

    功能:实现简单双分支,如果条件为真,则返回表达式1的值,否则返回表达式2(类似于C语言的三元运算符)

    特点:可以用在任何位置。

    */

    #示例:查询学生表中张三的成绩是否合格,如果大于60分,则输出成绩合格,否则输出成绩不合格。

    SELECT score INTO @score

    FROM students

    WHERE NAME='张三';

    SELECT IF(@score>60,'成绩合格','成绩不合格');

    2. case语句

    /*

    语法:

    ✳情况一:类似于C语言中的switch,一般用于实现等值判断

    case 表达式

    when 值1 then 结果1或语句1(如果是语句,需要加分号)

    when 值2 then 结果2或语句2(如果是语句,需要加分号)

    ...

    else 结果n或语句n(如果是语句,需要加分号)

    end 【case】(如果是放在begin end中需要加上case,如果放在select后面不需要)

    ✳情况二:类似于C语言中的多重if,一般用于实现区间判断

    case

    when 条件1 then 结果1或语句1(如果是语句,需要加分号)

    when 条件2 then 结果2或语句2(如果是语句,需要加分号)

    ...

    else 结果n或语句n(如果是语句,需要加分号)

    end 【case】(如果是放在begin end中需要加上case,如果放在select后面不需要)

    功能:实现多重分支。

    特点:可以用在任何位置

    */

    #示例:查询学生表中李四的成绩等级,90~100输出优秀,80~90输出良好,60~80输出及格,0~60输出不及格,其他显示成绩错误。

    select score into @score1

    from students

    where name='李四';

    select

    case

    when @score1>100 or @score1<0 then '成绩错误'

    when @score1>=90 then '优秀'

    when @score1>=80 then '良好'

    when @score1>=60 then '及格'

    else '不及格'

    end as 成绩等级;

    3. if elseif语句

    /*

    语法:

    if 情况1 then 语句1;

    elseif 情况2 then 语句2;

    ...

    else 语句n;

    end if;

    功能:实现多重分支

    特点:只能用在begin end中!!!!!!!!!!!!!!!

    */

    #示例:创建一个函数,输入学生姓名,返回学生的分数等级。

    delimiter //

    create function score_grade(name varchar(20)) returns varchar(20)

    begin

    declare stu_score int;

    select s.score into stu_score

    from students s

    where s.name=name;

    if stu_score>100 or stu_score<0 then return '成绩错误';

    elseif stu_score>=90 then return '优秀';

    elseif stu_score>=80 then return '良好';

    elseif stu_score>=60 then return '及格';

    else return '不及格';

    end if;

    end //

    delimiter ;

    select score_grade('张三');

    三. 循环结构

    循环结构:程序满足一定条件下,重复执行一组语句。

    /*

    循环结构:

    语法:

    1)while(重点)✳

    【标签:】WHILE 循环条件 DO

    循环体

    END WHILE 【标签】;

    2)loop

    【标签:】loop

    循环体

    end loop 【标签】;

    3)repeat

    【标签:】repeat

    循环体

    until 结束条件

    end repeat 【标签】;

    特点:

    ①只能放在begin end中;

    ②loop 一般用于实现简单的死循环

    while 先判断后执行

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

    ③如果使用循环控制语句,需要使用标签,否则可以不用标签。

    循环控制语句:

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

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

    */

    #示例:创建一个函数,当输入一个大于1的整数num时,函数返回1+2+3+...+num的值

    delimiter //

    create function num_sum(num int) returns int

    begin

    declare i int default 0;

    declare sum int default 0;

    while i<=num

    do

    set sum=sum+i;

    set i=i+1;

    end while;

    return sum;

    end //

    delimiter ;

    select num_sum(10);

    展开全文
  • 主要介绍了mysql代码执行结构,结合实例形式分析了mysql顺序结构、分支结构与循环结构相关原理、用法及操作注意事项,需要的朋友可以参考下
  • VFP顺序结构和选择结构2007年10月22日来源:233网校网校课程 在线题库评论分享到vfp支持3种基本程序控制构造:顺序结构,选择结构和循环结构一.顺序结构:我们将依次执行程序中的语句的程序结构称为顺序结构,这是简单的...

    VFP顺序结构和选择结构

    2007年10月22日来源:233网校网校课程 在线题库评论

    分享到

    vfp支持3种基本程序控制构造:顺序结构,选择结构和循环结构

    一.顺序结构:我们将依次执行程序中的语句的程序结构称为顺序结构,这是简单的1种程序结构

    例:顺序结构例程

    程序文件内容:

    set talk off

    clear

    input "请输入圆的半径:" to r

    s=3.1415926*r*r

    "圆的面积是:",s

    return

    说明:执行程序时,屏幕上显示提示信息:请输入圆的半径.当用户键入半径并按回车时,vfp计算出圆的面积并显示在屏幕上.

    二.选择结构:实际应用中,常需要先判断后处理,根据不同情况做不同的处理.选择结构就是对指定的条件进行判断,如果条件成立,则执行指定的语句序列.在vfp中,选择结构包括if语句和do case语句.

    1.if语句:

    格式:

    if 条件

    语句序列1

    [else]

    [语句序列2]

    endif

    说明:

    (1).格式中的条件,多为条件表达式或逻辑表达式,结果为逻辑真或逻辑假

    (2).执行该语句时,首先对条件进行判断,如果是逻辑真,则执行语句序列1,然后转到endif后的第1条语句继续执行;否则执行语句序列2,然后转到endif后的第1条语句继续执行.

    (3).需判断的条件比较多时,可以使用if语句嵌套.

    (4)endif必须与if成对出现

    例:设计1个查询程序,希望当待人不存在时有信息提示.

    程序文件内容:

    clear

    accept "请输入待查人姓名" to xm

    locate for 姓名=xm

    if .not.eof()

    display

    else

    messagebox("查无此人")

    endif

    use

    return

    说明:程序执行时,执行locate命令时,记录指针从表的首记录一直找到后1条记录都未发现该姓名记录时,记录指针才后停在文件尾,此时eof()为真值;相反,若eof()取假值,则表示记录指针停在待查人的记录上.即当

    .not.eof()为真时,记录指针停在待查人的记录上,查到的指定的记录.也可用found()来代替程序中的.not.eof()

    分享到:

    责编:drfcy评论

    展开全文
  • 用户模块和访问控制模块结合起来,就组成了MySQL数据库的权限管理功能。查询优化器:这个模块主要是讲客户端发送的查询请求,在之前算法的基础上分析,计算出一个最优的查询策略,优化之后会提高查...
  • mysql结构_mysql结构

    2021-02-08 17:06:33
    mysql结构2021-02-07标签:顺序删除记录插入键值heapmysql结构mysql中具体的数据是存储在行中的,而行是存储在页中的。也就是说页是凌驾于行之上的。mysq一个页大小为16K,当然这个大小是可以通过修改配置文件来...
  • MySQL从物理结构上可以分为日志文件和数据索引文件。MySQL在Linux中的数据索引文件和日志文件都在/var/lib/mysql目录下。日志文件采用顺序IO方式存储、数据文件采用随机IO方式存储。首先可以查看mysql的文件在linux...
  • MySQL代码执行结构代码执行结构在 MySQL 编程中,代码的执行结构有三种,分别为:顺序结构;分支结构;循环结构。顺序结构,自不必多说,在本文中,我们着重了解分支结构和循环结构。分支结构分支结构:事先准备多个...
  • <p>I have seen <a href="https://stackoverflow.com/questions/23463587/how-to-store-sequential-data-in-mysql">this question</a> and the first answer is interesting: <pre><code>items table item_id | ...
  • MySQL学习笔记(第一天)参考文章:一、 MySQL的逻辑架构连接层:最上层是一些客户端和连接服务, 包含本地 sock 通信和大多数基于客户端/服务端工具实现的类似于 tcp/ip 的通信。 主要完成一些类似于连接处理、 授权...
  • 这种存储结构称为顺序存储结构,这种存储结构下的线性表称之为 顺序表。顺序表的特征:1 有一个唯一的表名来标识顺序表2 内存单元连续存储,一张顺序表占一个连续的存储空间3 数据按顺序存放,数据有前后顺序之区分二...
  • I am trying to ORDER my all categories and sub-categories in a hierarchy:The main point is how to get them from MySQL ORDERLY (using POSITION field)Cat A --> position 10Sub-Cat 1 --> posi...
  • mysql的基本组成部分 1.连接器:负责处理客户端的链接/请求 2.分析器:词法分析/语法分析/判断语句是否...一条查询语句的执行顺序 1:连接器接受到链接,长链接-短链接。长链接的缓存会慢慢累加,所以注意长链接的
  • Mysql 流程控制认识从我目前所接触的编程语言,C, R, VB, Python, Javascript...,来看, 无非就是变量, 表达式, 流程控制(顺序, 分支, 循环), 封装了一些更高级的数据结构而已, 区别在于应用场景和语言特性, 其实逻辑...
  • mysql更改表结构:添加、删除、修改字段、调整字段顺序添加字段:alter table `user_movement_log`Add column GatewayId int not null default 0 AFTER `Regionid` (在哪个字段后面添加)删除字段:alter table `user...
  • 摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,...
  • Mysql 分支结构 case when then以及if elseif 的使用结构控制语句1、顺序结构:程序从上而下执行2、分支结构:程序从两条或多条路径中选择一条去执行3、循环结构:程序在满足一定条件的基础上,重复执行一段代码此处...
  • MYSQL物理结构

    2019-11-28 22:22:38
    MYSQL物理结构 MySQL是通过文件系统对数据和索引进行存储的。 MySQL从物理结构上可以分为日志文件 和数据索引文件。 MySQL在Linux中的数据索引文件和日志文件都在/var/lib/mysql目录下。 日志文件(顺序IO) ...
  • mysql的基本逻辑结构.pngmysql主要分为客户端、Server层、存储引擎层Server层中存在连接器,缓存区,词法分析器,优化器以及执行器。其操作顺序是连接校验权限后如果开启了缓存区访问的话,会先访问缓存区中是否存在...
  • 002 mysql物理结构

    2020-05-04 10:02:54
    step1mysql物理结构 MySQL是通过文件系统对数据和索引进行存储的。 MySQL从物理结构上可以分为日志文件和数据索引文件。 MySQL在Linux中的数据索引文件和日志文件都在/var/lib/mysql目录下。 日志...
  • 下面的文章主要讲述的是MySQL更改表结构的添加、删除以及修改字段与调整字段顺序的实际操作步骤,以下就是文章对MySQL更改表结构的添加、删除以及修改字段与调整字段顺序的具体操作步骤的描述,望你浏览之后会有所...
  • MySQL流程控制结构 */ 一、分支结构 1.if函数 /* 语法:if(条件,值1,值2) 功能:实现双分支 应用在begin end中或外面 */ 2.case结构 /* 语法: 情况1:类似于switch,一般用于实现等值判断 case 变量|表达式|字段 ...
  • 总结一下对mysql结构的修改操作,包括对字段及索引的修改操作:添加字段:altertable`user_movement_log`AddcolumnGatewayIdintnotnulldefault0AFTER`Regionid`(在哪个字段后面添加)删除字段:altertable`user_...
  • mysql更改表结构:添加、删除、修改字段、调整字段顺序 添加字段: alter table `user_movement_log` Add column GatewayId int not null default 0 AFTER `Regionid` (在哪个字段后面添加) 删除字段: alter table ...
  • #流程控制结构/*顺序、分支、循环*/#一、分支结构#1.if函数/*语法:if(条件,值1,值2)功能:实现双分支应用在begin end中或外面*/#2.case结构/*语法:情况1:类似于switchcase 变量或表达式when 值1 then 语句1;...
  • MySQL从物理结构上可以分为日志文件和数据索引文件。MySQL在Linux中的数据索引文件和日志文件都在/var/lib/mysql目录下。日志文件采用顺序IO方式存储、数据文件采用随机IO方式存储。首先可以查看mysql的文件在linux...
  • 线性表(1)逻辑结构和物理结构物理结构:数据元素在内存中真实的存放次序,有可能是连续存放的,也可能是散落于内存里。逻辑结构:为了便于描述数据元素...常见的线性表有顺序表,链表,栈,队列等。线性表在物理上...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,912
精华内容 1,164
关键字:

mysql顺序结构

mysql 订阅