oracle plsql宝典学习笔记

合集下载

PLSQL循序渐进全面学习教程(全)

PLSQL循序渐进全面学习教程(全)

PLSQL循序渐进全面学习教程(全)PL/SQL是用于Oracle数据库的编程语言,它结合了SQL语句的数据操作能力和一般编程语言的逻辑控制能力。

PL/SQL循序渐进的全面学习教程将帮助你逐步学习和掌握PL/SQL的各个方面。

1.简介和基础知识:-PL/SQL的概念和背景-PL/SQL的开发工具和环境-PL/SQL和SQL的关系-PL/SQL的基本语法和数据类型2.变量和常量:-PL/SQL变量的声明和使用-不同类型的变量和数据类型-常量的定义和使用3.控制结构:-IF-THEN语句和IF-THEN-ELSE语句-CASE语句的使用-循环语句(FOR循环、WHILE循环)4.异常处理:-异常的概念和分类-异常处理的方法和语句-自定义异常和错误处理5.子程序和函数:-PL/SQL子程序和函数的概念和用途-创建和调用子程序和函数-参数传递和返回值6.游标和结果集:-游标的概念和使用场景-游标的声明、打开、关闭和绑定-使用游标处理结果集和数据集7.触发器:-触发器的概念和作用-创建和使用触发器-触发器的触发事件和触发时机8.包和包体:-包和包体的定义和特点-创建和使用包和包体-包的封装和共享9.过程和函数:-过程和函数的概念和区别-创建和使用过程和函数-过程和函数的编写和调用10.使用PL/SQL开发应用程序:-使用PL/SQL编写数据库操作代码-使用PL/SQL开发业务逻辑-PL/SQL和其他编程语言的集成以上是PL/SQL循序渐进全面学习教程的大纲,你可以根据自己的学习进度逐步深入学习每个主题。

希望这个教程对你学习和掌握PL/SQL编程语言有所帮助!。

plsql使用技巧

plsql使用技巧

plsql使用技巧PL/SQL(Procedural Language/Structured Query Language)是一种过程性的编程语言,用于Oracle数据库的开发和管理。

它结合了SQL语句和基于编程的语言元素,从而允许开发人员编写复杂的业务逻辑和数据处理程序。

以下是一些PL/SQL使用技巧,可以帮助您更好地利用这个强大的工具。

1. 使用块来组织代码:PL/SQL程序由一个或多个块组成,每个块由BEGIN和END语句包围。

使用块可以将相关的代码段组合在一起,并简化代码的调试和维护。

2. 使用异常处理来处理错误:PL/SQL提供了异常处理机制,可以捕获和处理程序中的错误。

通过使用异常处理,可以使程序更加健壮,并提供更好的用户体验。

3. 使用游标来处理查询结果:游标是一种用于操作查询结果的PL/SQL对象。

通过使用游标,可以对查询结果进行逐行处理,并执行各种操作,如插入、更新或删除。

4. 使用PL/SQL表来处理临时数据:PL/SQL提供了PL/SQL 表,这是一种在内存中存储数据的临时表。

使用PL/SQL表可以大大提高程序的性能,因为它们比数据库表更快。

5. 使用存储过程和函数来封装业务逻辑:存储过程和函数是PL/SQL程序的一种类型,它们允许将一系列SQL语句封装到一个可重用的代码块中。

使用存储过程和函数可以提高代码的可维护性和重用性。

6. 使用触发器来自动执行任务:PL/SQL触发器是与数据库表相关联的一种代码块,当满足特定条件时,会自动执行。

使用触发器可以实现自动化任务,如在插入、更新或删除行时执行某些操作。

7. 使用游程来优化数据处理:游程是一种PL/SQL特性,可以将一组记录作为一个单元处理,而不是逐行处理。

通过使用游程,可以大大提高程序的性能,尤其是当需要处理大量数据时。

