oracle PLSQL 语法详细手册_第1页
oracle PLSQL 语法详细手册_第2页
oracle PLSQL 语法详细手册_第3页
oracle PLSQL 语法详细手册_第4页
oracle PLSQL 语法详细手册_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SQL PL/SQL语法手册目 录第一部分 SQL 语法部分 . 错 误!未定义书签。一、 CREATE TABLE 语句 . 错 误!未定义书签。二、 CREATE SEQUENCE 语句 . . 错 误!未定义书签。三、 CREATE VIEW 语句 . 错 误!未定义书签。四、 INSERT 语句 : . 错 误!未定义书签。五、 UPDATE 语句 :. . 错 误!未定义书签。六、 DELETE 语句 : . 错 误!未定义书签。七、 TRUNCATE 语句 :. 错 误!未定义书签。八、 各类 FUNCTIONS:. 错 误!未定义书签。1. 转换函数 : . . 错误!未定义书签

2、。2. 日期函数 . . 错误!未定义书签。3. 字符函数 . . 错误!未定义书签。4. 数值函数 . . 错误!未定义书签。5. 单行函数 : . . 错误!未定义书签。6. 多行函数 . . 错误!未定义书签。 第二部分 PL/SQL语法部分 . . 错 误!未定义书签。一、 PL/SQL语言简介 . 错 误!未定义书签。二、 变量说明 . 错 误!未定义书签。三、 PL/SQL控制程序流 . 错 误!未定义书签。四、 存储过程 . 错 误!未定义书签。五、 存储函数 . 错 误!未定义书签。六、 PACKAGE . . 错 误!未定义书签。七、 触发器 . 错 误!未定义书签。八、 应

