oracle的常用对象

合集下载

数据库oracle基础知识

数据库oracle基础知识

数据库oracle基础知识数据库Oracle是一款企业级关系数据库管理系统,被广泛应用于大型企业和政府机构。

为了从事Oracle数据库开发工作,需要掌握以下基础知识。

1. SQL语言SQL语言是Oracle数据库最常用的查询和管理语言。

它可以用于创建、修改和删除表格、存储过程和函数等对象。

SQL语言可以通过命令行工具或GUI工具(如Oracle SQL Developer)使用。

2. 数据类型Oracle数据库支持多种数据类型,包括字符型、数值型、日期型和布尔型等。

掌握各种数据类型的特点和使用方法对于正确存储数据非常重要。

3. 约束在Oracle数据库中,约束是定义表列或表之间关系的规则。

包括主键、外键、唯一约束和检查约束等。

理解和正确使用约束可以有效维护数据完整性。

4. 触发器触发器是一种在表上执行的操作,例如在插入、更新和删除时。

掌握触发器的创建和使用可以帮助开发者增强数据的一致性和完整性。

5. 存储过程和函数存储过程和函数是一些预定义的SQL语句,封装起来方便被调用。

存储过程和函数类似,但存储过程是没有返回值的,而函数则需要返回一个值。

掌握存储过程和函数的使用可以提高数据库的性能和效率。

6. 高可用性Oracle数据库提供了许多机制,确保在故障时保持数据库高可用性。

这包括了备份和恢复、灾备等方案。

掌握这些机制可以帮助开发者保障数据可靠性和业务连续性。

通过学习以上基础知识,可以使Oracle数据库开发者理解Oracle数据库的基本原理和概念。

并且可以使用这些知识来开发高效、高可用性、可扩展的Oracle数据库应用程序。

Oracle数据库

Oracle数据库

Oracle数据库Oracle数据库是管理数据的一种软件系统,它可以帮助用户快速地存储、管理和检索大量的数据。

Oracle数据库由Oracle公司开发,它是世界上最强大、最可靠的数据库之一,被广泛用于企业级应用程序和数据库管理系统。

一、Oracle数据库的基础知识1. 数据库结构Oracle数据库由一个或者多个表空间组成,每个表空间包含一组数据文件。

一个表空间可以包含多个数据文件,但一个数据文件只能属于一个表空间。

2. 数据库对象Oracle数据库中的每个数据对象都具有一个唯一的名称,例如表(table)、视图(view)、序列(sequence)、索引(index)和存储过程(procedure)等。

它们都被保存在表空间中的数据文件中。

3. SQL语言Oracle数据库主要使用SQL语言来处理数据,包括数据增删改查等常用操作。

二、Oracle数据库的特点1. 效率高Oracle数据库采用高效的管理和存储技术,可以快速访问和操作大量数据。

它具有高速的缓存机制,可以快速地执行查询和更新操作。

2. 可靠性强Oracle数据库拥有高度稳定的系统架构和自动维护机制,可以保证数据的安全性和可靠性。

它可以实现多重备份,在数据发生意外错误时可以快速恢复。

3. Heterogeneous ConnectOracle数据库可以通过网络协议和连接程序实现异构连接,支持其它数据库软件,如MS SQL Server、IBM DB2等。

4. 扩展性强Oracle数据库可扩展性强,可以设计和构建分布式系统,支持跨平台分布式数据库。

5. 多功能性Oracle数据库提供多种功能,包括多种语言的支持,丰富的安全控制和数据库监视等。

6. 可伸缩性Oracle数据库可以支持大量的并发用户,可以处理多种不同的应用程序。

三、Oracle数据库的应用领域Oracle数据库被广泛应用于企业级应用程序和数据库管理系统,主要应用于以下几个领域:1. 金融领域Oracle数据库被广泛用于金融事务处理系统,包括银行、证券、保险和期货等金融机构的资金结算和清算等数据处理。

oracle常用SQL语句(汇总版)

oracle常用SQL语句(汇总版)

