SQL ->>>>

1.

Code:
  1. Oracle中upper函数介绍   
  2. Upper()   
  3. 功能将字符串中的小写字母转换为大写字母。   
  4. 语法Upper( string )   
  5. 参数string:要将其中的小写字母转换为大写字母的字符串返回值String。   
  6. 函数执行成功时返回将小写字母转换为大写字母后的字符串,发生错误时返回空字符串("")。   
  7. 如果string参数的值为 NULLUpper()函数返回NULL。   
  8. 例如:   
  9. SQL> select upper('this is a test'from dual;   
  10. UPPER('THISISA   
  11. ----------------------------   
  12. THIS IS A TEST  

2.

Code:
  1. dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。我们可以用它来做很多事情,如下:  
  2.             http://soft.chinabyte.com/database/201/11444701.shtml

3.

Code:
  1. Oracle存储过程入门   
  2. http://blog.stnn.cc/sky_drop/Efp_Bl_1002777062.aspx 【这篇博文看起来会像看书一样】  

4.

Code:
  1. 写一个 存储过程   
  2.   
  3.   存储过程使用Oracle's PL/SQL 程序语言编写,让我们写一个什么工作都不做的存储过程,我们可以编译和运行它而不用担心会对数据库产生任何损害。   
  4.   
  5.   在Notepad, 写下:   
  6.   
  7.   CREATE OR REPLACE PROCEDURE skeleton   
  8.   
  9.   IS   
  10.   
  11.    BEGIN   
  12.   
  13.   NULL;   
  14.   
  15.   END;   
  16.   
  17.   把文件存为skeleton.sql.   
  18.   
  19.   让我们一 行行遍历这个存储过程:   
  20.   
  21.   1 CREATE OR REPLACE PROCEDURE skeleton   
  22.   
  23.   2 IS   
  24.   
  25.    3 BEGIN   
  26.   
  27.   4 NULL;   
  28.   
  29.   5 END;   
  30.   
  31.   行1:   
  32.   
  33.   CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做 skeleton存储过程, 如果存在就覆盖它;   
  34.   
  35.    行2:   
  36.   
  37.   IS关键词表明后面将跟随一个PL/SQL体。   
  38.   
  39.   行3:   
  40.   
  41.   BEGIN关键词表明PL/SQL 体的开始。   
  42.   
  43.   行4:   
  44.   
  45.   NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需要有一句;   
  46.   
  47.   行5:   
  48.   
  49.   END关键词表明 PL/SQL体的结束  

5.

Code:
  1. ORACLE replace和translate函数详解   
  2. replace:字符串级别的代替   
  3.   如:SELECT REPLACE('acdd','cd','ef') FROM dual; →aefd【整体】   
  4. translate:字符级别的代替   
  5.   如:SELECT TRANSLATE('acdd','cd','ef') FROM dual; →aeff【相应】  
  6.  
  7. 实战:

      如何判断一个字符串是否是数字?

      解:先转换:由于to_string不能为空,我们巧用#号代替

      select translate('abc123','#1234567890.','#') from dual;→abc

      from_string中的#被to_string中的#代替,但char中又没有#字符,所以通过这一步躲开了to_string必须不为空的规则。然后后面的数字以及小数点都转换为空,于是原来的字符串中只留下abc三个字符。

      转换好后,用nvl2判断即可:

      select nvl2(translate('abc123','#1234567890.','#'),'字符串','数字') from dual;→字符串

      nvl2的作用就是,NVL2 (expr1, expr2, expr3) ->expr1不为NULL,返回expr2;为NULL,返回expr3。这样我们就可以判断一个字符串是否是数字了!解毕!

    http://oracle.chinaitlab.com/exploiture/808365.html

  8.  

 6.

Code:
  1. /**ORACLE 自定义类型*/  
  2. 用 create type 变量 as table of 类型和 create type 变量 as object(   
  3. 字段1  类型1,   
  4. 字段2  类型2  
  5. );   
  6. 与 type 变量 is table of 类型 和 type 变量 is record(   
  7. 字段1  类型1,   
  8. 字段2  类型2  
  9. );   
  10. 区别是 用 create 后面用 as , 直接用 type 后面用 is   
  11. create 是创 object , 而 type 是创 record . 
  12.   http://xxciof.blog.163.com/blog/static/79781327200961721245149/ 

7.

Code:
  1. /***Oracle中index by binary_integer的作用*/  
  2. /*  
  3. 如语句:type  numbers  is table of number index by binary_integer;其作用是,加了”index by binary_integer ”后,numbers类型的下标就是自增长,numbers类型在插入元素时,不需要初始化,不需要每次extend增加一个空间。  
  4.   而如果没有这句话“index by binary_integer”,那就得要显示对初始化,且每插入一个元素到numbers类型的table中时,都需要先extend.  
  5. */  
  6. http://oracle.chinaitlab.com/exploiture/836063.html

8.

Code:
  1. //Oracle exist   
  2. 最大的作用就是加快查询数据量大的表的速度   
  3. SELECT department_id   
  4. FROM departments d   
  5. WHERE EXISTS   
  6. (SELECT * FROM employees e   
  7. WHERE d.department_id    
  8. = e.department_id);   
  9. 适用于department表小,employees表很大的情况   
  10. 如果反过来,就会严重影响查询速度   
  11.   
  12. SELECT department_id   
  13. FROM departments d,employees e   
  14.  WHERE d.department_id    
  15. = e.department_id;   
  16.   
  17.   
  18. 另外:   
  19. http://www.cnblogs.com/yf520gn/archive/2009/01/12/1374359.html  

 9_20110511

Code:
  1. //Oracle rownum   
  2. 但如果就是想要用 rownum > 10 这种条件的话话就要用嵌套语句,把 rownum 先生成,然后对他进行查询。   
  3. select *    
  4. from (selet rownum as rn,t1.* from a where ...)   
  5. where rn >10  
  6.   
  7. 一般代码中对结果集进行分页就是这么干的。   
  8.   
  9. look here:   
  10. http://bbs.linuxpk.com/thread-10595-1-1.html  

10

Code:
  1. //oracle nvl( arg,value) 方法   
  2. 等同于 (arg ==null)?value:arg;  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值