8. 使用动态SQL来处理动态查询:PL/SQL提供了动态SQL的能力,这使得可以在运行时构建和执行SQL语句。

plsql用法,操作介绍

plsql用法,操作介绍

plsql用法,操作介绍PL/SQL是Oracle数据库中一种重要的编程语言,它提供了强大的数据处理和数据库操作能力。

本文将向大家介绍PL/SQL的用法和操作。

一、PL/SQL基础PL/SQL是一种过程化的编程语言,它可以在Oracle数据库中执行存储过程、函数、触发器和包等对象。

这些对象可以由用户自定义,并在数据库中存储,以供其他用户调用。

PL/SQL提供了丰富的数据类型、控制结构、函数和过程,使得开发者可以方便地编写复杂的数据库操作程序。

二、PL/SQL语法1. 声明语句:在PL/SQL中,需要先声明变量和常量,常见的声明语句有:变量声明(如:变量类型数据类型;),常量声明(如:CONST 常量名数据类型 = 值)。

2. 条件语句:PL/SQL支持多种条件语句,如IF-THEN-ELSE,CASE表达式等。

3. 循环语句:PL/SQL支持FOR循环、WHILE循环和LOOP循环等。

4. 异常处理:PL/SQL提供了异常处理机制,可以捕获和处理运行时出现的错误。

5. 函数和过程:PL/SQL支持定义函数和过程,可以对数据进行操作并返回结果。

三、PL/SQL操作1. 创建存储过程:可以使用CREATE PROCEDURE语句创建存储过程,指定过程的名称、参数和执行逻辑。

2. 调用存储过程:可以使用CALL语句调用存储过程,并传递参数。

3. 创建函数:可以使用CREATE FUNCTION语句创建函数,指定函数的名称、参数和返回值类型。

4. 调用函数:可以使用直接调用函数的方式或通过存储过程调用函数。

5. 创建触发器:可以使用CREATE TRIGGER语句创建触发器,用于在数据插入、更新或删除时触发特定的操作。

6. 修改和删除对象:可以使用ALTER PROCEDURE、DROP PROCEDURE、DROP FUNCTION等语句修改或删除已存在的PL/SQL对象。

四、示例以下是一个简单的PL/SQL程序示例,用于将输入的字符串转换为大写并输出:```plsqlDECLAREv_str VARCHAR2(100);v_upper VARCHAR2(100);BEGIN-- 获取输入字符串:in_str := 'hello world';v_str := :in_str;-- 将字符串转换为大写并输出v_upper := UPPER(v_str);DBMS_OUTPUT.PUT_LINE('转换后的字符串为: ' || v_upper);END;```在上述示例中,我们使用了DECLARE语句声明了两个变量v_str 和v_upper,分别用于存储输入的字符串和转换后的结果。

精通 oracle 10g plsql 编程-学习笔记

精通 oracle 10g plsql 编程-学习笔记

1.PL/SQL综述本章学习目标,了解如下内容:PL/SQL的功能和作用PL/SQL 的优点和特征;Oracle 10g、Oracle9i 的PL/SQL新特征1.1.SQL简介1.1.1.SQL语言特点SQL语言采用集合操作方式1.1.2.SQL语言分类●数据查询语言(SELECT语句):检索数据库数据。

●数据操纵语言(DML):用于改变数据库数据。

包括insert,update和delete三条语句。

●事务控制语言(TCL):用于维护数据库的一致性,包括commit,rollback和savepoint 三条语句●数据定义语言(DDL):用户建立、修改和删除数据库对象。

●数据控制语言(DDL):用于执行权限授予和收回操作。

包括grant 和revoke两条命令。

1.1.3.SQL 语句编写规则●SQL关键字不区分大小写●对象名和列名不区分大小写●字符值和日期值区分大小写●书写格式随意1.2.PL/SQL简介1.3.Oracle 10G PL/SQL 新特征2.PL/SQL开发工具本章学习目标:学会使用SQL*PLUS学会使用PL/SQL developer;学会使用Procedure Builder。

