精华内容
下载资源
问答
  • 1.匿名:declarev_avgsal number(6,2);beginselect avg(sal) into v_avgsal from emp where deptno=&no;dbms_output.put_line('平均工资:'|...2.命名块:<>declarev_deptno number(2);v_dname varchar2(...

    1.匿名块:

    declare

    v_avgsal number(6,2);

    begin

    select avg(sal) into v_avgsal from emp where deptno=&no;

    dbms_output.put_line('平均工资:'||v_avgsal);

    end;

    2.命名块:

    <>

    declare

    v_deptno number(2);

    v_dname varchar2(10);

    begin

    <>

    begin

    select deptno into v_deptno from emp where lower(ename)=lower('&name');

    end;--<>

    select dname into v_dname from dept where deptno=v_deptno;

    dbms_output.put_line('部门名:'||v_dname);

    end;--<>

    <>外层块    <>内层块

    3.子程序:包括过程、函数、包。

    3.1过程:

    create procedure update_sal(name1 varchar2,newsal number)

    is

    begin

    update emp set sal=newsal where lower(ename)=lower(name1);

    end;

    exec update_sal('scott',3700);

    3.2函数:

    create function annual_income(name1 varchar2)

    return number is

    annual_salary number(7,2);

    begin

    select sal*12+nvl(comm,0) into annual_salary from emp where lower(ename)=lower(name1);

    return annual_salary;

    end;

    var income number

    call annual_income('scott') into :income;

    3.3包

    create package emp_pkg is

    procedure update_sal(name1 varchar2,newsal number);

    function annual_income(name1 varhcar2) return number;

    end;

    create

    3.3.1包体:用于实现包规范中的过程和函数

    create package body emp_pkg1 is

    procedure update_sal(name1 varchar2,newsal number)

    is

    begin

    update emp set sal=newsal where lower(ename)=lower(name1);

    end;

    function annual_income(name1 varchar2) return number

    is

    annual_salary number(7,2);

    begin

    select sal*12+nvl(comm,0) into annual_salary from emp where lower(ename)=lower(name1);

    return annual_salary;

    end;

    end;

    exec emp_pkg1.update_sal('scott',1500);

    var income number

    exec emp_pkg1.annual_income('scott') into :income;

    4.触发器:

    create trigger update_cascade

    after update of deptno on dept for each row

    begin

    update emp set deptno=:new.deptno where deptno=:old.deptno;

    end;

    展开全文
  • 命名块:存储过程,函数,触发器,包等pl/sql语句分3部分:(1)声明部分(2)可执行部分(3)异常处理部分其中可执行部分是语句中唯一要求必须存在的部分,声明部分和异常处理部分是可选的。1.匿名快语法:...

    命名块:存储过程,函数,触发器,包等

    pl/sql语句块分3部分:

    (1)声明部分

    (2)可执行部分

    (3)异常处理部分

    其中可执行部分是语句块中唯一要求必须存在的部分,声明部分和异常处理部分是可选的。

    1.匿名快语法:

    declare

    declatation statements

    begin

    executable statements

    exception

    exception-handing statements

    end

    2.生成变量

    语法:

    变量名 [constant] datatype [not null] [:=value|default expr]

    声明变量方法1:

    declare

    v_first_name varchar2(50);

    c_count   constant number :=0;  ---常量

    v_hiredate  date;

    v_valid   BOOLEAN NOT NULL DEFAULT TRUE;

    声明变量方法2:

    declare

    v_ename emp.ename%type;

    v_sal emp.sal%type;

    每一个分句后用分号

    conn scott/tiger

    查询 某个员工的姓名 薪水 税后工资

    set serveroutput on;

    declare

    v_ename varchar2(20);

    v_sal   emp.sal%type;

    c_tax_rate constant number(3,2):=0.06;

    v_tax_sal number(6,2);

    begin

    select ename,sal into v_ename,v_sal from emp where empno=&no;

    v_tax_sal:=c_tax_rate*v_sal;

    dbms_output.put_line('v_ename: ' || v_ename);

    dbms_output.put_line('v_sal: ' || v_sal);

    dbms_output.put_line('v_tax_sal :'||v_tax_sal);

    end;

    3.标识符的命名规则

    (1)定义变量,建议用v_,如v_ename

    (2)定义常量,建议用c_,如c_tax_rate

    (3)定义游标,建议用_cursor作为后缀,如emp_cursor

    (4)定义表类型,建议用_table_type作为后缀,如sal_table_type;

    (5)定义表变量,建议用_table作为后缀,例如sal_table;

    4.PL/SQL编译过程步骤

    编译过程包括语法检查,绑定以及为代码生成。语法检查涉及检查PL/SQL代码中的编译错误。在纠正语法错误之后,会给每个变量分配内存地址,以保存ORACLE数据,这个过程成为绑定。接下来,会产生PL/SQL语句块的伪代码,伪代码是PL/SQL引擎的指令列表,对于命名语句块,伪代码会存储在数据库中,并在程序下一次执行时使用。

    5.替代变量

    在匿名PL/SQL块中接受输入参数使用&或者&&作为替代变量

    6.初始化变量用select into语法

    求emp表的平均工资

    set serveroutput on;

    declare

    v_avg_sal emp.sal%type;

    begin

    select avg(sal) into v_avg_sal from emp;

    dbms_output.put_line('v_avg_sal:'||v_avg_sal);

    end;

    #############################

    7.if语法

    if condition then

    statements;

    [elsif condition then

    statements;]

    [else

    statements;]

    end if;

    如果工资小于2000,把雇员的薪水加50

    set serveroutput on;

    DECLARE

    v_sal emp.sal%TYPE;

    begin

    select sal into v_sal from emp where upper(ename)=upper('&ename');

    if v_sal<2000 then

    update emp set sal=sal+50 where upper(ename)=upper('&ename');

    end if;

    end;

    //如果job=PRESIDENT,sal=sal+200

    job=MANAGER ,sal=sal+1000

    other ,sal=sal+100

    &empno

    declare

    v_job emp.job%type;

    v_empno emp.empno%TYPE;

    begin

    v_empno:=&empno;

    select job into v_job from emp where empno=v_empno;

    if v_job='PRESIDENT' then

    update emp set sal=sal+200 where empno=v_empno;

    elsif v_job='MANAGER'then

    update emp set sal=sal+1000 where empno=v_empno;

    else

    update emp set sal=sal+100 where empno=v_empno;

    end if;

    end;

    或者:

    declare

    v_job emp.job%type;

    v_empno emp.empno%TYPE;

    begin

    select job,empno into v_job, v_empno from emp where empno=&empno;

    if v_job='PRESIDENT' then

    update emp set sal=sal+200 where empno=v_empno;

    elsif v_job='MANAGER'then

    update emp set sal=sal+1000 where empno=v_empno;

    else

    update emp set sal=sal+100 where empno=v_empno;

    end if;

    end;

    ############################

    8.循环

    #loop循环:

    create table tmp01(id int);

    declare

    i int :=1;

    begin

    loop

    insert into tmp01 values (i);

    commit;

    exit when i >100;

    i := i+1;

    end loop;

    end;

    #while循环

    drop table tmp01 purge;

    create table tmp01(id int);

    declare

    i int:=1;

    begin

    while i<100

    loop

    insert into tmp01 values(i);

    i:=i+1;

    end loop;

    commit;

    end;

    #for循环

    drop table tmp01 purge;

    create table tmp01(id int);

    begin

    for i in 1..100

    loop

    insert into tmp01 values(i);

    end loop;

    commit;

    end;

    #############case语句

    //用替代变量输入部门号,使用case语句判断条件更新雇员工资

    部门号为10,雇员加薪10%

    部门号为20,雇员加薪8%

    部门号为30,雇员加薪15%

    如果输入其他数字,则显示“该部门不存在”

    DECLARE

    v_deptno EMP.DEPTNO%TYPE:=&deptno;

    begin

    case v_deptno

    when 10 then

    update emp set sal=sal*1.1 where deptno=v_deptno;

    when 20 then

    update emp set sal=sal*1.08 where deptno=v_deptno;

    when 30 then

    update emp set sal=sal*1.15 where deptno=v_deptno;

    else

    dbms_output.put_line(v_deptno||' department is not exists!');

    end case;

    end;

    9.SQL游标

    当执行select,insert,update,delete时,oracle会为SQL语句分配相应的上下文区(context area).oracle使用上下区解析并执行相应的SQL语句,而游标就是指向上下文区的指针。

    游标包括隐式游标和显示游标。其中隐式游标也称为SQL游标,专门用于处理select into,insert,update,delete语句。显示游标用于处理多行select语句。

    SQL游标属性:sql%found,sql%notfound,sql%rowcount,sql%isopen等

    (1)sql%isopen:用于确定SQL游标是否打开。

    (2)sql%found:用于确定SQL语句是否执行成功。

    (3)sql%notfound:用于确定SQL语句是否执行成功。

    (4)sql%rowcount:sql语句所做用的总计行数

    set serveroutput on;

    declare

    v_deptno emp.deptno%type := &no;

    begin

    update emp set sal = sal*1.05 where deptno=v_deptno;

    if sql%notfound then

    dbms_output.put_line('deptno is not exist.');

    else

    dbms_output.put_line('sql execute successful.');

    end if;

    dbms_output.put_line('have '|| sql%rowcount || ' row  change.');

    end;

    ---习题

    用替代变量输入客户名(不区分大小写)和所在城市,并修改客户所在城市,如果客户不在,则显示“该客户不在”

    create table customer(customer_id number not null,customer_name varchar2(50),city_name varchar2(50),constraint pk_customer primary key(customer_id));

    insert into CUSTOMER VALUES(1,'guoyf','luoy'),(2,'wangxq','daok'),(3,'songsl','yic');

    declare

    v_cusname customer.customer_name%type:='&name';

    v_city varchar2(50):='&city';

    begin

    update customer set city_name=v_city where upper(customer_name)=upper(v_cusname);

    if sql%notfound then

    dbms_output.put_line(v_cusname||' is not exist');

    end if;

    commit; ...提交以后游标关闭

    end;

    展开全文
  • 西门子博图1200时间加密...此程序分成两个块,加密算法块和解密算法块,可以直观看到内部写法,变量大多中文命名程序块内有详细备注,图片可见。帮助学习理解和项目借鉴能够快速应用id=651785143462& ...

    西门子博图1200时间加密程序块(也可适用于1500系列)
    此项目PLC选用1212C DC/DC/DC 触摸屏选用 KTP700 Basic PN
    此程序分成两个块,加密算法块和解密算法块,可以直观看到内部写法,变量大多中文命名,程序块内有详细备注,图片可见。帮助学习理解和项目借鉴能够快速应用id=651785143462&

    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述

    展开全文
  • 程序命名公式及规范

    2021-03-29 09:42:10
    BEM:(Block: , Element: 元素, Modifier: 修饰符)是一种基于组件的Web开发方法,基本思想是将用户界面划分为独立的。 官方标准:namespace-block__element_modifier 追加约定:给组件添加命名空间m,表示 ...


    前言

    本文将从程序的命名常见形似以及现在主流的命名规范做介绍。

    一、命名公式

    1. 动词+名

    函数命名的时候。

    // 如:
    var getUserName = function() {};
    var addData = function() {}
    

    2. 判断+名

    当返回布尔值的时候使用is+的形式。

    // 如:
    var isBool = function() {};
    

    二、命名规范

    1. 匈牙利命名法

    基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。

    // 如:
    var szUserName = 'admin';
    var aFruits = ['苹果', '西瓜', '樱桃'];
    
    说明(类型部分)符号
    数组a
    指针p
    函数fn
    无效v
    句柄h
    长整型l
    布尔b
    浮点型(有时也指文件)f
    双字dw
    字符串sz
    短整型n
    双精度浮点d
    计数c(通常用 cnt)
    字符ch(通常用 c)
    整型i(通常用 n)
    字节by
    w
    实型r
    无符号u

    关于匈牙利命名法的前缀除了属性部分外,还有属性部分和描述部分,感兴趣的小伙伴可以点击此处立即查阅

    2. 驼峰式命名法

    驼峰式命名法(Camel-Case),当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母。

    // 如:
    var userName = 'admin';
    var fruits = ['苹果', '西瓜', '樱桃'];
    

    3. 帕斯卡命名法

    帕斯卡命名法(Pascal),当变量名和函式名称是由二个或二个以上单词连结在一起,每个单词首字母大写。

    // 如:
    var UserName = 'admin';
    

    4. BEM 命名法

    前面介绍的三中命名规范在多种语言中是通用的,第四种 BEM 则主要侧重于前端的 css 命名规范。
    BEM:(Block: 块, Element: 元素, Modifier: 修饰符)是一种基于组件的Web 开发方法,基本思想是将用户界面划分为独立的块。

    官方标准:namespace-block__element_modifier

    1. 追加约定:给组件添加命名空间 m,表示 模块,防止和第三方组件命名冲突。如:m-block __ element_modifier
    2. 所有单词一律小写。
    3. 单词之间用 - 分隔,命名尽量不要超过三个单词,避免命名过长。
    4. 块名称(Block)通过 - 与命名空间(Namespace)分隔。

    块名称 Block 表示一个最高级别的抽象或者说是组件,主要是起到边界的作用,其中有以下三个主要功能特点:

    • 负责描述功能,不应该包含状态。

      /* correct */
      .m-header {
      }
      
      /* error */
      .m-header--active {
      }
      
    • 不影响自身布局,不包含具体的样式。

      /* correct */
      .m-header {
      }
      
      /* error */
      .m-header {
        background-color: skyblue;
      }
      
    • 不能使用元素选择器和 ID 选择器。

      /* correct */
      .m-header {
      }
      
      /* error */
      .m-header a {
      }
      
    1. 元素名称(Element)通过 __ 与块名称(Block)分隔。
      元素名称(Element)表示目的,而不是状态,在此层用于设置盒子边距宽高度数据、布局方式等。不能脱离 Block 父级单独使用。
    .m-header__logo {
      margin-left: 50px;
      width: 100px;
    }
    .m-header__nav {
      margin: 100px;
    }
    
    1. 修饰符名称(Modifier)通过 _ 与元素(Element)名称分隔。
      修饰符名称(Modifier)表示的是状态。
    .m-header__nav_navlist {
      background-color: #2b2b2b;
    }
    
    1. 在组件开发中避免使用全局的 OOCSS 原子类,因为这会降低组件的可复用性;如:pull-left、pull-right、clearfix。(补充:OOCSS 原子类是指将复用度高的样式抽取出来,整合独立的抽象公共类)
    2. 尽量避免使用子选择器,如果层次关系过长,逻辑不清晰,非常不利于维护;如: .kso-nav ul li a {}。

    使用 sass 预编译语法
    首先先搭建好我们的页面结构:

    <div class="m-header">
      <div class="m-header__logo">
        <img class="m-header__logo_img" src="" alt="" />
      </div>
      <div class="m-header__nav">
        <ul class="m-header__nav_ul">
          <li></li>
          <li></li>
        </ul>
      </div>
    </div>
    

    sass 写法:

    /* namespace-block__element_modifier */
    /* namespace-block */
    .m-header {
      /* element */
      &__logo {
        /* modifier */
        &_img {
        }
      }
      /* element */
      &__nav {
        /* modifier */
        &_ul {
        }
      }
    }
    

    总结

    程序的命名规范没有强制使用某一种,结合自己日常开发习惯,使用顺手的就可以了,当然同时用多种也可以,比如用驼峰式命名法定义函数,帕斯卡命名法定义变量可以提高辨别度等。以上,便是今天介绍到的全部内容,希望会对你有所帮助。


    最后,如果您有更好的方法,欢迎在留言区中分享;或者实际操作中遇到什么问题均可留言或者私信我,感谢您的观看!
    参考博客:
    BEM 命名规范-CSDN往后余生cq
    BEM 命名规范-知乎小思

    展开全文
  • 程序设计中,变量名、函数名、数组名等统称为标识 符。简单地说,标识符就是一个名字。除库函数的函数名由系统定义外,其余都由用户自定义。C语言规定,标识符只能由字母(a~z,A~Z)、数字 (0~9)、下划线(_)组成...
  • 【判断题】run方法是运行线程的主体,若run方法运行结束,线程就消亡了【单选题】在Java 程序中,下面哪个是不合法的标识符() (5.0分)【其它】请提交实验二压缩包【单选题】在DOS命令行状态下,如果源程序HelloWorld....
  • 这在程序风格这里好像是说不通的,编程风格就忌讳的就是没有风格,或者太多风格。对于C语言的变量命名而言,其实要做到太多风格其实是蛮困难的,因为C语言的变量必须是由数字、字母和下划线组成的,且数字不能开头的...
  • 关注+星标公众号,不错过精彩内容来源 | 程序喵大人在软件中随处可见命名:要给变量、函数、参数、类和封包命名,还要给源代码及源代码所在目录命名,甚至还有jar文件、war文件和ear文件命...
  • Java命名规范

    2021-02-28 13:08:53
    代码的组织与风格:2.1一个代码的缩进统一为4个空格,使用Tab键,不是敲4下空格2.2空格:A.所有的二元运算符,除了“.”,应该使用空格将之与操作数分开。一元操作符和操作数之间不应该加空格,比如:负号(“-”)...
  • java项目命名规范

    2021-03-06 03:55:46
    规范等级说明级别I: 默认...1.格式与命名规范(Formating and Naming Conventions)1.1 缩进使用Tab缩进,而不是空格键--将缩进2,4,8字符的选择权留给阅读者。1.2 换行每行120字符--因为已是1024*768的年代。if,for,...
  • 介绍 Linux 的命名空间

    2021-05-13 22:48:05
    从Linux 2.6.24版的内核开始,Linux 就支持6种不同类型的命名空间。它们的出现,使用户创建的进程能够与系统分离得更加彻底,从而背景从Linux 2.6.24版的内核开始,Linux 就支持6种不同类型的命名空间。它们的出现,...
  • 前端项目命名规范

    2021-01-05 14:03:30
    前端项目命名规范源码 参考阿里命名规范 <html lang="zh-cn"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name=...
  • 1.数据库表命名规范:(1)表名前应该加上前缀,表的前缀一个用系统或模块的英文名称缩写,前缀全部大写或首字母大写,表名中包含的单词首字母大写。(2)数据库表名应该有意义,并且易于理解,最好使用可以表达功能的...
  • 本篇文章我将向大家介绍C++中一个非常重要的语法,命名空间的概念。 首先一开始我想先请大家一段C语言代码: #include <stdio.h> int scanf = 0; int main() { printf("%d\n", scanf); } 很简单的一段代码...
  • c语言标识符命名规则

    2021-05-03 04:40:14
    尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。C语言的标识符...
  • php变量命名规则

    2021-03-23 12:04:59
    程序中的变量源于数学,在程序语言中能够储存结果或者表示抽象概念。简单理解变量是临时存储值的容器,它可以储存数字、文本、和一些复杂的数据(比如说字符串、复杂的排列组合等),变量在php语言中居于核心地位,是...
  • 数据库命名规范(表、字段名)数据库命名规范一.实体和属性的命名1.常用单词已经进行了缩写,在命名过程当中,根据语义拼凑缩写即可。注意,由于ORCAL数据库会将字段名称统一成大写或者小写中的一种,所以要求加上...
  • 浅谈vuex中store的命名空间为了防止store变的过于臃肿,我们可以为store注册模块,模块默认是属于全局命名空间的,也就是说当用下列代码分发action时,任意模块只要action中有addNews,就会得到执行this.$store....
  • 命名空间和程序集 创建类库的步骤: 在VS新建项目模板中,选择类库。编辑完成代码后生成dll文件。 namespace SuperLib { public class SquareWidget { public double SideLength = 0; public double Area { ...
  • 命名空间几乎所有的语言都有类似的机制,在Python中命名空间分三种,局部、全局和内建。或(四种,嵌套的局部作用域在Python中叫闭包 Enclosing)定义...分类python程序执行期间会有2个或3个活动的命名空间(函数调用...
  • 在我们编写代码时,常常面对命名困难问题(不是指命名规范,而是指一个贴切的变量或函数名),其实只要留意,就会发现很多优秀的开源代码或api接口有大量供我们参考的代码名词,可积累起来供平时工作使用。...
  • Linux发行版的系统目录命名规则和用途发布时间:2020-05-26 14:10:24来源:亿速云阅读:182作者:鸽子Linux文件系统名称区分大小写;以 . 开头的文件是隐藏文件/boot:引导文件存放目录,内核文件,引导加载器都存在...
  • 我一直再说库库库,但是我的库做的到底怎么样了呢?看官请赏脸评上几句,我还很年轻。以下都是开发手册的截图:TIA Programming Add-On Instructions and ... 71 AS Block制作(Creating AS block) 71.1 属性.....
  • 文件命名规则(1) 除了/之外,所有字符都合法(2) 特殊字符如@、#、¥、&、()、-、空格等最好不要使用,当使用空格作为文件名时,执行命令会出错(3) 避免使用”.”作为文件名的第一个字符,因为在Linux系统中以”....
  • 命名空间简单理解

    2021-06-12 04:17:41
    如何理解命名空间?使用命名空间有什么好处?嵌套命名空间它的含义是什么,怎么去理解??一个嵌套命名的空间即是一个嵌套作用域——其作用域嵌套在包含它命名空间内部。嵌套命名空间中的名字遵循常规规则:外围命名...
  • 命名空间 命名空间的本意是为了让代码结构更清晰,也顺便解决了类重名的问题。Java开发中不需要命名空间是因为java类是靠包名来区分的,而JavaScript这类的语言如果要实现区分同名对象就需要使用命名空间的思路设计...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 284,056
精华内容 113,622
关键字:

命名程序块