




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.表空间是Oracle数据库内部数据的逻辑组织结构。一般情况下,建立表空间由特权用户或DBA完成。建立数据库时,Oracle会自动建立系统表空间SYSTEM和SYSAUX临时表空间TEMP撤销表空间UNDOTBS1创建表空间命令语法:CREATE SMALLFILE | BIGFILE PERMANENT | TEMPORARY | UNDO TABLESPACE tablespaceDATAFILE|TEMPFILE datafile_tempfile_spec , datafile_tempfile_spec . MINIMUM EXTENT integer K | M | BLOCKSIZE integer K | M | EXTENT MANAGEMENT LOCAL AUTOALLOCATE | UNIFORM SIZE integer K|M | SEGMENT SPACE MANAGEMENT MANUAL | AUTO | ONLINE | OFFLINE | LOGGING | NOLOGGING ;2.Oracle用户表主要有5种类型:关系表:用来存储用户的永久数据。临时表:供系统使用,如查询结果等。按索引组织的表:用来存储数据和索引。外部表:数据库外部数据文件,只读。嵌套表:一个表被另外一个表引用。 其中关系表是用来存储和管理用户数据的对象。在Oracle中,还可对关系表创建分区表和蔟表,大大加快了表的访问速度。3.创建数据表结构的方法主要有两种,最简单的是通过SQL命令创建表结构,方便、快捷,修改容易,可重复性好。还可以通过OEM创建,可视化程度高,修改更加方便。4.使用SQL命令创建表结构:5.使用查询子句创建数据表:利用查询子句建立新表,不但能备份原表使其不被破坏,还能选择其部分列创建新表。创建新表时,以查询条件为源,可以快速在新表中得到满足查询条件的数据。 SQL语法是:CREATE TABLE 表名(列名,列名) AS 子句; 需要注意的是:(1) 原表中的long型字段不会复制到新表中。(2) 原表的完整性约束不会被复制到新表中,需要另外增加完整性约束。6.表结构的修改:Oracle数据表创建之后如果需要修改其表结构,同样可以通过SQL命令修改或者用企业管理器OEM进行修改。1. 用SQL命令修改表结构: SQL命令修改表结构的语法是:ALTER TABLE 表名 MODIFY (字段名1 类型宽度),MODIFY (字段名n 类型宽度) STORAGE 子句;【例3-4】修改表emp_new1中员工名字段宽度,增大2字符。ALTER TABLE emp_new1 MODIFY (ename varchar2(12); -原来是10,改为127.用SQL命令删除列:SQL命令删除列,一次只能删除一列。当需要删除多列时,只能多次使用删除命令。SQL删除列命令语法是:ALTER TABLE 表名 DROP(列名);【例3-7】删除例3-6表emp_new3中增加新列email字段。SQLALTER TABLE emp_new3 DROP(email);表已更改 -屏幕显示:表已经改变,删除列成功8.表的删除:使用SQL删除表的命令语法是:DROP TABLE 表名 CASCADE CONSTRAINTS; -括号中是级联约束子句 对于没有被外键关联的表,可以直接删除。但删除存在外键关联的表时,删除时需要使用级联约束子句。9. 表约束:Oracle数据库通过约束规则实现数据完整性控制,这些约束规则可以定义在数据列中(inline constraint),也可以在列定义之外(out of line constraint)。10. 约束规则的种类:(1) NOT NULL:非空约束,列值不能为空,一般直接应用于列定义中。(2) Primary key:主键约束,一个表只能有一个主键约束。主键可以是单个字段,也可以是多个字段。无论是哪种情况,其所有字段都是NOT NULL。(3) Unique:唯一性约束,指定某列值不能重复。一个表可以有多个Unique约束,Unique的字段可以为NULL。(4) Foreign key:外键约束,也叫参照完整性约束,指定某列为表的外键,并指定它参照的表和列。外键约束可以在列中定义,也可以在列外定义。(5) Check:检查约束,用于限制列值在约束范围内。检查约束可以在列中定义,也可以在列外定义。(6) REF:定义列对象的参照关系,一般用于嵌套表。11. 完整性约束应用特点:(1) Primary key与Unique约束默认会成为索引。当主键和Unique有多个字段时,在where语句中的条件必须有主键或者unique的第一个字段,否则不会使用索引。组合关键字只能在表级定义。(2) 一个表只能指定一组关键字,但可以在不同列上建立多个数据唯一性约束。(3) 可以在定义表时定义完整性,也可以在定义表之后使用Alter table语句定义完整性.12. 表约束的维护:表约束的维护有增加约束、禁用与启用约束、重命名约束和删除约束。1) 增加约束:增加(add)主键约束和检查(check)约束。(2) 禁用与启用约束:【例3-16】禁用emp_new5表主键约束,禁用检查约束。 Alter table emp_new5 modify primary key disable; -禁用主键约束 Alter table emp_new5 modify constraint check_sal disable; -禁用检查约束【例3-17】启用emp_new5表主键约束,启用检查约束。Alter table emp_new5 modify primary key enable; -启用主键约束Alter table emp_new5 modify constraint check_sal enable; -启用检查约束3) 重命名约束【例3-18】重命名emp_new5表检查约束为check_sal_comm。 Alter table emp_new5 rename constraint check_sal to check_sal_comm;-重命名检查约束4) 删除约束【例3-19】删除emp_new5表检查约束check_sal_comm。 Alter table emp_new5 drop constraint check_sal_comm; -删除检查约束13. 索引的定义:索引是建立在表或视图上的一种独立的物理数据库结构,是一种可选的数据对象,创建索引的目的是为了加快表中数据的查询速度。索引和表一样,也具有独立的存储结构,当数据表中数据宏大时,索引也占有较大的存储空间。为了进一步优化索引的查询,建立索引时可以设置索引文件存储的表空间和存储参数。14. 索引类型有以下几种:B树索引:这是默认的索引类型。B树蔟索引:为簇定义的索引。位图索引:适用于字段值重复较多的场合。函数索引:能够在索引中包含预先计算的函数值。全局与本地索引:在分区表上定义的索引。15:簇表的定义:簇表是由多个共享相同数据块的表组成的,把这些表合在一起组成簇表可以提高数据访问的效率例如EMP表和DEPT表共享DEPTNO列,如果把EMP表和DEPT表中组成簇表时,两个表中每个部门的所有行都会存储到相同的数据块中。建立簇表带来的好处是,不仅减少了磁盘I/O,加速了数据访问速度,还由于在簇表中存储相关表的簇索引要比非簇表索引数据占有的空间更少。16.分区表的定义:为了加快对宏大数据的访问速度,Oracle采用了分区表的方式组织和管理数据表,同时还采用了分区索引,使各个分区和分区索引可以按一定的分区规则提前组织、单独使用,甚至可以非常方便地存储在不同的表空间中。这样不仅减少了数据的I/O操作,极大地提高了数据访问的效率,还能单独备份和恢复每个分区数据,使数据更加安全。Oracle提供的分区表管理有4种类型:范围分区、散列分区、列表分区和组合分区。1. )范围分区表:范围分区就是把表中某数值字段值或日期字段,按照一定的范围来进行分区2. )散列分区表:散列分区可以把数据表中的数据按均等地、随机的原则划分到用户设定的若干分区中,提供给用户一种灵活的放置数据的方法,提高了数据访问的性能。3. )列表分区表:如果分区字段的值不能进行范围分区,但可以按值确定出几种归属,则可以使用枚举的方式列出分区字段依据的归属条件,把表的数据分类映射到列表分区。4. )组合分区表: 组合分区是在分区中使用范围分区方法、在子分区中使用散列分区或列表分区方法。组合分区适用于历史数据和条块数据,它改善了范围分区及其数据放置的管理型,并提供了散列分区的并行机制的优点。17.序列(大题):使用SQL语句创建序列:在SQL*Plus中创建序列的语法是:CREATE SEQUENCE 序列生成器名INCREMENT BY n -时间间隔(也就是序列数的间隔)START WITH n -起始序列值MAXVALUE n | NOMAXVALUE -最大序列值MINVALUE n | NOMINVALUE -最小序列值(反序用)CYCLE | NO CYCLE -达到最大值后变为最小值,可构成循环数。CACHE n | NO CACHE -开辟高速缓存,以便高速访问多个序列值ORDER | NO ORDER -产生时间戳时可选择ORDER读取序列值,需要使用到两个伪列:CURRVAL伪列:用以读取序列的当前值,调用后序列值不改变。NEXTVAL伪列:用以读取序列生成的下一个值,调用后序列值改变为新值。修改序列:序列仅有起始值不能修改,其他参数均可修改,否则必须删除序列后重建。修改序列生成器的语法是:ALTER SEQUENCE 序列名删除序列的语法是:DROP SEQUENCE 序列名【例3-44】删除序列my_sequ。SQL DROP SEQUENCE my_sequ;18:视图的概念:视图是一个基于基表和其他视图的逻辑表,视图由语句组成。根据用户的需要,视图从相应的数据表中抽出数据以组成相应的“表”。使用视图的好处是:(1) 隐藏逻辑数据的复杂性,使复杂的查询简单化;(2) 为应用提供数据独立性,系统安全性更好;(3) 可以为相同数据提供不同的视角。 视图是语句对表操作的结果,因此,视图的许多操作与表管理操作是相同的。19.数据库链接:Oracle提供了数据库链接(DATABASE LINK)的功能,目的是在分布式环境下,从本地数据库访问远程数据库中的数据。通常,我们称在本机登录的数据库为本地数据库,需要访问的另外一个数据库称为远程数据库。应用数据库链接,可以直接访问远程数据库的表。20.数据库链接的使用方法:通过数据库链接对远程数据库的表进行读写,可以直接访问,也可以在本地建立远程数据库的视图和创建同义词进行访问。21.实体化视图:Oracle提供了实体化视图(MATERIALIZED VIEW),如同视图一样,实体化视图也是一个表,用以在分布式环境下通过数据库链接查询远程数据库的表或视图。被查询的表或视图称为主表,被查询的数据库称为主数据库。建立实体化视图分为以下两步:(1) 建立实体化视图日志(表),用以提供刷新实体化视图的数据。(2) 建立实体化视图。22.SQL语言概述:SQL语言按照功能主要分为四大类: 数据定义语言(Data Definition Language,DDL):用于定义、修改、删除数据库对象,进行权限管理,在第3章已有介绍。 数据操纵语言(Data Manipulation Language,DML):用于插入、更新、删除、合并数据库中的数据,在本章中介绍。 数据控制语言(Data Control Language,DCL):用于控制数据库服务器的启动和关闭等操作. 事务控制(Transaction Control):用于多用户环境下,保证数据库中数据的完整性、一致性.23. DML: Oracle数据库操纵语言(Data Manipulation Language,DML)用于查询和操纵模式对象中的数据,包含INSERT、UPDATE、DELETE和MERGE等命令。24. 插入语句INSERT:INSERT语句用于在数据表中增加数据,例如插入一行记录或多条记录。INSERT语句的基本语法是:INSERT INTO 表名(列名1,列名2,) values(数据1,数据2,)使用子查询语句从其他表中提取数据插入到指定的表中更为方便,因为这种方法可以一次插入多个记录,其语法如下:INSERT INTO 表名(,) SELECT , FROM ; 25. 更新语句UPDATE: UPDATE语句用于修改表中的数据。 UPDATE也有两种语句格式。1. 简单格式:简单格式用于直接修改某个列值,例如:UPDATE 表名 SET 列名=新值 WHERE 更新条件;2. 使用子查询的UPDATE语句:PDATE 表名1 SET(列名1,列名2,)= (SELECT 列名1,列名2,FROM 表名2 WHERE 条件);26.删除语句DELETE:DELETE语句用于删除表中的一行或多行数据。其格式如下:DELETE FROM 表名 WHERE 条件; -“ ”中是可选项。27. IF条件语句:PL/SQL的IF语句和CASE语句实现程序的选择分支执行功能。当选择分支较多时,CASE语句有更好的可读性。28. CASE分支语句:CASE语句是将某个表达式的值与一组常量进行比较,如表达式与某个常量的值相等,则执行对应的语句。格式:CASE WHEN 条件表达式1 THEN 语句序列1; WHEN 条件表达式2 THEN 语句序列2; ELSE 语句序列3END CASE;29.循环语句: 循环语句是指重复执行一组操作的语句,直到完成预定的循环条件后结束。PL/SQL中循环语句有3种格式,分别是LOOP循环、WHILE循环和FOR循环,以适应不同的应用场合。LOOP循环:LOOP循环的特点是先进入循环体执行语句序列,然后判断是否满足退出循环体的条件:LOOP 语句序列; EXIT WHEN 布尔表达式;END LOOP;WHILE循环在条件满足时,保持循环体中语句的执行,直到条件不满足时退出循环。FOR循环使用计数器来控制循环次数,计数器从低界开始递增到高界,也可选择REVERSE从高界递减到低界,当循环计数器超出指定的范围时,循环结束。30. 游标的概念:当PL/SQL中的SELECT语句返回一个记录集,用户需要对该记录集中每一条记录逐个进行处理时,使用游标来管理SELECT语句是一个有效的方法。游标对应的是一条SELECT语句,当打开一个游标,就执行了该SELECT语句。通过对游标控制,用户可以完成对表中记录逐条处理。游标分为两类:隐式游标和显式游标。当执行一个SELECT语句时,Oracle自动打开的游标为隐式游标。显式游标是需要用户先定义、后使用的,显式游标适用于需要单独处理每一条记录的场合。31. 游标定义格式如下:CURSOR 游标名(参数) IS SELECT 子句; -参数与括号是任选项,同时舍取32. 游标的使用方法:游标使用分5步:(1) OPEN语句打开游标。(2) FETCH语句取出一行数据。(3) 处理取出的数据。(4) 返回到步骤(2)继续取下一行数据。(5) CLOSE语句关闭游标。FETCH语句的语法是:FETCH游标名(参数) INTO 变量名表;具体使用游标是通过PL/SQL循环语句反复执行第(2)第(4)步的。32.显式游标的属性: 对于明确定义和打开的游标可以使用如下属性:%ISOPEN:布尔型。如果游标已经打开,值为TRUE。%NOTFOUND:布尔型。如果最近一次FETCH操作没有返回结果,则值为TRUE。%FOUND:布尔型。如果最近一次FETCH操作有返回结果,则值为TRUE。%ROWCOUNT:数值型。取值为到当前记录为止返回的记录数。 游标属性的应用方法是将属性直接写在游标名的后面。如下代码判断游标emp_cur是否打开,如果尚未打开,则打开它。IF NOT (emp_cur%ISOPEN) THEN OPEN emp_cur; END IF;33. 隐式游标的属性:在执行SQL语句时,系统隐含地创建并打开一个游标。隐式游标也有显式游标的四个属性,不过在其内部状态变化和用法上有些差别。由于隐式游标未被明确定义,没有名称来标识它,因此Oracle统一用“SQL”作为隐式游标名。它对应的是最近执行完成的SQL语句(不仅仅是SELECT语句)。如下代码段中第一行的UPDATE语句将产生一个隐式游标,对应于它要修改的记录。随后的IF语句判断它是否有满足条件的被修改记录。如没有,则在emp表中插入一条新记录。UPDATE emp SET sal = sal * 1.05 WHERE empno = my_empno;IF SQL%NOTFOUND THENINSERT INTO emp VALUES (my_empno, my_ename, );END IF;34. 存储过程:PL/SQL过程又称为存储过程,其表现形式有两种:一种是匿名程序块,匿名程序块每次执行时,需要先编译后运行,执行完毕后就不再存在于数据库系统中。另一种是命名程序块,它可以保存在数据库系统中反复使用,因此有很高的效率。35. 过程的概念和创建格式:过程就是一段应用程序,可用来完成数据库对象的操作和控制及数据处理任务。为了方便系统调用,必须给过程命名。创建过程的格式是:CREATE OR REPLACE PROCEDURE 过程名 参数1 IN | OUT | IN OUT 类型, 参数2 IN | OUT | IN OUT 类型 . IS | AS 变量说明部分;BEGIN 执行部分;EXCEPTION 异常处理部分;END;36.数据库触发器应用: 数据库触发器(Database Triggers)是一种特殊类型的PL/SQL程序块,其结构与过程和函数类似,也包括声明部分、执行部分和异常处理部分。但触发器执行的方法与过程有2点不同:(1) 过程是显式地通过调用执行,而触发器在事件的触发下隐式地运行。(2) 过程调用可以传递参数,而触发器不能接收参数。 当触发器对应的事件发生时,自动执行触发器中预先编写好的程序,完成规定的操作。触发器的分类:Oracle触发器主要分为3种:DML触发器、DDL触发器和系统触发器。37. 触发器程序的编写:创建触发器的语法格式是:CREATE OR REPLACE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海华力公司的劳动合同7篇
- 公司股权比例分配合同9篇
- 项目施工招标合同范本
- 茶山施肥合同10篇
- 小区物业劳务合同9篇
- 废旧编织袋回收合同7篇
- 2025年北京市商品授权销售合同9篇
- 单方解除合同协议书
- 成品配送合同协议书模板
- 操场承包施工合同协议书
- 2025年河北省唐山市中考一模道德与法治试题(含答案)
- 2025年一级注册计量师考试题库大全及答案
- 放疗皮肤反应分级护理
- 2025年03月内蒙古鄂尔多斯市东胜区事业单位引进高层次人才和紧缺专业人才50人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 卫生院全国预防接种日宣传活动总结(8篇)
- 小学消防知识教育
- 2024国家电投集团中国电力招聘(22人)笔试参考题库附带答案详解
- 安徽2025年03月合肥高新技术产业开发区管理委员会公开招考60名工作人员笔试历年参考题库考点剖析附解题思路及答案详解
- 2025年第三届天扬杯建筑业财税知识竞赛题库附答案(601-700题)
- 2025年四川绵阳市投资控股(集团)有限公司招聘笔试参考题库附带答案详解
- 通信汛期安全培训
评论
0/150
提交评论