2.1.SQL*PLUS在命令行运行SQL*PlusSqlplus [username]/[password] [@server]3.PL/SQL 基础学习目标:●了解PL/SQL块的基本结构以及PL/SQL块的分类;●学会在PL/SQL块中定义和使用变量●学会在PL/SQL块中编写可执行语句;●了解编写PL/SQL代码的指导方针;●了解Oracle 10g的新特征——新数据类型BINARY_FLOAT 和BINARY_DOUBLE,以及指定字符串文本的新方法。

3.1.PL/SQL 块简介3.1.1.PL/SQL块结构3.1.2.PL/SQL 块分类匿名块命名块子程序触发器3.2. 定义并使用变量3.2.1.标量变量3.2.2.复合变量3.2.3.参照变量3.2.4.LOB 变量3.2.5.非PL/SQL 变量3.3.编写 PL/SQL 代码3.3.1.PL/SQL 词汇单元分隔符标识符文本(数字文本,字符文本,字符串文本,布尔文本,日期时间文本)注释3.3.2.PL/SQL 代码编码规则标识符命名规则大小写规则代码缩进嵌套块和变量范围PL/SQL中可以使用的SQL函数4.使用SQL语句学习目标:学会使用SELECT语句去完成基本查询功能学会使用INSERT,UPDA TE和DELETE语句去操作数据库数据学会使用COMMIT,ROLLBACK和SA VEPOINT语句去控制事务学会使用SELECT语句去实现各种复杂查询功能(数据分组、连接查询、子查询、层次查询、合并查询等)4.1.使用基本查询处理NULL:函数nvl(expr1,expr2),nvl2(expr1,expr2,expr3)4.2.使用DML语句使用多表插入数据语法:INSERT ALL insert_into_clause [value_clause] subquery;INSERT conditional_insert_clause subquery;示例1:使用ALL 操作符执行多表插入INSERT ALLWHEN deptno=10 THEN INTO dept10WHEN deptno=20 THEN INTO dept20WHEN deptno=30 THEN INTO dept30WHEN job=’CLERK’ THEN INTO clerkELSE INTO otherSelect * from emp;示例2:使用FIRST 操作符执行多表插入INSERT FIRSTWHEN deptno=10 THEN INTO dept10WHEN deptno=20 THEN INTO dept20WHEN deptno=30 THEN INTO dept30WHEN job=’CLERK’ THEN INTO clerkELSE INTO otherSELECT * FROM emp;4.3.使用事务控制语句4.3.1.事务和锁4.3.2.提交事务4.3.3.回退事务设置保存点:savepoint a;或者exec dbms_transaction.savepoint(‘a’)取消部分事务Rollback to a;或者Exec dbms_transaction.rollback_savepoint(‘a’)取消全部事务:Rollback; 或者exec dbms_transaction.rollback() 4.3.4.只读事务4.3.5.顺序事务4.4.数据分组4.4.1.分组函数MaxMinAvgSumCountVarianceStddev使用分组函数注意事项:●当使用分组函数时,除了函数Count(*) 之外,其他分组函数都会忽略NULL行。

plsql 使用技巧

plsql 使用技巧

plsql 使用技巧PL/SQL是Oracle数据库中的一种编程语言,它结合了SQL语句和过程性编程语言的特点,提供了一种强大的数据库开发工具。

下面是一些PL/SQL使用技巧:1. 使用块:块是PL/SQL程序的基本单元。

使用块可以将一组相关的语句组织在一起,并提供一些错误处理机制。

块通常用于存储过程、触发器和函数中。

2. 使用游标:游标是用于在PL/SQL程序中处理查询结果的一种机制。

使用游标可以逐行处理查询结果,提供更灵活的数据操作方式。

3. 使用异常处理:异常处理是一种处理程序运行过程中出现异常的机制。

