zoukankan      html  css  js  c++  java
  • 让你提前认识软件开发(31):数据库脚本中的begin与end

    版权声明:本文为博主原创文章。对文章内容有不论什么意见或建议,欢迎与作者单独交流。作者QQ(微信):245924426。 https://blog.csdn.net/zhouzxi/article/details/34509887

    第2部分 数据库SQL语言

    数据库脚本中的begin与end

     

            在数据库脚本中。beginend是一对奇怪的单词。

    缺少它们,某些代码看起来会让人一头雾水。加入它们。代码的结构瞬间就清晰了。

            确实,beginend作为代码语句的開始和结束标志,能够让脚本程序的逻辑明白,易于阅读。

            beginend主要用在下面地方:

    1. ifelseelse ifwhile等语句中

            ifelseelse ifwhile等语句要自占一行,运行语句不得紧跟其后,不论运行语句有多少都要加语句块标志beginend

            脚本文件里的beginend应独占一行而且位于同一起始列,同一时候与引用它们的语句左对齐。beginend之内的代码块使用缩进,一般缩进为4个空格。

            正例:

    if (@varible1 < @varible2)

    begin

        [运行语句]

    end

     

            反例1

    if (@varible1 < @varible2)

        [运行语句1]

        [运行语句2]

            在反例1中,因为缺少了beginend。因此对“运行语句1”和“运行语句2”的“归属问题”带来了疑惑,非常easy让人把代码的逻辑搞错。

     

            反例2

    if (@varible1 < @varible2)

           begin

              [运行语句]

    end

            在反例2中,beginend没有位于同一起始列,也没有与引用它们的语句左对齐。这样一看,代码就显得非常凌乱。

     

            反例3

    if (@varible1 < @varible2)  begin

                 [运行语句]

    end

     

            在反例3中。beginif语句位于同一代码行,这也是不规范的。

     

    2. 创建存储过程(函数、触发器等)

            创建存储过程(函数、触发器等)时,不管存储过程(函数、触发器等)的运行语句内容部分有多少行,都必须以begin開始,end结束,而且在end后面不加存储过程(函数、触发器等)名。

            演示样例1(基于Sybase数据库创建存储过程)

    if exists (select 1 from sysobjects where name = 'pr_example’)

    begin

        drop procedure pr_example

    end

    go

     

    create procedure pr_example

        @name      varchar(30),         -- 姓名

        @age        int                -- 年龄

    as

    declare @begintime          varchar(20),  -- 開始时间

          @endtime            varchar(20)  -- 结束时间

    begin

        [运行语句部分]

    end

    go

     

    print 'create procedure pr_example ok'

    go

     

            演示样例2(基于Oracle数据库创建存储过程)

    create or replace procedure pr_example

    (

        v_name         in  varchar2,    -- 姓名

        v_age          out  int         -- 年龄

    )

    as

        begintime     varchar2(20);      -- 開始时间

        endtime      varchar2(20);      -- 结束时间

    begin

        [运行语句部分]

    end;

    /

    prompt 'create procedure pr_example ok';

     

            此外。创建存储过程(函数、触发器等)时,每一个參数都必须单独位于一行,不同意换行或一行多个參数。

    该參数的凝视要么和该參数位于同一行,要么单独占一行,不同意在參数行上换行。例如以下的代码是不规范的:

            演示样例3(基于Oracle数据库创建存储过程)

    create or replace procedure pr_example

    (

        v_name

    in  varchar2,    -- 姓名

        v_age          out  int

    -- 年龄

    )

    as

        begintime     varchar2(20);      -- 開始时间

        -- 结束时间

        endtime     

    varchar2(20);

    begin

        [运行语句部分]

    end;

    /

    prompt 'create procedure pr_example ok';

     

            在实际的软件项目中,恰当地使用beginend。可使得代码的逻辑清晰、可读性强。

    这有利于工作效率的提高。

     

    (本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5。微信号:245924426,欢迎关注。)

  • 相关阅读:
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    7.21Java入门--->第二节
    7.20Java入门--->第一节
  • 原文地址:https://www.cnblogs.com/mqxnongmin/p/10735685.html
Copyright © 2011-2022 走看看