3、用实例 . 错 误!未定义书签。第一部分 SQL 语法部分一、 Create table 语句语句 : CREATE TABLE schema.table_name( column datatype DEFAULT expr column_constraint .| table_constraint, column datatype DEFAULT expr column_constraint .| table_constraint . PCTFREE integer PCTUSED integerINITRANS integer MAXTRANS integerTABLESPACE tabl

4、espaceSTORAGE storage_clause RECOVERABLE | UNRECOVERABLE PARALLEL ( DEGREE integer | DEFAULT INSTANCES integer | DEFAULT | NOPARALLEL CACHE | NOCACHE | CLUSTER cluster (column , column. ENABLE enable_clause| DISABLE disable_clause .AS subquery表是 Oracle 中最重要的数据库对象 , 表存储一些相似的数据集合 , 这些数据描述成若 干列或字段 .cre

5、ate table 语句的基本形式用来在数据库中创建容纳数据行的表 .create table 语句的简单形式接收表名 , 列名 , 列数据类型和大小 . 除了列名和描述外 , 还可以 指定约束条件 , 存储参数和该表是否是个 cluster 的一部分 .Schema 用来指定所建表的 owner, 如不指定则为当前登录的用户 .Table_name 用来指定所创建的表名 , 最长为 30个字符 , 但不可以数字开头 (可为下划 线 , 但不可同其它对象或 Oracle 的保留字冲突 .Column 用来指定表中的列名 , 最多 254个 .Datatype 用来指定列中存储什么类型的数据 ,

6、 并保证只有有效的数据才可以输入 . column_constraint 用来指定列约束 , 如某一列不可为空 , 则可指定为 not null.table_constraint 用来指定表约束 , 如表的主键 , 外键等 .Pctfree 用来指定表中数据增长而在 Oracle 块中预留的空间 . DEFAULT为 10%,也就是 说该表的每个块只能使用 90%,10%给数据行的增大时使用 .Pctused 用来指定一个水平线 , 当块中使用的空间低于该水平线时才可以向该中加入 新数据行 .Parallel 用来指定为加速该表的全表扫描可以使用的并行查询进程个数 .Cache 用来指定该表为

7、最应该缓存在 SGA 数据库缓冲池中的候选项 .Cluster 用来指定该表所存储的 cluster.Tablespace 用来指定用数据库的那个分区来存储该表的数据 .Recoverable|Unrecoverable 用来决定是否把对本表数据所作的变动写入 Redo 文件 . 以 恢复对数据的操作 .As 当不指定表的各列时 , 可利用 As 子句的查询结果来产生数据库结构和数据 . 例 :1 create table mytab1e(mydec decimal,myint intetertablespace user_datapctfree 5pctused 30;2 create ta

8、ble mytable2as ( select * from mytable1;二、 create sequence语句语句 : CREATE SEQUENCE schema.sequence_nameINCREMENT BY integerSTART WITH integerMAXVALUE integer | NOMAXVALUEMINVALUE integer | NOMINVALUECYCLE | NOCYCLECACHE integer | NOCACHEORDER | NOORDER序列用来为表的主键生成唯一的序列值 .Increment by 指定序列值每次增长的值Start w

9、ith 指定序列的第一个值Maxvalue 指定产生的序列的最大值Minvalue 指定产生的序列的最小值Cycle 指定当序列值逵到最大或最小值时 , 该序列是否循环 . Cache 指定序列生成器一次缓存的值的个数Order 指定序列中的数值是否按访问顺序排序 .例 :1 create sequence myseqincrement by 4start with 50maxvalue 60minvalue 50cyclecache 3;2sql create sequence new_s;sqlinsert into new (new_id,last_name,first_name val

10、ues(new_s.nextval, daur , permit ;三、 create view语句语句 : CREATE OR REPLACE FORCE | NOFORCE VIEW schema.view_name(alias ,alias.AS subqueryWITH CHECK OPTION CONSTRAINT constraint视图实际上是存储在数据库上旳 select 语句 . 每次在 sql 语句中使用视图时 , 表示 该视图的 select 语句就用来得到需要的数据 .Or replace 创建视图时如果视图已存在 , 有此选项 , 新视图会覆盖旧的视图 .Force

11、如有此选项 , 当视图基于的表不存在或在该模式中没有创建视图的权限 时 , 也可以建立视图 .As subquery 产生视图的 select 查询语句With check option 如果视图是基于单表的且表中所有的非空列都包含在视图中 时 , 该视图可用于 insert 和 update 语句中 , 本 选项保证在每次插 入或更新数据后 , 该数据可以在视 图中查到例 :1 create or place view new_vasselect substr(d.d_last_name,1,3,d.d_lastname,d.d_firstname,b.b_start_date,b.b_lo

12、cationfrom new1 d,new2 bwhere d.d_lastname=b.b_lastname;四、 INSERT 语句 :1. 语法INSERT INTO schema.table | view | subquery dblink (column , column . VALUES (expr , expr . | subqueryWHERE condition2. 插入单行使用 VALUES 关键词为新行的每一列指定一个值 . 如果不知道某列的值 , 可以使用 NULL 关键词将其值设为空值 (两个连续的逗号也可以表示空值 , 也可使用 NULL 关 键词 插入一行时试图为

13、那些 NOT NULL的列提供一个 NULL 值 , 会返回错误信息 .举例 :插入一条记录到 DEPARTMENT 表中INSERT INTO DEPARTMENT(DEPARTMENT_ID,NAME,LOCATION_IDVALUES (01, COMPUTER ,1673. 插入多行将 SELECT 语句检索出来的所有数据行都插入到表中 . 这条语句通常在从一个表向 另一个表快速复制数据行 .举例 :INSERT INTO ORDER_TEMPSELECT A.ORDER_ID,B.ITEM_ID,C.NAME,E.FIRST_NAME|.|E.LAST_NAME,A.ORDER_DA

14、TE,A.SHIP_DATE,D.DESCRIPTION,B.ACTUAL_PRICE,B.QUANTITY,B.TOTALFROM SALES_ORDER A, ITEM B, CUSTOMER C,PRODUCT D, EMPLOYEE EWHERE MONTHS_BETWEEN(TO_DATE(A.ORDER_DATE,TO_DATE(01-7月 -910AND A.CUSTOMER_ID=C.CUSTOMER_IDAND C.SALESPERSON_ID=E.EMPLOYEE_IDAND A.ORDER_ID=B.ORDER_IDAND B.PRODUCT_ID=D.PRODUCT_I

15、D4. 从其它表复制数据 :要快速地从一个表向另一个尚不存在的表复制数据 , 可以使用 CREATE TABLE语 句定义该表并同时将 SELECT 语句检索的结果复制到新表中 .CREATE TABLE EMPLOYEE_COPYASSELECT *FROM EMPLOYEE五、 UPDATE 语句 :1. 语法UPDATE schema.table | view | subquerydblink aliasSET (column , column . = (subquery| column = expr | (subquery , (column , column . = (subquer

16、y| column = expr | (subquery .WHERE conditionUPDATE 语句更新所有满足 WHERE 子句条件的数据行 . 同样 , 该语句可以用 SELECT 语句检索得到 . 但 SELECT 必须只检索到一行数据值 . 否则报错 . 而且每更新 一行数据 , 均要执行一次 SELECT 语句 .举例 :UPDATE EMPLOYEE_COPSET SALARY=SALARY-400WHERE TO_NUMBER(TO_CHAR(HIRE_DATE,YYMMDD850101UPDATE ITEM_COP ASET A.ACTUAL_PRICE=(SELECT

17、 B.LIST_PRICEFROM PRICE B,SALES_ORDER CWHERE A.PRODUCT_ID=B.PRODUCT_ID ANDA.ORDER_ID=C.ORDER_ID ANDTO_NUMBER(TO_CHAR(C.ORDER_DATE,YYYYMMDDBETWEENTO_NUMBER(TO_CHAR(B.START_DATE,YYYYMMDD ANDNVL(TO_NUMBER(TO_CHAR(END_DATE,YYYYMMDD,29991231六、 DELETE 语句 :1. 语法DELETE FROM schema.table | viewdblink alias W

18、HERE conditionDELETE 语句删除所有满足 WHERE 子句条件的数据行 .举例 :DELETE FROM itemWHERE ORDER_ID=510七、 TRUNCATE 语句 :1. 语法TRUNCATE schema.table八、 各类 Functions:1. 转换函数 :1.1. 函數 :TO_CHAR语法 :TO_CHAR(number,format用途 :将一个数值转换成与之等价的字符串 . 如果不指定格式 , 将转换成最简单的字符串形式 . 如果为负数就在前面加一个减号 .Oracle 为数值提供了很多格式 , 下表列出了部分可接受的格式 : 1.2. 函數

19、 :TO_CHAR语法 :TO_CHAR(date,format用途 :将按 format 参数指定的格式将日期值转换成相应的字符串形式 . 同样 ,Oracle 提供许多的 格式模型 , 用户可以用它们的组合来表示最终的输出格式 . 唯一限制就是最终的掩码不能 超过 22个字符 . 下表列出了部分日期格式化元素 .Oracle 为数值提供了很多格式 , 下表列出了部分可接受的格式 : 1.3. 函數 :TO_DATE语法 :TO_DATE(string,format用途 :根据给定的格式将一个字符串转换成 Oracle 的日期值 .该函数的主要用途是用来验证输入的日期值 . 在应用程序中 ,

20、 用户必须验证输入日期是否 有效 , 如月份是否在 112之间和日期中的天数是否在指定月份的天数内 .1.4. 函數 :TO_NUMBER语法 :TO_NUMBER(string,format用途 :该函数将一个字符串转换成相应的数值 . 对于简单的字符串转换数值 (例如几位数字加 上小数点 . 格式是可选的 .2. 日期函数2.1. 函數 :ADD_MONTHS语法 :ADD_MONTHS(date,number用途 :在日期 date 上加指定的月数 , 返回一个新日期 . 如果给定为负数 , 返回值为日期 date 之前几 个月的日期 .number 应当是个整数 , 如果是小数 , 正

21、数被截为小于该数的最大整数 , 负数被 截为大于该数的最小整数 .例如 :SELECT TO_CHAR(ADD_MONTHS(sysdate,1,DD-MON-YYYY Next monthFROM dualNext month-19-FEB-20002.2. 函數 :LAST_DAY语法 :LAST_DAY(date用途 :返回日期 date 所在月份的最后一天的日期 .例如 :SELECT SYSDATE, LAST_DAY(SYSDATE Last,LAST_DAY(SYSDATE - SYSDATE Days LeftFROM DUALSYSDATE Last Days Left- -

22、 -19-JAN-00 31-JAN-00 122.3. 函數 :MONTHS_BETWEEN语法 :MONTHS_BETWEEN(date1,date2用途 :返回两个日期之间的月份 . 如果两个日期月份内的天数相同 (或者都是某个月的最后一 天 , 返回值是整数 . 否则 , 返回值是小数 , 每于 1/31月来计算月中剩余天数 . 如果第二个日期 比第一个日期还早 , 则返回值是负数 .例如 :SELECT MONTHS_BETWEEN(TO_DATE(02-02-1992, MM-DD-YYYY,TO_DATE(01-01-1992, MM-DD-YYYYMonthsFROM DUAL

23、Months-1.03225806SELECT MONTHS_BETWEEN(TO_DATE(02-29-1992, MM-DD-YYYY,TO_DATE(01-31-1992, MM-DD-YYYYMonthsFROM DUALMonths-12.4. 函數 :NEXT_DAY语法 :NEXT_DAY(date,day用途 :该函数返回日期 date 指定若天后的日期 . 注意 :参数 day 必须为星期 , 可以星期几的英文完 整拼写 , 或前三个字母缩写 , 或数字 1,2,3,4,5,6,7分别表示星期日到星期六 . 例如 , 查询返回 本月最后一个星期五的日期 .例如 :SELECT

24、 NEXT_DAY(last_day(sysdate-7,FRIDAYFROM dualNEXT_DAY(-28-JAN-002.5. 函數 :ROUND语法 :NEXT_DAY(date,format用途 :该函数把一个日期四舍五入到最接近格式元素指定的形式 . 如果省略 format, 只返回 date 的日期部分 . 例如 , 如果想把时间 (24/01/00 14:58:41四舍五入到最近的小时 . 下表显示了所 有可用格式元素对日期的影响 . 例如 :SELECT to_char(ROUND(sysdate,HH,DD-MON-YY HH24:MI:SSFROM dualTO_CHA

25、R(ROUND(SYSDATE,HH,DD-MON-YYHH24:MI:SS-24-JAN-00 15:00:002.6. 函數 :TRUNC语法 :TRUNC(date,format用途 :TRUNC 函数与 ROUND 很相似 , 它根据指定的格式掩码元素 , 只返回输入日期用户所关心 的那部分 , 与 ROUND 有所不同 , 它删除更精确的时间部分 , 而不是将其四舍五入 .例如 :SELECT TRUNC(sysdateFROM dualTRUNC(SYS-24-JAN-00FLOOR 函数:求两个日期之间的天数用;select floor(sysdate - to_date(200

26、80805,yyyymmdd from dual;3. 字符函数3.1. 函數 :ASCII语法 :ASCII(character用途 :返回指定字符的 ASCII 码值 . 如果为字符串时 , 返回第一个字符的 ASCII 码值 .例如 :SELECT ASCII(ZFROM dualASCII(Z-903.2. 函數 :CHR语法 :CHR(number用途 :该函数执行 ASCII 函数的反操作 , 返回其 ASCII 码值等于数值 number 的字符 . 该函数通常 用于向字符串中添加不可打印字符 .例如 :SELECT CHR(65|BCDEFFROM dualCHR(65-ABC

27、DEF3.3. 函數 :CONCAT语法 :CONCAT(string1,string2用途 :该函数用于连接两个字符串 , 将 string2跟在 string1后面返回 , 它等价于连接操作符 (|.例如 :SELECT CONCAT( This is a , computer FROM dualCONCAT(THISISA,-This is a computer它也可以写成这样 :SELECT This is a | computerFROM dualTHISISA|COMPUT-This is a computer这两个语句的结果是完全相同的 , 但应尽可能地使用 |操作符 .3.4.

28、 函數 :INITCAP语法 :INITCAP(string用途 :该函数将字符串 string 中每个单词的第 1个字母变成大写字母 , 其它字符为小写字母 . 例如 :SELECT INITCAP(first_name|.|last_nameFROM employeeWHERE department_id=12INITCAP(FIRST_NAME|.|LAST_N-Chris.AlbertsMatthew.FisherGrace.RobertsMichael.Douglas3.5. 函數 :INSTR语法 :INSTR(input_string,search_string,n,m用途 :该

29、函数是从字符串 input_string的第 n 个字符开始查找搜索字符串的第 m 次出现 , 如果没 有找到搜索的字符串 , 函数将返回 0. 如果找到 , 函数将返回位置 .例如 :SELECT INSTR(the quick sly fox jumped over thelazy brown dog,the,2,1FROM dualINSTR(THEQUICKSLYFOXJUMPEDOVERTHELAZYBROWNDOG,THE,2,1-313.6. 函數 :INSTRB语法 :INSTRB(input_string,search_string,n,m用途 :该函数类似于 INSTR 函

30、数 , 不同之处在于 INSTRB 函数返回搜索字符串出现的字节数 , 而 不是字符数 . 在 NLS 字符集中仅包含单字符时 ,INSTRB 函数和 INSTR 函数是完全相同的 .3.7. 函數 :LENGTH语法 :LENGTH(string用途 :该函数用于返回输入字符串的字符数 . 返回的长度并非字段所定义的长度 , 而只是字段中 占满字符的部分 . 以列实例中 , 字段 first_name定义为 varchar2(15.语法 :SELECT first_name,LENGTH(first_nameFROM employeeFIRST_NAME LENGTH(FIRST_NAME-

31、 -JOHN 4KEVIN 53.8. 函數 :LENGTHB语法 :LENGTHB(string用途 :该函数用于返回输入字符串的字节数 . 对于只包含单字节字符的字符集来说 LENGTHB 函数和 LENGTH 函数完全一样 .3.9. 函數 :LOWER语法 :LOWER(string用途 :该函数将字符串 string 全部转换为小写字母 , 对于数字和其它非字母字符 , 不执行任何转 换 .3.10. 函數 :UPPER语法 :UPPER(string用途 :该函数将字符串 string 全部转换为大写字母 , 对于数字和其它非字母字符 , 不执行任何转 换 .3.11. 函數 :L

32、PAD语法 :LPAD(string,length, set 用途 :在字符串 string 的左边加上一个指定的字符集 set, 从而使串的长度达到指定的长度 length. 参数 set 可以是单个字符 , 也可以是字符串 . 如果 string 的长度小于 length 时 , 取 string 字符 串的前 length 个字符 .语法 :SELECT first_name,LPAD(first_name,20, FROM employeeFIRST_NAME LPAD(FIRST_NAME,20,- -JOHN JOHNKEVIN KEVIN3.12. 函數 :RPAD语法 :RPA

33、D(string,length, set 用途 :在字符串 string 的右边加上一个指定的字符集 set, 从而使串的长度达到指定的长度 length. 参数 set 可以是单个字符 , 也可以是字符串 . 如果 string 的长度小于 length 时 , 取 string 字符 串的前 length 个字符 .例如 :SELECT first_name,rpad(first_name,20,-FROM employeeFIRST_NAME RPAD(FIRST_NAME,20,- -JOHN JOHN-KEVIN KEVIN-3.13. 函數 :LTRIM语法 :LTRIM(stri

34、ng, set 用途 :该函数从字符串的左边开始 , 去掉字符串 set 中的字符 , 直到看到第一个不在字符串 set 中 的字符为止 .例如 :SELECT first_name,ltrim(first_name,BAFROM employeeWHERE first_name=BARBARAFIRST_NAME LTRIM(FIRST_NAM- -BARBARA RBARA3.14. 函數 :RTRIM语法 :RTRIM(string, set 用途 :该函数从字符串的右边开始 , 去掉字符串 set 中的字符 , 直到看到第一个不在字符串 set 中 的字符为止 . 具有 NULL 值的

35、字段不能与具有空白字符的字段相比较 .这是因为空白字符与 NULL 字符是完全不同的两种字符 . 该函数的另外一个用途是当进 行字段连接时去掉不需要的字符 .3.15. 函數 :SUBSTR语法 :SUBSTR(string,start,length用途 :该函数从输入字符串中取出一个子串 , 从 start 字符处开始取指定长度的字符串 , 如果不指 定长度 , 返回从 start 字符处开始至字符串的末尾 .3.16. 函數 :REPLACE语法 :REPLACE(string,search_set,replace_set用途 :该函数将字符串中所有出现的 search_set都替换成 r

36、eplace_set字符串 . 可以使用该函将字 符串中所有出现的符号都替换成某个有效的名字 . 如果不指定 replace_set,则将从字符串 string 中删除所有的搜索字符串 search_set.例如 :SELECT REPLACE(abcdefbdcdabc,dsssdcdrd,abc,ABCFROM dualREPLACE(ABCDEFBDCDABC,-ABCdefbdcdABC,dsssdcdrd3.17. 函數 :TRANSLATE语法 :TRANSLATE(string,search_set,replace_set用途 :该函数用于将所有出现在搜索字符集 search_s

37、et中的字符转换成替换字符集 replace_set中的相应字符 . 注意 :如果字符串 string 中的某个字符没有出现在搜索字符集中 . 则它将原 封不动地返回 . 如果替换字符集 replace_set比搜索字符集 search_set小 , 那么搜索字符集 search_set中后面的字符串将从字符串 string 中删除 .例如 :SELECT TRANSLATE(GYK-87M,0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ, 9999999999xxxxxxxxxxxxxxFROM dualTRANSL-xx-99x4. 数值函数4.1. 函數 :AB

38、S语法 :ABS(number用途 :该函数返回数值 number 的绝对值 . 绝对值就是一个数去掉符号的那部分 . 4.2. 函數 :SQRT语法 :SQRT(number用途 :该函数返回数值 number 的平方根 , 输入值必须大于等于 0, 否则返回错误 . 4.3. 函數 :CEIL语法 :CEIL(number用途 :该函数返回大于等于输入值的下一个整数 .4.4. 函數 :FLOOR语法 :FLOOR(number用途 :该函数返回小于等于 number 的最大整数 .4.5. 函數 :MOD语法 :MOD(n,m用途 :该函数返回 n 除 m 的模 , 结果是 n 除 m

39、的剩余部分 .m,n 可以是小数 , 负数 .4.6. 函數 :POWER语法 :POWER(x,y用途 :该函数执行 LOG 函数的反操作 , 返回 x 的 y 次方 .4.7. 函數 :ROUND语法 :ROUND(number,decimal_digits用途 :该函数将数值 number 四舍五入到指定的小数位 . 如果 decimal_digits为 0, 则返回整 数 .decimal_digits可以为负数 .4.8. 函數 :TRUNC语法 :TRUNC(number,decimal_pluces用途 :该函数在指定的小数字上把一个数值截掉 . 如果不指定精度 , 函数预设精度

40、为 0. decimal_pluces可以为负数 .4.9. 函數 :SIGN语法 :SIGN(number用途 :该函数返回 number 的符号 , 如果 number 为正数则返回 1, 为负数则返回 -1, 为 0则返回 0. 4.10. 函數 :SIN语法 :SIN(number用途 :该函数返回弧度 number 的正弦值 .4.11. 函數 :SINH语法 :SINH(number用途 :该函数返回 number 的返正弦值 .4.12. 函數 :COS语法 :COS(number用途 :该函数返回弧度 number 的三角余弦值 . 要用角度计算余弦 , 可以将输入值乘以 0.

41、01745转 换成弧度后再计算 .4.13. 函數 :COSH语法 :COSH(number用途 :该函数返回输入值的反余弦值 . 4.14. 函數 :TAN语法 :TAN(number用途 :该函数返回弧度 number 的正切值 . 4.15. 函數 :TANH语法 :TANH(number用途 :该函数返回数值 number 的反正切值 . 4.16. 函數 :LN语法 :LN(number用途 :该函数返回 number 自然对数 .4.17. 函數 :EXP语法 :EXP(number用途 :该函数返回 e(2.71828183的 number 次方 . 该函数执行自然对数的反过程

42、. 4.18. 函數 :LOG语法 :LOG(base,number用途 :该函数返回 base 为底 , 输入值 number 的对数 .5. 单行函数 :单行函数中可以对任何数据类型的数据进行操作 .5.1. 函數 :DUMP语法 :DUMP(expression,format,start,length用途 :该函数按指定的格式显示输入数据的内部表示 . 下表列出了有效的格式 . 例如 :SELECT DUMP(FARRELL,16FROM dualDUMP(FARRELL,16-Typ=96 Len=7: 46,41,52,52,45,4c,4c5.2. 函數 :GREATEST语法 :

43、GREATEST(list of values用途 :该函数返回列表中项的最大值 . 对数值或日期来说 , 返回值是最大值或最晚日期 , 如果列 表中包含字符串 , 返回值是按字母顺序列表中的最后一项 .例如 :SELECT GREATEST(123,234,432,112FROM dualGREATEST(123,234,432,112-4325.3. 函數 :LEAST语法 :LEAST(list of values用途 :该函数返回列表中项的最小值 . 对数值或日期来说 , 返回值是最小值或最早日期 , 如果列 表中包含字符串 , 返回值是按字母顺序列表中的第一项 .例如 :SELECT

44、 LEAST(sysdate,sysdate-10FROM dualLEAST(SYS-10-JAN-005.4. 函數 :NVL语法 :NVL(expression,replacement_value用途 :如果表达式不为空值 , 函数返回该表达式的值 , 如果是空值 , 就返回用来替换的值 .例如 :SELECT last_name,NVL(TO_CHAR(COMMISSION,NOT APPLICABLEFROM employeeWHERE department_id=30LAST_NAME NVL(TO_CHAR(COMMISSION,NOTAPPLICABLE- -ALLEN 300

45、WARD 500MARTIN 1400BLAKE NOT APPLICABLE6. 多行函数组函数可以对表达式的所有值操作 , 也可以只对其中不同值进行操作 , 组函数的语法如下 所示 :functionDISTINCT|ALL expression如果既不指定 DISTINCT, 也不指定 ALL, 函数将对查询返回的所有数据行进行操作 . 不能 在同一个 SELECT 语句的选择列中同时使用组函数和单行函数 .6.1. 函數 :AVG语法 :AVG(DISTINCT|ALL expression用途 :对查询返回的数据行求平均值 .例如 :SELECT AVG(sal AverageFROM empAverage-2073.214296.2. 函數 :COUNT语法 :COUNT(DISTINCT|ALL expression用途 :计算表达式的个数 . 要计算 EMP 表中雇员的个数 .例如 :SELECT COUNT(deptnoFROM empCOUNT(DEPTNO-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论