在PL/SQL中,可以使用EXCEPTION块来处理异常情况,提高程序的稳定性。

4. 使用存储过程和函数:存储过程和函数是一种将一组SQL语句和过程性语句组织在一起的机制。

使用存储过程和函数可以将复杂的逻辑封装起来,提高程序的可维护性和重用性。

5. 使用触发器:触发器是在数据库表中定义的一种特殊类型的存储过程。

使用触发器可以根据数据库表中的数据变化触发特定的逻辑处理。

6. 使用PL/SQL调试器:PL/SQL调试器是一种用于调试PL/SQL程序的工具。

使用调试器可以逐步执行PL/SQL代码,并查看变量的值和程序执行的状态,方便程序的调试和排错。

7. 使用PL/SQL包:PL/SQL包是将相关的存储过程、函数和变量组织在一起的一种机制。

使用包可以提供更好的模块化和封装性,方便程序的管理和维护。

8. 使用PL/SQL游标变量:PL/SQL游标变量是一种特殊的变量类型,用于在程序中保存游标的状态。

使用游标变量可以提高游标的灵活性和可重用性。

9. 使用PL/SQL集合类型:PL/SQL提供了各种集合类型,如数组、表和记录。

使用集合类型可以方便地处理多个数据元素,提高程序的性能和可读性。

10. 使用PL/SQL优化技巧:在编写和调试PL/SQL程序时,可以使用一些优化技巧来提高程序的性能。

例如,使用合适的索引、批量操作和合理的逻辑结构等。

Oracle PLSQL从入门到精通 第16章

Oracle PLSQL从入门到精通 第16章
如果重新声明的内置函数是一个独立子程序,那么要 访问该子程序,就必须在这个子程序前冠以模式名; 如,DOG.TO_CHAR
2019/11/29
———— 不可不求,也不可强求 ————
7
前向引用所造成的问题
与其它块状结构的程序设计语言类似,PL/SQL语言 不允许向前引用
CREATE OR REPLACE PACKAGE BODY forward_pkg IS PROCEDURE award_bonus(. . .) IS BEGIN calc_rating (. . .); --illegal reference END;
9
软件包的初始化
在软件包体结尾处的程序块只执行一次、被用于初始 化软件包中的公共和私有变量:
CREATE OR REPLACE PACKAGE BODY salary_pkg IS FUNCTION validate(p_sal NUMBER, p_grade NUMBER) RETURN BOOLEAN; PROCEDURE reset_salary(p_new_sal NUMBER, p_grade NUMBER) IS BEGIN ...... FUNCTION validate(p_sal NUMBER, p_grade NUMBER) RETURN BOOLEAN IS ......
END employee_pkg;
CREATE OR REPLACE PACKAGE BODY employee_pkg IS CURSOR emp_cursor IS SELECT empno FROM emp;
PROCEDURE open_emp IS BEGIN IF NOT emp_cursor%ISOPEN THEN OPEN emp_cursor; END IF; END open_emp;

plsql使用技巧详解

plsql使用技巧详解

plsql使用技巧详解1.记住登陆密码为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码;设置方法:PL/SQL Developer 7.1.2 ->tools->Preferences->Oracle->Logon History ,“Store history”是默认勾选的,勾上“Store with password”即可,重新登录在输入一次密码则记住了;2.登录后默认自动选中My Objects默认情况下,PLSQL Developer登录后,Brower里会选择All objects,如果你登录的用户是dba,要展开tables 目录,正常情况都需要Wait几秒钟,而选择My Objects后响应速率则是以毫秒计算的。

设置方法:Tools菜单 --> Brower Filters,会打开Brower Folders的定单窗口,把“My Objects”设为默认即可。

Tools菜单--Brower Folders,中把你经常点的几个目录(比如:Tables Views Seq Functions Procedures)移得靠上一点,并加上颜色区分,这样你的平均寻表时间会大大缩短。

