oracle常用数据库对象介绍

  • 格式:ppt
  • 大小:1.21 MB
  • 文档页数:63

下载文档原格式

  / 63
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2015年6月10日8时57 分
删除表
• • • • All data and structure in the table is deleted. Any pending transactions are committed. All indexes are dropped. You cannot roll back this statement.
Constraints
2015年6月10日8时57 分
2015年6月10日8时57 分
定义约束
2015年6月10日8时57 分
表和列级约束
2015年6月10日8时57 分
2015年6月10日8时57 分
2015年6月10日8时57 分
2015年6月10日8时57 分
2015年6月10日8时57 分
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view [(alias[, alias]...)] AS subquery [WITH CHECK OPTION [CONSTRAINT constraint]] [WITH READ ONLY]
2015年6月10日8时57 分
使用表的命名约定-2
• 尽量不使用特殊字符,如中欧字符集、 亚洲字符集。(8i中可以使用中文字符命 名表和列,但尽量不要用除非有特殊需 求) • oracle 保留字和dual不能用 • 开发工具或软件产品的保留字
2015年6月10日8时57 分
用子查询创建表
CREATE TABLE table [ (column,column …) ] AS subquery
2015年6月10日8时57 分
Example:
CREATE VIEW clerk (id_number, person, departm AS SELECT empno, ename, deptno, job FROM emp WHERE job = ’CLERK’ WITH READ ONLY;
2015年6月10日8时57 分
Example:
2015年6月10日8时57 分
2015年6月10日8时57 分
定单编号 10001
定单日期 2006-01-03
发货日期 2006-03-07
定单编号 10001 10001
产品编号 AB001 AC001
定货量 100 500
定货价 9.8 20
2015年6月10日8时57 分
Truncate a Table
• The TRUNCATE TABLE statement: – Removes all rows from a table – Releases the storage space used by that table • You cannot roll back row removal when using TRUNCATE. • Alternatively, you can remove rows by using the DELETE statement. SQL> TRUNCATE TABLE department; Table truncated.
• • • • 保证名字要短,且能够说明表的特征 将父表与子表的名字联系起来 引用列与被引用列应该使用同一个名字 与表相关的对象的命名要与表的名字联 系起来 • 避免使用引号,关键字,非字母非数字 的字符(nonalphanumeric) ——除非是$、 _、# 三种符号
2015年6月10日8时57 分
2015年6月10日8时57 分
Synonym
对另一个数据对象而言同义词是一个别名。public同 义词是针对所有用户的,相对而言private同义词则只针对 对象拥有者或被授予权限的账户。在本地数据库中同义 词可以表示表、视图、序列、程序、函数或包等数据对 象,也可以通过链接表示另一个数据库的对象。 创建同义词语法如下 CREATE [PUBLIC] SYNONYM synonym_name FOR [schema.] object[@db_link];
select seq_no.curval from dual; select seq_no.nextval from dual;
2015年6月10日8时57 分
创建序列
2015年6月10日8时57 分
修改序列
2015年6月10日8时57 分
删除序列
2015年6月10日8时57 分
Example:
2015年6月10日8时57 分
Index speed up queries
• • • • 通过使用指针来提高取回行的速度 通过快速定位数据方法,减少磁盘I/O 独立于其索引的表 被Oracle Server维护
2015年6月10日8时57 分
创建索引
2015年6月10日8时57 分
删除索引
2015年6月10日8时57 分
SQL> DROP TABLE dept30; Table dropped.
2015年6月10日8时57 分
重命名对象
• To change the name of a table, view, sequence, or synonym, you execute the RENAME statement. • You must be the owner of the object. SQL> RENAME dept TO department; Table renamed.
2015年6月10日8时57 分
修改表
ALTER TABLE table ADD ( column datatype [DEFAULT expr] [, column datatype]...); ALTER TABLE table MODIFY ( column datatype [DEFAULT expr] [, column datatype]...); ALTER TABLE table DROP COLUMN column ; ALTER TABLE table SET UNUSED COLUMN column ;
2015年6月10日8时57 分
View
• 视图是建立在一个或者多个表上导出的 虚表。视图的数据由它的基表获得。基 表可以是普通表,也可以是其他视图。
2015年6月10日8时57 分
创建视图
• 在CREATE VIEW命令中写入子查询, • 子查询中可以包含复杂SELECT语法 • 子查询中不能包含ORDER BY子句。
初步了解Oracle 常用数据库对 象
• • • • • • • • • • 普通表 table 视图 view 序列 sequence 索引 index 约束 constraint 同义词 synoym 存储过程 procedure 函数 function、 包 package、 触发器 trigger
DROP
VIEW view_data;
2015年6月10日8时57 分
Sequence
• • • • • • 自动生成唯一数字 共享对象 经常用于创建主键值 取代应用程序代码 提高访问的速度和有效性 可以被高速缓存(cache)
2015年6月10日8时57 分
查询序列值
序列创建好之后,可以用SQL语句访问它的两个虚列 CURRVAL pseudocolumn (序列当前值) NEXTVAL pseudocolumn (序列产生一个新值).
2015年6月10日8时57 分
• 2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个 列存储多个变量中,必须有一条 记录,否则抛出异常(如果没有记录抛出 NO_DATA_FOUND) 例子: BEGIN SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx; EXCEPTION WHEN NO_DATA_FOUND THEN xxxx; END; ...
SQL>SELECT TABLE_NAME,COLUMN_NAME, UPDATABLE, INSERTABLE,DELETABLE 2 FROM USER_UPDATABLE_COLUMNS 3 WHERE TABLE_NAME ='EMP_BONUS' SQL>/
2015年6月10日8时57 分
WITH CHECK OPTION
2015年6月10日8时57 分
Examwenku.baidu.comle:
CREATE VIEW clerk (id_number,person, department, position) AS SELECT empno, ename,deptno, job FROM emp WHERE job = ’CLERK’ WITH CHECK OPTION CONSTRAINT wco;

2015年6月10日8时57 分
2015年6月10日8时57 分
oracle 存储过程
• 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 输入参数1 IN NUMBER, 输入参数2 IN NUMBER, … 输出参数1 out char, … ) IS 变量1 INTEGER :=0; 变量2 DATE; BEGIN • END 存储过程名字
2015年6月10日8时57 分
Table
• Table 是在关系数据库中保存数据的 一种数据结构,由列和行组成。 • 在逻辑存储层次关系中的段(segment) 得一种
2015年6月10日8时57 分
创建表
• CREATE TABLE table 。。。
2015年6月10日8时57 分
使用表的命名约定
2015年6月10日8时57 分
2015年6月10日8时57 分
Example:
ALTER TABLE emp MODIFY (sal NUMBER CONSTRAINT nn_sal NOT NULL);
2015年6月10日8时57 分
CREATE TABLE scott.emp (empno NUMBER CONSTRAINT pk_emp PRIMARY KEY, ename VARCHAR2(10) CONSTRAINT nn_ename NOT NULL CONSTRAINT upper_ename CHECK (ename = UPPER(ename)), job VARCHAR2(9), mgr NUMBER CONSTRAINT fk_mgr REFERENCES scott.emp(empno), hiredate DATE DEFAULT SYSDATE, sal NUMBER(10,2) CONSTRAINT ck_sal CHECK (sal > 500), comm NUMBER(9,0) DEFAULT NULL, deptno NUMBER(2) CONSTRAINT nn_deptno NOT NULL CONSTRAINT fk_deptno REFERENCES scott.dept(deptno) ) PCTFREE 5 PCTUSED 75;
• 简单视图与复杂视图对比
2015年6月10日8时57 分
复杂视图
2015年6月10日8时57 分
在视图上执行DML语句的规则
2015年6月10日8时57 分
Example:
Create view emp_bonus as select a.empno,a.ename,b.bonus from emp a, bonus b where a.ename=b.ename
创建视图
• CREATE VIEW newempview • AS • SELECT * FROM emp • WHERE hiredate > • ‘01-jan-82’;
2015年6月10日8时57 分
查询视图
2015年6月10日8时57 分
修改视图定义
2015年6月10日8时57 分
复杂视图
SQL> CREATE SEQUENCE dept_deptno 2 INCREMENT BY 1 3 START WITH 91 4 MAXVALUE 100 5 NOCACHE 6 NOCYCLE; Sequence created.
2015年6月10日8时57 分
Index
• 模式对象,对于表或簇中每一个被索引 的列的每一个值都保留一个条目。 • 提供了直接快速访问行的方式 • 一个表可以拥有任意多个索引 • 可以索引一个列,也可以索引多个列在 一个索引中最多可以包含16个列 • 索引缺省是升序排列的。