当前位置:文档之家› oracle的常用对象

oracle的常用对象


表分区的类型 9-7
列表分区示例
SQL> CREATE TABLE Employee ( Emp_ID number (4), Emp_Name varchar2 (14), 根据职员住址在表 Emp_Address varchar2 (15) 上创建的列表分区 ) 包含住在芝加哥的职员的记 PARTITION BY LIST (Emp_Address) 录 ( Partition north values (‘芝加哥'), Partition west values (‘旧金山’, ‘洛杉矶'), Partition south values (‘亚特兰大’, ‘达拉斯’, ‘休斯顿'), Partition east values (‘纽约’, ‘波斯顿') );
SELECT p_category, MAX(itemrate) FROM itemfile GROUP BY p_category; SELECT p_category, MAX(itemrate) FROM itemfile GROUP BY p_category HAVING p_category NOT IN ('accessories');
oracle常用对象
分析函数 2-1
分析函数根据一组行来计算聚合值 用于计算完成聚集的累计排名、移动平均数等 分析函数为每组记录返回多个行
分析函数
ROW_NUMBER
RANK
DENSE_RANK
分析函数 2-2
以下三个分析函数用于计算一个行在一组有序行中的 排位,序号从1开始 ROW_NUMBER 返回连续的排位,不论值是否相 等 RANK 具有相等值的行排位相同,序数随后跳跃 DENSE_RANK 具有相等值的行排位相同,序号 SELECT e.ename, e.sal, SELECT d.dname, ename, deptno, sal, deptno,job, ename, sal, DENSE_RANK() comm,ROW_NUMBER() RANK() OVER OVER 是连续的 OVER (PARTITION e.deptno ORDER BY e.sal DESC) (ORDER BY BY sal DESC) AS SAL_RANK (PARTITION deptno ORDER BY sal DESC, comm) RANK
范围分区的语法:
PARTITION BY RANGE (column_name) ( PARTITION part1 VALUE LESS THAN(range1), PARTITION part2 VALUE LESS THAN(range2), ... [PARTITION partN VALUE LESS THAN(MAXVALUE)] );
FROM SCOTT.EMP; emp; AS DENRANK FROM emp e, dept d WHERE e.deptno = d.deptno;
Hale Waihona Puke GROUP BY和HAVING子句
GROUP BY子句
用于将信息划分为更小的组 每一组行返回针对该组的单个结果
HAVING子句
用于指定 GROUP BY 子句检索行的条件
表分区
Name Address State Countr 允许用户将一个表分成多个分区 y 用户可以执行查询,只访问表中的特定分区 只访问 P1 John 34th Rd. Californ US P1 分区 将不同的分区存储在不同的磁盘,提高访问 Smith ia 性能和安全性 Micheal LK Rd. New US Clarke York 可以独立地备份和恢复每个分区
表分区的类型 9-3
范围分区示例
SQL> SQL>CREATE CREATETABLE TABLESales SALES2 ( (PRODUCT_ID VARCHAR2(5), Product_ID varchar2 (5), NULL, SALES_DATE DATE NOT Sales_Cost number (10) SALES_COST NUMBER(10)) )PARTITION BY RANGE (SALES_DATE) 根据 Sales_Cost 创建分区 PARTITION BY RANGE (Sales_Cost) ( ( PARTITION P1 VALUES LESS THAN (DATE ‘2003-01-01’), PARTITIONP2 P1VALUES VALUESLESS LESSTHAN THAN(DATE (1000), PARTITION ‘2004-01-01’), PARTITIONP3 P2VALUES VALUESLESS LESSTHAN THAN(MAXVALUE) (2000), PARTITION 包含销售成本低于1000 PARTITION P3 VALUES LESS THAN (3000) ); 的所有产品的值 );
分区的名称
表分区的类型 9-8
复合分区
范围分区与散列分区或列表分区的组合
复合分区的语法:
PARTITION BY RANGE (column_name1) SUBPARTITION BY HASH (column_name2) SUBPARTITIONS number_of_partitions ( PARTITION part1 VALUE LESS THAN(range1), PARTITION part2 VALUE LESS THAN(range2), ... PARTITION partN VALUE LESS THAN(MAXVALUE) );
更新表
Jack Jones Bob Simmo ns Jim
9th Road Californ US ia 12th New US Street York 53rd New US
P2 分区
表分区的类型 9-1
分区方法
范围分区
散列分区
列表分区
复合分区
表分区的类型 9-2
范围分区
以表中的一个列或一组列的值的范围分区
表分区的类型 9-9 SQL> CREATE TABLE SALES
(
复合分区示例
PRODUCT_ID VARCHAR2 (5), SALES_DATE DATE NOT NULL, SALES_COST NUMBER (10)
在表的 Sales_Date 列中创建范围分区
) 在表的 Product_ID PARTITION BY RANGE (SALES_DATE) 列创建散列子分区 SUBPARTITION BY HASH (PRODUCT_ID) SUBPARTITIONS 5 在每个范围分区中 ( 创建 5 个散列子分区 PARTITION S1 VALUES LESS THAN (TO_DATE(‘01/4月/2001', 'DD/MON/YYYY')), PARTITION S2 VALUES LESS THAN (TO_DATE(‘01/7月/2001', 'DD/MON/YYYY')), PARTITION S3 VALUES LESS THAN (TO_DATE(‘01/9月/2001', 'DD/MON/YYYY')), PARTITION S4 VALUES LESS THAN (MAXVALUE) ); 创建的四个范围分区的名称
指定第一个序号从 指定序号之间的间隔为 表示序列的最大值为 表示序列的最小值为 在达到最大值后停止生成下一个值 指定内存中预先分配的序号数 1010 2000 开始 10
访问序列
通过序列的伪列来访问序列的值
NEXTVAL 返回序列的下一个值 CURRVAL 返回序列的当前值
SQL> INSERT INTO toys (toyid, toyname, toyprice) VALUES ( toys_seq.NEXTVAL, ‘TWENTY’, 25); SQL> INSERT INTO toys (toyid, toyname, toyprice) VALUES ( toys_seq.NEXTVAL, ’MAGIC PENCIL’, 75);
数据库对象
同义词
序列
视图
索引
同义词 3-1
同义词是现有对象的一个别名。
简化SQL语句 隐藏对象的名称和所有者 提供对对象的公共访问
同义词共有两种类型: 公有同义词可被所有的数据库用户访问。
私有同义词只能在其模式内访问,且不能与当前模式的 对象同名。
同义词
私有同义词
公有同义词
同义词 3-2
替换现有的同义词
删除同义词
SQL> DROP SYNONYM emp; SQL> DROP PUBLIC SYNONYM emp_syn;
序列
序列是用于生成唯一、连续序号的对象 序列可以是升序的,也可以是降序的 使用CREATE SEQUENCE语句创建序列
SQL> CREATE SEQUENCE toys_seq START WITH 10 INCREMENT BY 10 MAXVALUE 2000 MINVALUE 10 NOCYCLE CACHE 10;
分区的名称
表分区的类型 9-4
散列分区
允许用户对不具有逻辑范围的数据进行分区 通过在分区键上执行HASH函数决定存储的分区 将数据平均地分布到不同的分区
散列分区语法
PARTITION BY HASH (column_name) PARTITIONS number_of_partitions; 或 PARTITION BY HASH (column_name) ( PARTITION part1 [TABLESPACE tbs1], PARTITION part2 [TABLESPACE tbs2], ... PARTITION partN [TABLESPACE tbsN]);
相关主题