3.类SQL PLUS窗口File->New ->Command Window 这个类似于oracle的客户端工具sql plus,但用比它好用多了;4.关键字自动大写Tools->Preferences->Editor,将Keyword case选择Uppercase。

这样在窗口中输入sql语句时,关键字会自动大写,而其它都是小写。

这样阅读代码比较容易,且保持良好得编码风格,同理,在Tools->Preferences->Code Assistant里可以设置数据库对象的大写、小写,首字母大写等。

5.查看执行计划选中需要分析的SQL语句,然后点击工具栏的Explain plan按钮(即执行计划),或者直接按F5;这个主要用于分析SQL语句执行效率,分析表的结构,便于为sql调优提供直观依据。

Oracle_PLSQL教程-第二章

Oracle_PLSQL教程-第二章

翻译:陈拓 chentuo@2006 年 6 月16 日创建过程Copyright © Oracle Corporation, 2001. All rights reserved.进度表: 时间 主题40 分钟 讲演25 分钟 练习65 分钟 总共目标完成本课程后, 您应当能够:• 描述过程• 创建过程• 形式参数和实际参数之间的区别• 列举不同参数模式的特性• 创建带参数的过程• 调用过程• 在过程中处理异常• 删除过程2­2 Copyright © Oracle Corporation, 2001. All rights reserved.本课目标在本课中,你将学习创建、执行和删除过程。

什么是过程?• 过程是执行一个动作的子程序的一种类型• 过程可以作为一个方案对象被存储在数据库中,用于重 复执行2­3 Copyright © Oracle Corporation, 2001. All rights reserved.过程的定义过程是一个命名的 PL/SQL 块,它能够接收参数 (在英文中 parameters 有时也称 为 arguments),并且被调用,一般而言,你使用一个过程来完成一个动作。

一个过程有 一个头,一个声明部分,一个执行部分和一个可选的异常处理部分。

一个过程可以被编译并且被作为方案对象存储在数据库中。

过程提高可重用性和可维护性。

当可用时,他们可以在应用程序中被多次使用。

如 果需求改变了,仅仅过程序要被更新,应用程序可以不受影响。

2­4 Copyright © Oracle Corporation, 2001. All rights reserved.创建过程的语法• REPLACE 选项指示如果过程存在,它将被删除并且用语句创建的新版本代替• PL/SQL 块,既可以用 BEGIN 开始也可以用局部变量的声明开始,既可以用 END 结束也可以用 ENDprocedure_name 结束CREATE [OR REPLACE] PROCEDURE procedure_name [(parameter1 [mode1] datatype1, parameter2 [mode2] datatype2, . . .)] IS|AS PL/SQL Block;CREATE [OR REPLACE] PROCEDURE procedure_name [(parameter1 [mode1] datatype1, parameter2 [mode2] datatype2, . . .)] IS|AS PL/SQL Block; 创建过程的语法语法定义 参数说明 procedure_name过程的名字 parameterPL/SQL 变量的名字,依据所使用的模式,参数值由过程被 传递到主叫环境或反之,或两者都有 mode参数的类型:IN (默认)、OUT 、IN OUT Data type参数的数据类型 ­ 可以是任何 PL/SQL 数据类型。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2015.12.28
1、约束的类型:
主键约束、外键约束、唯一约束、检查约束、非空约束是Oracle数据表的5个约束。

主键约束:用来唯一标识表中一个列,一个表中的主键约束只能有一个,但是可以在一个主键约束中包括多个列,也称为联合主键。

外键约束:用来约束两个表中列之间的关系。

唯一约束:用来唯一标识表中的列。

与主键约束不同的是,在一个数据表中可以有多个唯一约束。

检查约束:用来约束表中列的输入值的范围,比如在输入性别时,要求在数据库中只能输入男或女,就可以使用检查约束来约束该列。

非空约束:约束该列一定要输入值。

