首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL ->>>&gt

2012-07-29 
SQL -1.Code:Oracle中upper函数介绍Upper() 功能将字符串中的小写字母转换为大写字母。 语法Upper(stri

SQL ->>>>

1.

Code:
  1. Oracle中upper函数介绍Upper()
  2. 功能将字符串中的小写字母转换为大写字母。 语法Upper(string)
  3. 参数string:要将其中的小写字母转换为大写字母的字符串返回值String。 函数执行成功时返回将小写字母转换为大写字母后的字符串,发生错误时返回空字符串("")。
  4. 如果string参数的值为NULL,Upper()函数返回NULL。 例如:
  5. SQL>selectupper('thisisatest')fromdual; UPPER('THISISA
  6. ---------------------------- THISISATEST

2.

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

3.

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

4.

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

5.

Code:
  1. ORACLEreplace和translate函数详解 replace:字符串级别的代替
  2.   如:SELECTREPLACE('acdd','cd','ef')FROMdual;→aefd【整体】 translate:字符级别的代替
  3.   如:SELECTTRANSLATE('acdd','cd','ef')FROMdual;→aeff【相应】
  4. 实战:

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

      解:先转换:由于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

6.

Code:
  1. /**ORACLE自定义类型*/用createtype变量astableof类型和createtype变量asobject(
  2. 字段1类型1, 字段2类型2
  3. ); 与type变量istableof类型和type变量isrecord(
  4. 字段1类型1, 字段2类型2);
  5. 区别是用create后面用as,直接用type后面用is create是创object,而type是创record.http://xxciof.blog.163.com/blog/static/79781327200961721245149/

7.

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

8.

Code:
  1. //Oracleexist 最大的作用就是加快查询数据量大的表的速度
  2. SELECTdepartment_id FROMdepartmentsd
  3. WHEREEXISTS (SELECT*FROMemployeese
  4. WHEREd.department_id =e.department_id);
  5. 适用于department表小,employees表很大的情况 如果反过来,就会严重影响查询速度
  6. SELECTdepartment_id
  7. FROMdepartmentsd,employeese WHEREd.department_id
  8. =e.department_id;
  9. 另外:
  10. http://www.cnblogs.com/yf520gn/archive/2009/01/12/1374359.html

9_20110511

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

10

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

热点排行