Oracle数据库常用sql语句ORACLE 常用的SQL语法和数据对象一.数据控制语句(DML) 部分1.INSER T (往数据表里插入记录的语句)INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……);INSERT INTO 表名(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 另外的表名;字符串类型的字段值必须用单引号括起来, 例如: ’GOOD DAY’如果字段值里包含单引号’ 需要进行字符串转换, 我们把它替换成两个单引号''.字符串类型的字段值超过定义的长度会出错, 最好在插入前进行长度校验.日期字段的字段值可以用当前数据库的系统时间SYSDATE, 精确到秒或者用字符串转换成日期型函数TO_DATE(‘2001-08-01’,’YYYY-MM-DD’)TO_DATE()还有很多种日期格式, 可以参看OR ACLE DOC.年-月-日小时:分钟:秒的格式YYYY-MM-DD HH24:MI:SSINSERT时最大可操作的字符串长度小于等于4000个单字节, 如果要插入更长的字符串, 请考虑字段用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包.INSERT时如果要用到从1开始自动增长的序列号, 应该先建立一个序列号CREATE SEQUENCE 序列号的名称(最好是表名+序列号标记) INCREMENT BY 1 START WI TH 1 MAXVALUE 99999 CYCLE NOCACHE;其中最大的值按字段的长度来定, 如果定义的自动增长的序列号NUMBER(6) , 最大值为999999 INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL2.DELETE (删除数据表里记录的语句)DELETE FROM表名 WHERE 条件;注意:删除记录并不能释放ORACLE里被占用的数据块表空间. 它只把那些被删除的数据块标成unused.如果确实要删除一个大表里的全部记录, 可以用TRUNCATE 命令, 它可以释放占用的数据块表空间TRUNCATE TABLE 表名;此操作不可回退.3.UPDATE (修改数据表里记录的语句)UPDATE表名SET 字段名1=值1, 字段名2=值2, …… WHERE 条件;如果修改的值N没有赋值或定义时, 将把原来的记录内容清为NULL, 最好在修改前进行非空校验;值N超过定义的长度会出错, 最好在插入前进行长度校验..注意事项:A. 以上SQL语句对表都加上了行级锁,确认完成后, 必须加上事物处理结束的命令COMMIT 才能正式生效,否则改变不一定写入数据库里.如果想撤回这些操作, 可以用命令ROLLBACK 复原.B. 在运行INSERT, DELETE 和UPDATE 语句前最好估算一下可能操作的记录范围,应该把它限定在较小(一万条记录) 范围内,. 否则ORACLE处理这个事物用到很大的回退段.程序响应慢甚至失去响应. 如果记录数上十万以上这些操作, 可以把这些SQL语句分段分次完成, 其间加上COMMIT 确认事物处理.二.数据定义(DDL) 部分1.CREATE (创建表, 索引, 视图, 同义词, 过程, 函数, 数据库链接等)ORACLE常用的字段类型有CHAR 固定长度的字符串VARCHAR2 可变长度的字符串NUMBER(M,N) 数字型M是位数总长度, N是小数的长度DATE 日期类型创建表时要把较小的不为空的字段放在前面, 可能为空的字段放在后面创建表时可以用中文的字段名, 但最好还是用英文的字段名创建表时可以给字段加上默认值, 例如DEFAUL T SYSDATE这样每次插入和修改时, 不用程序操作这个字段都能得到动作的时间创建表时可以给字段加上约束条件例如不允许重复UNIQUE, 关键字PRIMAR Y KEY2.AL TER (改变表, 索引, 视图等)改变表的名称AL TER TABLE 表名1 TO 表名2;在表的后面增加一个字段AL TER TABLE表名ADD 字段名字段名描述;修改表里字段的定义描述AL TER TABLE表名MODIFY字段名字段名描述;给表里的字段加上约束条件AL TER TABLE 表名ADD CONSTRAINT 约束名PRIMAR Y KEY (字段名);AL TER TABLE 表名ADD CONSTRAINT 约束名UNIQUE (字段名);把表放在或取出数据库的内存区AL TER TABLE 表名CACHE;AL TER TABLE 表名NOCACHE;3.DROP (删除表, 索引, 视图, 同义词, 过程, 函数, 数据库链接等)删除表和它所有的约束条件DROP TABLE 表名CASCADE CONSTRAINTS;4.TRUNCATE (清空表里的所有记录, 保留表的结构)TRUNCATE 表名;三.查询语句(SELECT) 部分SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE 条件;字段名可以带入函数例如: COUNT(*), MIN(字段名), MAX(字段名), AVG(字段名), DISTINCT(字段名), TO_CHAR(DATE字段名,'YYYY-MM-DD HH24:MI:SS')NVL(EXPR1, EXPR2)函数解释:IF EXPR1=NULLRETURN EXPR2ELSERETURN EXPR1DECODE(AA﹐V1﹐R1﹐V2﹐R2....)函数解释:IF AA=V1 THEN RETURN R1IF AA=V2 THEN RETURN R2..…ELSERETURN NULLLPAD(char1,n,char2)函数解释:字符char1按制定的位数n显示,不足的位数用char2字符串替换左边的空位字段名之间可以进行算术运算例如: (字段名1*字段名1)/3查询语句可以嵌套例如: SELECT …… FROM(SELECT …… FROM表名1, [表名2, ……] WHERE 条件) WHERE 条件2;两个查询语句的结果可以做集合操作例如: 并集UNION(去掉重复记录), 并集UNION ALL(不去掉重复记录), 差集MINUS, 交集INTERSECT分组查询SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] GROUP BY字段名1[HAVING 条件] ;两个以上表之间的连接查询SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE表名1.字段名= 表名2. 字段名[ AND ……] ;SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE表名1.字段名= 表名2. 字段名(+) [ AND ……] ;有(+)号的字段位置自动补空值查询结果集的排序操作, 默认的排序是升序ASC, 降序是DESCSELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……]ORDER BY字段名1, 字段名2 DESC;字符串模糊比较的方法INSTR(字段名, ‘字符串’)>0字段名LIKE ‘字符串%’[‘%字符串%’]每个表都有一个隐含的字段ROWID, 它标记着记录的唯一性.四.ORACLE里常用的数据对象 (SCHEMA)1.索引(INDEX)CREATE INDEX 索引名ON 表名( 字段1, [字段2, ……] );AL TER INDEX 索引名REBUILD;一个表的索引最好不要超过三个(特殊的大表除外), 最好用单字段索引, 结合SQL语句的分析执行情况, 也可以建立多字段的组合索引和基于函数的索引ORACLE8.1.7字符串可以索引的最大长度为1578 单字节ORACLE8.0.6字符串可以索引的最大长度为758 单字节2.视图(VIEW)CREATE VIEW 视图名AS SELECT …. FROM …..;AL TER VIEW视图名COMPILE;视图仅是一个SQL查询语句, 它可以把表之间复杂的关系简洁化.3.同义词(SYNONMY)CREATE SYNONYM同义词名FOR 表名;CREATE SYNONYM同义词名FOR 表名@数据库链接名;4.数据库链接(DATABASE LINK)CREATE DATABASE LINK数据库链接名CONNECT TO 用户名IDENTIFIED BY 密码USING ‘数据库连接字符串’;数据库连接字符串可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义.数据库参数global_name=true时要求数据库链接名称跟远端数据库名称一样数据库全局名称可以用以下命令查出SELECT * FROM GLOBAL_NAME;查询远端数据库里的表SELECT …… FROM 表名@数据库链接名;五.权限管理(DCL) 语句1.GRANT 赋于权限常用的系统权限集合有以下三个:CONNECT(基本的连接), RESOURCE(程序开发), DBA(数据库管理)常用的数据对象权限有以下五个:ALL ON 数据对象名, SELECT ON 数据对象名, UPDATE ON 数据对象名, DELETE ON 数据对象名, INSER T ON 数据对象名, AL TER ON 数据对象名GRANT CONNECT, RESOURCE TO 用户名;GRANT SELECT ON 表名 TO 用户名;GRANT SELECT, INSERT, DELETE ON表名 TO 用户名1, 用户名2;2.REVOKE 回收权限REVOKE CONNECT, RESOURCE FROM 用户名;REVOKE SELECT ON 表名FROM 用户名;REVOKE SELECT, INSERT, DELETE ON表名FROM 用户名1, 用户名2;查询数据库中第63号错误:select orgaddr,destaddr from sm_histable0116 where error_code='63';查询数据库中开户用户最大提交和最大下发数:select MSISDN,TCOS,OCOS from ms_usertable;查询数据库中各种错误代码的总和:select error_code,count(*) from sm_histable0513 group by error_code orderby error_code;查询报表数据库中话单统计种类查询。

