zoukankan      html  css  js  c++  java
  • Structured Query Language 入门 oracle

    今天总结一下oracle的sql 基础。

    o count(1)(*)(column)的区别
    o count 性能测试
    o 求第 2 大的值(四种方法)
    o SQL 完成日历
    o 分组行列转换实验
    o max(),min()的正确写法
    o SQLERROR 和 OSERROR 处理实例
    o 操作系统下执行 SQL
    o Echo,Heading,Feedback,Termout,Trimspool 的作用
    o 数值类型实验
    o 字符隐式转换实验
    o 数值类型性能测试
    o UROWID 实验
    o NVL 与 DECODE 的性能测试
    o 数值类型实验
    o 字符隐式转换实验
    o 数值类型性能测试
    o UROWID 实验
    o NVL 与 DECODE 的性能测试
    o DECODE 处理机制的区别
    o 复杂的 DECODE
    o CAST 的应用
    o NUMTOYMINTERVAL 的异常

      sql的 英文是Structured Query Language  结构化查询语言,而不是过程化。
    编程语言中的if......else if......else.....   就是 过程化的判断。
    decode,case 就是结构化的语法。decode(表达式,条件1,结果1,条件2,结果2,...)中间有几个条件与结果根据个人而定
    decode(sign(100-20),1,20,-1,100)意思是说当(100-20)大于零时,结果为20,而当(100-20)小于零时,结果为100,其中的sign只是一个判断符号的函数
    假如要对一个企业的员工进行工资调整,对于3000块以下的提高10%,3000块以上的提高5%,那么如果用我们一般的做法就是对工资进行判断,
    如果大于3000,就加5%,而低于3000的就加10%。不过现在有了这个Oracle decode函数,那么就可以简单的用下面的语句:
    select decode(sign(salary-3000),1,salary*1.1,-1,salary*1.05) from employee
    select decode( i, 5, 'five', 6, 'six', 'Else I just don''t know')    这里 don''t 实际返回的是 don't   引号里的字符串如果存在引号,则用两个引号来实现 

    先创建一个方法:

    create or replace function f return number

      as

      begin

        return 1/0;

      end;/  

    nvl是滤空函数,就像sqlserver中的isnull 一样。 不过oracle中有nvl 和nvl2 两个。

    在oracle 中 运行 select nvl(0,f()) from dual; 会报错。意思是但0 是null 的时候,就得到f() 方法的结果,要0不是null,就返回0本身。select nvl2(0,'not null',f())   两个在运行的时候是报错的,那是不是预编译的时候报错呢?不是,因为错误信息是:不能不被0 除。说明 0 不是null的情况下,f() 函数是运行了。

    只能说明甲骨文在设计的时候就是这样,不管符合不符合条件,所有的方法都会运行,报错,说明我们的代码写的有缺陷。

    select coalesce(0,f()) from dual; 返回第一个不是非空的值。 在9I 下是会报错的,但是在10G下是不会报错。

    select coalesce(null,1,2,3,4) from dual;
    select decode(0,0,'不执行 f()',f()) from dual;

  • 相关阅读:
    linux php.ini又一次载入问题
    String、StringBuilder、 StringBuffer 深入分析 源代码解析
    hdu 4902 Nice boat(线段树区间改动,输出终于序列)
    鸿雁电器oa系统中决策支持模块效果
    POJ3321:Apple Tree(树状数组)
    ASP.NET六大巨头——内置对象(1)
    insmod hello.ko -1 Invalid module format最简单的解决的方法
    poj
    iOS项目开发实战——制作视图的缩放动画
    读配置文件能够保持顺序的 Java Properties 类
  • 原文地址:https://www.cnblogs.com/liuhongliang1234/p/3415285.html
Copyright © 2011-2022 走看看