2、使用外键约束,应注意以下几个方面问题
如果在foreign key约束的列中输入非NULL值,则此值必须在被引用列中存在;否则,将返回违反外键约束的错误信息。

foreign key约束仅能引用位于同一个服务器上同一个数据库中的表,跨数据库的引用完整性必须通过触发器实现。

foreign key约束可以引用同一个表中的其他列,此行为称为自引用。

列级foreign key约束的references子句只能列出一个引用列,此列的数据类型必须与定义约束列的数据类型相同。

表级foreign key约束的references子句中引用列的数目必须与约束列列表中的列数相同,每个引用列的数据类型也必须与列表中相应列的数据类型相同。

在临时表中,不能使用外键约束。

2015.12.30
1、虽然使用DELETE语句和TRUNCATE TABLE语句都能够删除表中的所有数据,但是使用TRUNCATE TABLE语句比使用DELETE语句的执行效率要高。

这是因为:使用DELETE语句,系统将一次一行地处理要删除的表中的记录,在从表中删除行之前,在事务处理日志中记录相关的删除操作和删除行中的列值,以便在删除失败时,可以使用事务处理日志来恢复数据。

使用TRUNCATE TABLE语句则一次性完成删除与表相关的所有数据页的操作。

另外,TRUNCATE TABLE语句并不更新事务处理日志。

因此,使用TRUNCATE TABLE 语句从表中删除行后,将不能用ROLLBACK命令取消行的删除操作。

2016.1.1
1、在实际应用中,使用NOT运算符时,经常忽视其对NULL值的处理问题。

要时刻牢记一点,NOT NULL的结果仍为NULL。

2、X IS NULL不可以写成X=NULL;除了IS[NOT] NULL之外,空值不满足任何查找条件;如果NULL参与算术运算,则该算术表达式的值为NULL;如果NULL参与聚集运算,则除count(*)之外其他聚集函数都忽略NULL。

2016.1.2
1、在默认情况下,ORDER BY按升序进行排列,即默认使用的是ASC关键词。

如果用户特别要求按降序进行排列,则必须使用DESC关键词。

ORDER BY子句一定要放在所有子句的最后(无论包含多少子句)。

对于时间、数值类型的字段排序,其排序规则就是按照时间的早晚、数值的大小进行的;对于字符型的字段排序,则是依照其ASCII码的先后顺序进行的。

在排序时,空值(NULL)默认被看成最大的值。

2、在DB2、ORACLE和PostgreSQL数据库系统中,采用的连接符为"||";而在SQL Server和Access数据库系统中,采用的连接符为"+"。

使用连接符进行多列连接时,要求被连接的列必须有相同的或能够相互隐式转换的数据类型。

不能对具有完全不同的数据类型的列进行连接。

另外,需要说明的是NULL值的处理问题。

如果连接的两个字段中有一个字段的值为NULL,那么NULL会被正常连接,只不过NULL值不会有任何数据显示。

