oracle 051学习笔记

  1. intersect语句为交集、minus为前者减去后者
  2. union、union all 时 order by 语句必须位于最后一个select后,且order by 语句所指定的第一个查询语句所指列如果有别名,则必须使用alias别名列。
  3. all、any(some)语句
    • all相当于对比值大于后者查询的最大值max
    • any相当于对比值大于后者查询的最小值min
  4. check contraint约束:对比必须返回为bool值,且对比不能引用其他表或行,且不能与诸如sysdate、userid、oraenv等函数进行比较。
  5. view视图可以进行dml操作限制(如果在创建的view结尾处添加with check option 选项,则dml操作必须满足view中定义的where条件)
    • 视图定义中不能使用order by、distinct、group by 等语句
    • 基表中非null字段必须存在于多定义的视图列中
    • 不可以包含如rownum,计算列、函数操作列等伪列
  6. nullif(exp1,exp2)   如果exp1=exp2则返回null,否则返回exp1
  7. COALESCE(expr1,expr2,exp3,exp4....):如果expr1不为null,则显示expr1否则显示判断expr2,以此类推。expn类型必须一致,否则会报错。
  8. nvl(exp1,exp2)函数,此函数执行前,首先比较exp1与exp2的类型,如果类型不一致,则隐式将exp2类型转为exp1类型,如果不能转换则报错。nvl2(exp1,exp2,exp3),返回类型应为exp2类型,如果exp2与exp3类型不一致,oracle会将exp3转为exp2类型。exp1为null,则返回exp3,否则返回exp2.
  1. varchar2中存储的字节数上界是4000. 参数NLS_LENGTH_SEMANTICS表示指定长度方法(select * from nls_database_parameters)。varchar2(10) 表示最多可以存储10个字节,varchar2(10 char)表示最多可以存储10个字符。即varchar2(N)并不一定存储N个字符,而只是存储N个字节。PL/SQL中varchar2最大可以达到32KB。不过,存储在表中,VARCHAR2则被硬性限制为最多只能存放4000字节。
  1. escape转义关键字,在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。
  2. to_char(n,[fmt,nlsparms]])   可以使用dg进行分割处理,其中d为小数点字符,g为分组字符。如 to_char(1890.55,99G999D00) 显示为1,890.55 .  FM去除空格 。   9999.0099 允许小数点左边最大4位,小数点右边最小2位,最多4位,且在小数点第五位进行四舍五入。  9的意思为有数字就显示没数字就不显示。0表示没有数字的地方也要用0显示填充.
  3. oracle 中的rownum是不支持排序的。
  4. oracle在Order by 时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前
  5. concat在oracle中只允许有两个参数,表示将两个参数连接在一起。
  6. instr函数: INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)  ,如果未找到则返回0
  7. Oracle TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。如例子:TRUNC(89.985,-1)=80   

    注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。

  8. trim函数:要删除指定的字符,只能是单个字符,而不能是多个字符。如果删除多个字符串需要使用rtrim或ltrim,其中所指定的多个字符表示出现任意所指定的字符都将删除。
  9. FM FX 用于对to_*函数控制空白填充或精确检查。

 

posted @ 2013-05-18 21:18  smart-liu  阅读(361)  评论(1编辑  收藏  举报