oracle 的数据类型

oracle 的数据类型

Oracle的数据类型一、概述在Oracle数据库中,数据类型是定义列或变量的属性,用于存储不同类型的数据。

数据类型在数据库设计和数据存储过程中起着关键的作用。

Oracle提供了丰富的数据类型,包括数值类型、字符类型、日期类型、大对象类型等。

本文将详细介绍Oracle的各种数据类型及其特点。

二、数值类型1. NUMBERNUMBER是Oracle中最常用的数值类型。

它可以存储任意精度的数值,包括整数和小数。

以下是一些常见的NUMBER类型的子类型:•NUMBER(precision): 存储精度为precision的数值。

•NUMBER(precision, scale): 存储精度为precision且小数位数为scale的数值。

2. INTEGERINTEGER是一种整数类型,它只能存储整数值。

它可以使用以下子类型:•INTEGER(precision): 存储精度为precision的整数值。

3. BINARY_FLOAT和BINARY_DOUBLEBINARY_FLOAT和BINARY_DOUBLE是用于存储浮点数的数据类型。

BINARY_FLOAT用于单精度浮点数,BINARY_DOUBLE用于双精度浮点数。

1. CHARCHAR是一种定长字符类型,它可以存储固定长度的字符串。

在创建CHAR类型的列或变量时,必须指定长度。