3、常用的单行函数
(1)字符处理函数
获取字符串长度函数length(char)
去除字符串首尾指定字符函数
trim([leading|trailing|both][trim_character FROM] trim_source
字符串截取函数substr
substr函数并不能改变原数据的长度,而是对原数据进行操作后返回操作结果,通常可以把该结果赋值给其他变量。

字符串连接函数concat
小写字母转大写函数 upper(char)
大写字母转小写函数 lower(char)
检索字符串函数 instr
(2)数值处理函数
数值处理函数可以接收数字类型的参数,并且返回数字类型的值,大多数的数值类型函数返回值可以精确到38位(十进制),一部分函数则精确到30位或36位。

绝对值函数 abs
取余函数mod
正弦函数sin 余弦cos 反余弦 acos 正切tan 反正切atan 反正弦asin
近似值函数 round
数字截取函数trunc
(3)日期处理函数
获取系统日期函数sysdate
获取系统时间函数systimestamp
月份增加函数add_months
获取两个日期之间的月份函数months_between(date1,date2)
获取某月最后一天函数last_day(date)
(4)转换函数
类型转换函数cast(expr as type_name)
数值或日期转字符串函数 to_char(n,[,fmt[,nlsparam]])
字符转日期函数to_date(char[,fmd[,nlsparam]]
字符串转数字函数to_number(expr[,fmt[,nlsparam]])
(5)替换NULL值函数 NVL(expr1,expr2) 如果expr1的值为NULL,则会返回expr2的值,否则将返回expr1的值。

(6)排除指定条件函数
LNNVL(condition)
4、聚合函数
sum 返回选取的结果集中所有值的总和
count 返回选取的结果集中所有记录行的数目
max 返回选取的结果集中所有值的最大值
min 返回选取的结果集中所有值的最小值
avg 返回选取的结果集中所有值的平均值
stddev 返回选取的结果集中所有值的标准偏差
stddev_pop 返回选取的结果集中所有值的总体标准偏差
当对某列数据进行求和操作时,如果该列存在NULL值,则SUN函数会忽略该值。

在计算平均值时,AVG函数将忽略NULL值。

实际上,所有的聚合函数都忽略了含用NULL值的记录。

5、分组查询
所有的聚合函数都是对查询出的每一行数据进行分类后再进行统计计算的。

所以在结果集中,对所进行分类的列的每一种数据都有一行统计结果值与之对应。

GROUP BY 子句中不支持对列分配的别名,也不支持使用了统计函数的集合列。

另外,对SELECT后面每一列数据,除了出现在统计函数中的列以外,都必须在GROUP BY子句中应用。

在生成包含小计和合计的报表时,ROLLUP运算符很有用。

ROLLUP运算符生成的结果集类似于CUBE运算符所生成的结果集。

CUBE和ROLLUP之间的区别在于:CUBE生成的结果集显示了所选列中值的所有组合的聚合;ROLLUP生成的结果集显示了所选列中值的某一层次结构的聚合。

使用CUBE和ROLLUP运算符操作生成空值将会带来一个问题:如何区分CUBE操作生成的NULL值和在实际数据中返回的NULL值?可以使用GROUPING函数解决此问题。

如果列值来自实际数据,GROUPING函数将返回0;如果列值是由CUBE 操作生成的NULL,则返回1。

2016.1.3
1、基本的转换函数
CAST函数:将内置的数据类型或集合类型转换成其他的数据类型。

TO_CHAR函数:将date或number转换为字符串。

TO_DATE函数:将number、char或varchar2转换为date。

TO_NUMBER函数:将char或varchar2转换为number。

BIN_TO_NUM函数,可以将二进制数转换为十进制数。

它的输入值是一个二进制形式的数字列表,用逗号分隔,作为一个字符串处理。

TO_BINARY_DOUBLE函数,将数据值转换为双精度浮点数。

TO_BINARY_FLOAT函数,将数据值转换为单精度浮点数
2016.1.7
1、内部连接(Inner join):内部连接为典型的连接运算,使用类似于“=”或
“<>”的比较运算符,它是组合两个表的常用方法。

内部连接使用比较运算符根据每个表的通用列中的值匹配两个表中的行,内部连接包括同等连接和自然连接。

2、外部连接(Outer join):在内部连接中,只有在两个表中匹配的行才能在结果集中出现。

而在外部连接中可以只限制一个表,而对另外一个表不加限制(即所有的行都出现在结果集中)。

外部连接分为左外连接、右外连接和全外连接。

左外连接是对连接条件中左边的表不加限制;右外连接是对右边的表不加限制;全外连接是对两个表都不加限制,两个表中的所有行都会包括在结果集中。

3、交叉连接(Cross join):没有WHERE子句的交叉连接将产生连接所涉及的表的笛卡儿积。

第1个表的行数乘以第2个表的行数等于笛卡儿积得到的结果集的大小。

相关文档
最新文档