Oracle 学习:PL/SQL循序渐进全面学习教程
课程七 其他数据库对象
SEQUENCE
创建实例:
SQL> CREATE SEQUENCE s_dept_id
2 INCREMENT BY 1
3 START WITH 51
4 MAXVALUE 9999999
5 NOCACHE
6 NOCYCLE;
Sequence created.
1、NEXTVAL和CURRVAL的用法
只有在INSERT 中,才可以作为子查询出现。
以下几个方面不可用子查询:
SELECT 子句OF A VIEW
有DISTINCT的出现的SELECT。
有GROUP BY,HAVING,ORDER BY的SELECT 子句。
SELECT 或DELETE,UPDATE 中的子查询。
DEFAULT选项中不能用。
2、编辑SEQUENCE
只有OWNER或有ALTER权限的用户才能修改SEQUENCE
未来的NUMBER受修改的影响。
不能修改START WITH,如果变,则要RE-CREATE。
修改会受到某些有效性检验的限制,如MAXVALUE
3、删除:
DROP SEQUENCE sequence;
ORACLE对象之INDEX
一、INDEX概述:
是ORACLE的一种数据对象,用POINTER来加速查询行。通过快速路径存取方法定位数据并减少I/O。 INDEX独立于
表。INDEX由ORACLE SERVER来使用和保持。
二、索引如何建立?
1、自动:通过PRIMARY KEY和UNIQUE KEY约束来建立。
2、用户手工建立非唯一性索引。
三、创建方法:
语法:CREATE INDEX index
ON table (column[, column]...);
何时建立INDEX:
此列经常被放到WHERE字段或JOIN来作条件查询。
此列含有大量的数据。
此列含有大量的空值。
两个或几个列经常同时放到WHERE字段进行组合查询
表很大而且只有少于2-4% 的ROW可能被查询的时候。
以下情况不要建立索引:
表很小;
表被更新频繁。
四、查看已经存在的索引:
1、USER_INDEXES可以查询索引名和类型。
2、USER_IND_COLUMNS包含索引名、表名、列名。
实例:
SQL> SELECT ic.index_name, ic.column_name,
2 ic.column_position col_pos, ix.uniqueness
3 from user_indexes ix, user_ind_col
相关文档:
昨天下班之前在程序中遇到了一个使用nvl的sql语句,相信这个函数大家都应该使用过,并且应该是很简单的。
因为之前做的数据库移植时遇到过这个问题,所以今天拿来在这里记载一下。
其中有一段where条件是这样的:
and ((nvl('', ' ') <> ' ' and a.benifitvchno like '%%') or
&nb ......
课程四 组函数
本课重点:
1、了解可用的组函数
2、说明每个组函数的使用方法
3、使用GROUP BY
4、通过HAVING来限制返回组
注意:以下实例中标点均为英文半角
一、概念:
组函数是指按每组返回结果的函数。
组函数可以出现在SELECT和HAVING 字段中。
GROUP ......
课程五 子查询
本课重点:
1、在条件未知的情况下采用嵌套子查询
2、用子查询做数据处理
3、子查询排序
注意:以下实例中标点均为英文半角
一、概述:
子查询是一种SELECT句式中的高级特性,就是一个SELECT语句作为另一个语句的一个段。我们可以利用子查询来 ......
课程六 运行时应用变量
本课重点:
1、创建一个SELECT语句,提示USER在运行时先对变量赋值。
2、自动定义一系列变量,在SELECT运行时进行提取。
3、在SQL PLUS中用ACCEPT定义变量
注意:以下实例中标点均为英文半角
一、概述:
变量可 ......