2. VARCHAR2VARCHAR2是一种可变长度字符类型,它可以存储可变长度的字符串。

在创建VARCHAR2类型的列或变量时,必须指定最大长度。

3. CLOBCLOB是用于存储大文本对象的数据类型。

它可以存储最大长度为4GB的文本数据。

四、日期类型1. DATEDATE是Oracle中用于存储日期和时间的数据类型。

它存储的范围从公元前4712年到公元9999年。

2. TIMESTAMPTIMESTAMP用于存储日期和时间,精确到纳秒级别。

它包括以下子类型:•TIMESTAMP: 存储日期和时间,精确到秒级别。

oracle索引原理详解

oracle索引原理详解

oracle索引原理详解Oracle数据库中的索引是用于提高数据检索速度的重要工具。

了解Oracle索引的原理对于数据库管理员和开发人员来说是非常重要的。

一、索引的基本概念索引是Oracle数据库中的一个对象,它可以帮助数据库系统更快地检索数据。

索引类似于书籍的目录,可以快速定位到所需的数据。

二、索引的分类1. B-Tree索引:这是Oracle中最常用的索引类型,基于平衡多路搜索树(B-Tree)实现。

B-Tree索引适用于大多数数据类型,包括字符、数字和日期等。

2. Bitmap索引:位图索引主要用于处理包含大量重复值的列。

通过位图索引,可以更高效地处理这些列的查询。

3. 函数基索引:函数基索引允许在列上应用函数,然后对该结果进行索引。

这可以用于优化包含函数操作的查询。

4. 反转键索引:反转键索引是一种特殊类型的B-Tree索引,用于优化插入操作。

通过反转键顺序,可以更高效地处理插入操作。

三、索引的创建和维护1. 创建索引:创建索引的基本语法是“CREATE INDEX index_name ON table_name (column_name)”。

其中,index_name是索引的名称,table_name是要创建索引的表名,column_name是要索引的列名。

2. 维护索引:定期维护索引可以确保其性能和可靠性。

常用的维护操作包括重建索引(REBUILD INDEX)和重新组织索引(ORGANIZE INDEX)。

四、索引的优点和缺点1. 优点:使用索引可以显著提高数据检索速度,减少查询时间。

此外,索引还可以用于优化复杂查询的性能。

2. 缺点:虽然索引可以提高性能,但它们也会占用额外的磁盘空间。

此外,当表中的数据发生变化时,索引也需要更新,这可能会影响写操作的性能。

五、最佳实践1. 在经常用于搜索和排序的列上创建索引。

2. 根据查询模式和数据分布选择合适的索引类型。

3. 定期分析和维护索引,确保其性能和可靠性。

oracle

oracle

2. 数据操纵功能
实现数据的插入、修改、删除、统计等数据存取操作的功能称为数据操纵功能 。数据操纵功能是数据库的基本操作功能,数据库管理系统通过提供数据操纵语 言(Data Manipulation language,简称DML)实现其数据操纵功能。
3. 数据库的建立和维护功能
指数据的载入、转储、重组织功能及数据库的恢复功能;指数据库结构的修改 、变更及扩充功能。

Oracle数据库的特点
支持大数据量、多用户的高性能的事务处理 Oracle遵守数据存取语言、操作系统、用户接口和网络通 信协议的工业标准 实施安全性控制和完整性控制 支持分布式数据库和分布处理 具有可移植性、可兼容性和可连接性 全球化、跨平台的数据库

Oracle认证
业余(dba认证); 初级(辅助认证OCA); 专业/中级(专业认证OCP)-资料费/考试费/培训费 万元左右 大师/高级(专家级认证OCM)-中国大陆约200人拥有OCM的 认证/考试费约2000$,原厂培训费约2000$。
进行控制的功能。
2. 数据库应用系统(Database Application System)
数据库应用系统:就是使用数据库技术的系统; 数据库应用系统有很多,基本上所有的信息系统都 是数据库应用系统。它通常由软件、数据库和数据管理员组成
3. 数据库管理员(DBA)
数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。数 据库管理员一般是由业务水平较高,资历较深的人员担任 。
×
约束方法:外键约束
数学
0010021
自定义完整性
用户编 AV0012 号 AV0013 AV0014 CV0015 CV0016 会员证 …. AV37828 AV3782 9 AV3782 90 帐号 AV3721 91 00192 AV1213 33 00288 22 触发器:检查信用值 用户姓 孙悟空 名 猪悟能 沙悟净 玄痛 × 乔峰

oracle系统表大全

oracle系统表大全

ORACLE系统表大全1、用户:select username from dba_users;改口令alter user spgroup identified by spgtest;2、表空间:select *from dba_data_files;select *from dba_tablespaces;—-表空间select tablespace_name,sum(bytes),sum(blocks)from dba_free_spacegroup by tablespace_name;--空闲表空间select * from dba_data_fileswhere tablespace_name='RBS’;—-表空间对应的数据文件select * from dba_segmentswhere tablespace_name='INDEXS';3、数据库对象:select *from dba_objects;CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。

4、表:select * from dba_tables;analyze my_table compute statistics;—-dba_tables后6列select extent_id,bytes from dba_extentswhere segment_name=’CUSTOMERS’and segment_type=’TABLE’order by extent_id;-—表使用的extent的信息。

segment_type=’ROLLBACK'查看回滚段的空间分配信息列信息:select distinct table_namefrom user_tab_columnswhere column_name='SO_TYPE_ID';5、索引:select * from dba_indexes;--索引,包括主键索引select * from dba_ind_columns;—-索引列select i.index_name,i。

Oracle常用命令大全(很有用,做笔记)

Oracle常用命令大全(很有用,做笔记)

Oracle常⽤命令⼤全(很有⽤,做笔记)⼀、ORACLE的启动和关闭1、在单机环境下要想启动或关闭ORACLE系统必须⾸先切换到ORACLE⽤户,如下su - oraclea、启动ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>startupSVRMGR>quitb、关闭ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>shutdownSVRMGR>quit启动oracle9i数据库命令:$ sqlplus /nologSQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL> connect / as sysdbaConnected to an idle instance.SQL> startup^CSQL> startupORACLE instance started.2、在双机环境下要想启动或关闭ORACLE系统必须⾸先切换到root⽤户,如下su - roota、启动ORACLE系统hareg -y oracleb、关闭ORACLE系统hareg -n oracleOracle数据库有哪⼏种启动⽅式说明:有以下⼏种启动⽅式:1、startup nomount⾮安装启动,这种⽅式启动下可执⾏:重建控制⽂件、重建数据库读取init.ora⽂件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora⽂件。

2、startup mount dbname安装启动,这种⽅式启动下可执⾏:数据库⽇志归档、数据库介质恢复、使数据⽂件联机或脱机,重新定位数据⽂件、重做⽇志⽂件。

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

表分区的类型 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]);
相关文档
最新文档