oracle数据库基本操作讲义课件_第1页
oracle数据库基本操作讲义课件_第2页
oracle数据库基本操作讲义课件_第3页
oracle数据库基本操作讲义课件_第4页
oracle数据库基本操作讲义课件_第5页
已阅读5页,还剩129页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

oracle数据库基本操作讲义课件1第六章oracle数据库基本操作本章内容:Oracle数据库的数据类型Sql/plus环境Oracle数据库基本操作建立、删除、修改基本表建立、删除、修改索引 建立、删除、修改视图第六章oracle数据库基本操作本章内容:2本节内容预备知识1:建表之前必须明确用户和模式的关系;预备知识2:建表之前必须清晰管理表的策略;Oracle数据库基本操作建立、删除、修改基本表建立、删除、修改索引 建立、删除、修改视图本节内容预备知识1:建表之前必须明确用户和模式的关系;3预备知识1:用户和模式的关系Oracle9i数据中用方案(schema)来对逻辑对象进行管理。不同的数据库对象具有各自的特点和用途。方案或模式、模式对象、用户的定义区别:Aschema:acollectionofdatabaseobjects(usedbyauser.).被用户使用的数据库对象的集合。Schemaobjects

:thelogicalstructuresthatdirectlyrefertothedatabase’sdata.指向数据库数据的逻辑结构集。Auser:anamedefinedinthedatabasethatcanconnecttoandaccessobjects.在数据库中为了能够连接和访问对象而定义的名字。预备知识1:用户和模式的关系Oracle9i数据中用方案(s4schema为数据库对象的集合,为了区分各个集合,需要给这个集合起个名字,即方案下看到的许多类似用户名的节点这些类似用户名的节点其实就是一个schemaschema里面包含了各种对象tables,views,sequences,storedprocedures,synonyms,indexes,clusters,anddatabaselinks。schema为数据库对象的集合,为了区分各个集合,需要给这个5一个用户一般对应一个schema,该用户的schema名等于用户名,并作为该用户缺省schema。Oracle数据库中不能新创建一个schema,要想创建一个schema,只能通过创建一个用户的方法解决在创建一个用户的同时为这个用户创建一个与用户名同名的schem并作为该用户的缺省shcema。schema的个数同user的个数相同,而且schema名字同user名字一一对应并且相同(别名,不准确)。

一个用户一般对应一个schema,该用户的schema名等于6一个用户还可以使用其他的schema。select*fromemp;完整写法为select*fromscott.emp。schema.object,而不属user.object。一个用户还可以使用其他的schema。7举个例子:schema作为user的别名的依据SQL>Gruantdbatoscott

SQL>createtabletest(namechar(10));

Tablecreated.

SQL>createtablesystem.test(namechar(10));

Tablecreated.

SQL>insertintotestvalues('scott');

1rowcreated.

SQL>insertintosystem.testvalues('system');

1rowcreated.

SQL>commit;

Commitcomplete.举个例子:schema作为user的别名的依据SQL>G8SQL>connsystem/manager

Connected.

SQL>select*fromtest;

NAME

----------

system

SQL>ALTERSESSIONSETCURRENT_SCHEMA=scott;--改变用户缺省schema名

Sessionaltered.SQL>connsystem/manager

Conne9SQL>select*fromtest;

NAME

----------

scott

SQL>selectowner,table_namefromdba_tableswheretable_name=upper(‘test’);

OWNERTABLE_NAME

------------------------------------------------------------

SCOTTTEST

SYSTEMTEST

--在使用上,shcema与user完全一样。SQL>select*fromtest;

NAME

10模式(方案、schema)的建立。是否用户一建立模式同时建立?必须建立对象才能在模式中显示相应的用户名。模式(方案、schema)的建立。11以system用户登录以system用户登录12创建用户net1并以之登录创建用户net1并以之登录13创建表空间netspace创建表空间netspace14在netspace表空间下创建表nettable在netspace表空间下创建表nettable15预备知识2:管理表的策略1、设计表开发数据库应用系统时,数据库管理员负责规划和建立表空间,而规划和建立表则往往是由应用开发人员完成的。应用开发人员设计表时应考虑以下因素:<1>在为表、列、索引的视图、同义词、触发器等与表有关的对象命名时,应该使用权有意义的名称,其格式要有利于区分这些对象。<2>为了给用户和其它人员提供有意义的帮助信息,应该使用权Comment命令描述表、列的作用.预备知识2:管理表的策略1、设计表16预备知识2:管理表的策略<3>设计表时,应该使用权范式来规划每个表.范式分为第一范式第二范式第三范式范式越高,表的设计越规范.<4>定义表列时,应该选择合适的数据类型和长度,为了节省存储空间,应该将可以取Null值的列放在后面.<5>确定表中所需的完整性约束。<6>在合适的情况下,使用簇表以节省存储空间并提高特定类型的SQL语句的性能.预备知识2:管理表的策略<3>设计表时,应该使用权范式来规划17预备知识2:管理表的策略2、规划表的类型在Oracle数据库中,存储用户数据可以使用标准表索引表簇表和分区表.标准表:数据按堆组织,以无序方式存放在单独表的表段中.这种表是最基础最常用的数据库表类型,是默认情况下创建的表.索引表:数据是以”B-树”结构存放在主键约束所对应的索引段中.使用索引表时,索引叶子节点不仅包含了键列的数据还包含了其他非键列的数据。簇表:簇由共享相同数据块的一组表组成.在合适的情况下,使用簇表可以节省存储空间并提高SQL语句的性能.分区表:数据被划分为更小的部分,并且存储到相应的分区段中,每个分构段可以独立管理和操作.

预备知识2:管理表的策略2、规划表的类型18预备知识2:管理表的策略3、规划表的位置如果要在特定表空间上建表,用户必须在该表空间中具有相应的配额或具有UnlimitedTablespace的系统权限如果建表时不指定TableSpace选项,Oracle会将表建立在用户的默认表空间中.通过指定TableSpace选项,可以将表建立在其他表空间中.预备知识2:管理表的策略3、规划表的位置19当规划表的存放位置时,应注意以下事项:System表空间中应该只包含数据字典和Oracle系统对象

.如果将表建立在System表空间,将会影响数据库性能.建议DBA给每个用户指定其它的默认表空间.设计应用系统时,应该规划存放应用系统的表的表空间,不要随意分散地创建到不同的表空间中,这样会使执行某些数据库管理和维护操作.当规划表的存放位置时,应注意以下事项:20使用NoLogging选项建表在创建表的过程中指定nologging子句,避免在创建表过程中产生过多的重做记录。nologging子句适合时在创建大表时使用.使用ComPress选项建表使用Oracle的表压缩特征(Compress)时,Oracle会将同一个数据块行和列的重复数据放在数据块的头部,压缩了表数据。使用NoLogging选项建表214、创建大表时的建议<1>将表和它的索引分享存放大表所对应的索引通常比较大,将表和它的索引分别存放在不同的表空间中,这样的重建索引的过程中能够更加容易地获取所需的连续存储空间,并且可以提高查询时的I/O效率.<2>分配足够的临时空间如果如果应用程序员在访问大表时需要执行规模较大的排序操作,就必须在数据库中具有一个较大的临时段,临时段的存储参数设置取决于临表空间的默认存储参数设置,即Storage子句中的各种参数的设置4、创建大表时的建议225、预计和规划表的大小可以对表的大小进行估计,包括对索引回退段和重做日志文件大小的估计,以决定支持期望的数据库所需的磁盘空间大小.通过这些估计,就可以购买合适的硬件和作其它决定5、预计和规划表的大小236.3创建基本表1、创建基本表基本表是数据库最基本的对象,是实际存放数据的地方。6.3创建基本表1、创建基本表24以system登录以system登录25“创建表”对话框包含了七个选项卡“一般信息”选项卡,“名称”文本框:输入新建表的名称,表名在数据库的同一方案中是唯一的。表名最长30个字符,以字母开始,后由数字、下划线、#、$等组成。本例名为customer。“方案”本例取默认值(SYSTEM)。“表空间”本例取user。“表”单选按钮:“标准”表示建立常规表,表的一列或多列使用一个索引,为表和索引保留两个独立的存储空间;“按索引组织的表”表示建立非常规表,表的数据保存在该表的索引中,更改表中的数据(如插入、删除或修改行等)将使索引更新。本例取默认值(标准)。“创建表”对话框包含了七个选项卡“一般信息”选项卡,26创建数据表customer的一般信息使用可编辑的文本区域来创建基于当前表的PL/SQL查询语句。

创建使用用户定义的对象类型的对象表表示可以创建XML类型的表创建数据表customer的一般信息使用可编辑的文本区域来创27“约束条件”选项卡,如下页图所示。该选项卡可以使用可编辑的电子表格编辑表的完整性约束条件。完整性约束条件是一种规则,不占用任何数据库空间,其定义存储在数据字典中,在执行PL/SQL期间使用。该电子表格由以下各列构成:“约束条件”选项卡,如下页图所示。该选项卡可以使用可编辑的电28“约束条件”选项卡“名称”:要定义的完整性约束条件名,它在数据库中应是唯一的。本例定义了一个完整性约束条件:pk_costomer_1(PRIMARY)--cid为主键另外举两例xingbie(CHECK)--SSEXIN(‘男’,‘女’),nianling(CHECK)--SAGEBETWEEN18AND24。“类型”:约束条件类型,下拉列表中显示了可用的约束条件类型有UNIQUE、PRIMARY、FOREIGN、CHECK。本例选择类型为PRIMARY,表示pk_costomer_1是一个类型为主键的完整性约束条件。“是否禁用”:表示创建约束条件时是禁用还是启用该约束条件。“引用方案”:为约束条件中的FOREIGN(外键)引用。“约束条件”选项卡“名称”:要定义的完整性约束条件名,它在数29数据表customer的约束条件数据表customer的约束条件30“簇列”选项卡如果选中“将表定义为簇的一部分”复选框,则表示将表作为簇的一部分。选中后该选项卡的所有选项都可以操作:簇的的信息显示在一个包含两列的列表框中,描述如下“表列”:显示了当前表所有已定义的列。“簇列”:显示了包含在已选簇内的簇关键字列。本例皆取系统默认值。“簇列”选项卡如果选中“将表定义为簇的一部分”复选框,则表示31数据表customer的簇列数据表customer的簇列32“分区”选项卡该选项卡的“范围分区”包含如下设置:“分区名”:显示分区的名称,但不能编辑该值。“表空间”:显示存储分区的表空间,但也不能编辑该值。该选项卡中包括如下按钮:“编辑”:允许对分区进行编辑。选择一行后该按钮即被启用。“添加”:允许添加分区。选择最后一行后,该按钮可被启用。“删除”:允许删除分区。选择一行后,该按钮即被启用。本例皆取系统默认值。“分区”选项卡该选项卡的“范围分区”包含如下设置:33数据表customer的分区数据表customer的分区34“存储”选项卡“存储”选项卡,可以定义表的存储方式“存储”选项卡“存储”选项卡,可以定义表的存储方式35在“区”选项组内,可以指定下列参数的值:

“初始大小”:指定表的第一个分区的大小。可以输入一个值,但至少为一个数据块的大小,默认值为64KB。“下一个大小”:指定表的第二个分区的大小。可以输入一个值,但至少为一个数据块的大小,默认值为64KB。“增量”:指定从第三区开始相对于上一个区的增长百分比。“最小数量”:指定分配给表的最小区数。默认值为1。

“最大数量”:指定分配给表的最大区数。可以输入一个值,也可以是无限制。在“空间利用率”选项组内,可以指定下列参数的值:

“保留用于更新的空闲空间的百分比”:指定为以后更新表而保留的空间的百分比,可以输入0~99之间值,默认为10。“行插入备选对象的使用空间百分比阈值”:指定为该表数据块保留的已用空间的最小百分比,可以输入0~99之间的值,默认值为40。在“区”选项组内,可以指定下列参数的值:36在“事务处理数量”选项组内,可以指定下列参数的值:“初始值”:指定该表每个数据块中分配的初始并行处理事务项数,可以输入1~255之间的值。“最大值”:指定可同时修改表的数据块的最大并行处理事务项数,可以输入1~255之间的值。在“空闲列表”选项组内,可以指定下列参数的值

“空闲列表”:指定表、簇或索引的每个空闲列表组的数量。可以输入一个值,默认值为1。“组”:指定表、簇或索引的每个空闲列表组的数量。可以输入一个值,默认值为1。在“缓冲池”下拉列表中可以指定默认缓冲池:“KEEP”:表示保留内存中的方案对象以避免I/O操作。“RECYCLE”:表示一旦不需要数据块时,立即将它们从内存中清除,以防止对象占用不必要的高速缓存空间。“DEFAULT”:表示默认缓冲池为高速缓冲存储器,所有对象块均存储在指定的高速缓存中。在“事务处理数量”选项组内,可以指定下列参数的值:37“选项”选项卡该选项卡可以定义表的并发操作、是否覆盖和如何审计等特性。“选项”选项卡该选项卡可以定义表的并发操作、是否覆盖和如何审38如果选中“并行”复选框,则表示以并行方式装载,并行执行某种操作。“程度”表示单个例程的操作并行度,即使用的查询服务器的数量,可以指定默认值(根据CPU数量和存储要求并行扫描的表计算得到),也可以输入一个值。如果选中“覆盖默认事件记录值”复选框,表示启用事件记录,将创建重做日志。该操作比不启用事件记录所用时间长,但可以在故障时恢复更新。如果选中“将经常访问的数据放在缓冲区高速缓存的顶端(CACHE)”复选框,表示某个用户进程首次需要某一特定数据时,将在数据库的缓冲区高速缓存中搜索该数据。如果选中“监视—收集表上的修改统计信息”复选框,表示用户希望收集该表的修改统计信息。如果选中“并行”复选框,则表示以并行方式装载,并行执行某种操39“约束条件存储”选项卡“约束条件存储”选项卡,如图所示。该选项卡可以为不同的约束条件选择不同的存储方式。“约束条件存储”选项卡“约束条件存储”选项卡,如图所示。该选40oracle数据库基本操作讲义课件41“约束条件名称”下拉列表:可以选择不同的约束条件,以便为不同的约束条件指定不同的存储方式“表空间”下拉列表:可以为约束条件的存储选择指定表空间。如果选中“覆盖默认事件记录值”,表示在数据段中可以覆盖默认的事件记录值。如果选中“生成CONSTRAINT数据页的完整重做(LOGGING)”复选框,表示在数据段上为约束生成完整的重做日志。“创建”按钮,则开始执行表的创建操作。“约束条件名称”下拉列表:可以选择不同的约束条件,以便为不同42“查看/编辑目录”可以输入数据“查看/编辑目录”可以输入数据43手工创建表CREATETABLE[用户.]表名

(列名数据类型[列级完整性约束条件][,列名数据类型[列级完整性约束条件]]…[,表级完整性约束条件])[PCTFREE整数][INITRANS整数][MAXTRANS整数][TABLESPACE表空间名][DEFAULTSTORAGE

([INITIAL整数[K|M]][NEXT整数[K|M]][MINEXTENTS整数][MAXEXTENTS整数|UNLIMITED][PCTINCREASE整数])][CLUSTER簇名(簇列,…)][PARALLEL][CACHE|NOCACHE][LOGGING|NOLOGGING][AS子查询];

手工创建表CREATETABLE[用户.]表名44上面语法中各参数描述如下:约束条件分为列级和表级:前者针对某列,后者针对整个表。PCTFREE:指定每一块预留的自由空间百分比,默认值为10。即向表中插入新数据行时,该表的每个块都只能使用90%的空间,10%预留出来供修改该块中数据行增大空间时使用。INITRANS:指定该表每个数据块中分配的初始并行处理事务项数,范围是1~255。MAXTRANS:指定可同时修改表的数据块的最大并行处理事务项数,范围是1~255。TABLESPACE:指定该表所放置的表空间DEFAULTSTORAGE:指定该表的存储方式,具体含义同创建表空间语句中的存储子句。

上面语法中各参数描述如下:45CLUSTER:指定该表放置在聚簇中。PARALLEL:指定加速该表的扫描可以使用的并行查询进程个数。CACHE|NOCACHE:指定是否将该表中的数据放在CACHE(当该表经常被存取时使用)。LOGGING|NOLOGGING:前者指定表的创建操作及之后对表的所有操作都记录在重做日志文件中,是默认选项;后者指定表的创建操作和其它操作不记录在重做日志文件中。

AS子查询:基于一个或多个已存在的表建立新表,新表列的数据类型和大小、新表中的数据行都由查询结果决定。如CREATETABLEXSDAASSELECTSNO,SNAME,SSEX,SAGEFROMSTUDENTWHERESCLASS=计算机科学与技术041。CLUSTER:指定该表放置在聚簇中。46上机增加的内容:1、利用sql语句手工建立customer表(可选)。2、利用sql语句或理由企业管理控制台来创建最经典的student—course—score这三个数据表。尤其注意其中的关系如何建立?(可选)上机增加的内容:1、利用sql语句手工建立customer表47oracle数据库基本操作讲义课件48oracle数据库基本操作讲义课件49oracle数据库基本操作讲义课件50oracle数据库基本操作讲义课件51oracle数据库基本操作讲义课件52oracle数据库基本操作讲义课件53oracle数据库基本操作讲义课件54oracle数据库基本操作讲义课件55oracle数据库基本操作讲义课件56查看、编辑表:有两种方式:

1.使用Oracle企业管理器查看、编辑表启动Oracle企业管理器,以system身份连接数据库,展开“方案”→“SYSTEM”→“表”节点,即可查看SYSTEM方案中的所有表;右击欲编辑的表,从快捷菜单中单击“查看/编辑详细资料”即弹出编辑表的对话框可对表进行编辑。

2.手工查看、编辑表手工查看表:Oracle9i提供了若干个视图,用于查询有关表的信息。这些视图的名称及说明如下页表所示。查看、编辑表:有两种方式:57oracle数据库基本操作讲义课件58从DBA_TABLES视图中查询所有表的信息,以下脚本运行结果如图所示。

selecttable_name,tablespace_namefromdba_tables;

图6.16使用DBA_TABLES视图查看表信息从DBA_TABLES视图中查询所有表的信息,以下脚本运行结59手工编辑表语法:ALTERTABLE表名

[MODIFY(列名数据类型[列约束][,列名数据类型[列约束]…])][ADD(列名数据类型[列约束][,列名数据类型[列约束]…])][DROP(列名[,列名]…)][DISABLE|ENABLE|DROPCONSTRAINT表约束名];手工编辑表60手工编辑表上面语法中各参数描述如下:MODIFY子句:对表中原有的列或列约束进行修改。例

将学生表STUDENT中SNAME的数据类型改为CHAR(6),SAGE的数据类型改为NUMBER(3)。ALTERTABLESYSTEM.STUDENTMODIFY(SNAMECHAR(6),SAGENUMBER(3));

ADD子句:增加列或列约束到原有的表中。例

向学生表STUDENT中增加家庭地址和政治面貌两列。手工编辑表上面语法中各参数描述如下:61手工编辑表ALTERTABLESYSTEM.STUDENTADD(SADDRESSVARCHAR2(20)NOTNULL,POLITICSVARCHAR2(20)NOTNULL);DROP子句:删除原有表中的列。删除列后关于该列的索引和完整性约束也同时删除。例

将学生表STUDENT中SADDRESS和POLITICS列删除。ALTERTABLESYSTEM.STUDENTDROP(SADDRESS,POLITICS);手工编辑表ALTERTABLESYSTEM.STUDEN62手工编辑表DISABLE|ENABLE|DROPCONSTRAINT子句:分别表示禁用(存在依赖关系时不可禁用)重启和删除表级约束条件用关键字CASCADE,将级联删除其它表的约束条件。例

将学生表STUDENT中的表级约束条件A1。

ALTERTABLESYSTEM.STUDENTDROPCONSTRAINSA1CASCADE;表示成绩表SCORE中的表级约束C2将被级联删除。手工编辑表DISABLE|ENABLE|DROPCONST63更新表1.插入数据行语法:INSERTINTO表名[(列名1,列名2,…)]VALUES(值1,值2,…);或INSERTINTO表名[(列名1,列名2,…)]SELECT*|列名1,列名2,…FROM另一表名;2.删除数据行语法:DELETEFROM表名WHERE条件;删除数据行并不能释放ORACLE数据库中被占用的数据块表空间,只是将那些被删除的数据块标成unused。若确实要删除一个表里的全部记录,可用下列命令:TRUNCATETABLE表名;(此操作不可回滚)3.修改数据行语法:UPDATE表名SET列名1=值1,列名2=值2,…WHERE条件;

更新表1.插入数据行64数据查询使用PL/SQL语句对表中数据进行查询语法:SELECT[ALL|DISTINCT]*|目标列表达式1[别名][,目标列表达式2[别名]]…FROM表名1或视图名1[别名][,表名2或视图名2[别名]]…[WHERE条件][GROUPBY列名[HAVING条件]][ORDERBY列名[ASC|DESC]];例

从学生表STUDENT、课程表COURSE、成绩表SCORE中查询每个学生的学号、姓名及平均分。要求只显示平均分不低于85的数据行,并且结果按平均分递减排列selectx.sno学号,sname姓名,avg(grade)平均分fromsystem.studentxinnerjoinsystem.scoreyonx.sno=y.snogroupbyx.sno,snamehavingavg(grade)>=85orderby3desc;数据查询使用PL/SQL语句对表中数据进行查询65图6.17使用PL/SQL语句对表中数据进行查询图6.17使用PL/SQL语句对表中数据进行查询66删除表

删除表删除表有两种方法:使用企业管理器或手工删除。

1.使用企业管理器删除表启动Oracle企业管理器,以system身份连接数据库,展开“方案”→“SYSTEM”→“表”节点,右击欲删除的表,从快捷菜单中单击“移去”即删除表。

2.手工删除表语法:DROPTABLE表名[CASCADECONSTRAINTS];

删除表后,表上的索引、触发器、权限、完整性约束也同时删除。ORACLE不能删除视图,但可以将它们标识成无效。如果删除的表涉及引用该表主键的完整性约束时,则必须包含CASCADECONSTRAINTS子句。更改表名语法:RENAME旧表名

TO新表名;

删除表

删除表67oracle数据库基本操作讲义课件68第六章oracle数据库基本操作本章内容:Oracle数据库的数据类型Sql/plus环境Oracle数据库基本操作建立、删除、修改基本表建立、删除、修改索引 建立、删除、修改视图第六章oracle数据库基本操作本章内容:69本节内容预备知识1:建表之前必须明确用户和模式的关系;预备知识2:建表之前必须清晰管理表的策略;Oracle数据库基本操作建立、删除、修改基本表建立、删除、修改索引 建立、删除、修改视图本节内容预备知识1:建表之前必须明确用户和模式的关系;70预备知识1:用户和模式的关系Oracle9i数据中用方案(schema)来对逻辑对象进行管理。不同的数据库对象具有各自的特点和用途。方案或模式、模式对象、用户的定义区别:Aschema:acollectionofdatabaseobjects(usedbyauser.).被用户使用的数据库对象的集合。Schemaobjects

:thelogicalstructuresthatdirectlyrefertothedatabase’sdata.指向数据库数据的逻辑结构集。Auser:anamedefinedinthedatabasethatcanconnecttoandaccessobjects.在数据库中为了能够连接和访问对象而定义的名字。预备知识1:用户和模式的关系Oracle9i数据中用方案(s71schema为数据库对象的集合,为了区分各个集合,需要给这个集合起个名字,即方案下看到的许多类似用户名的节点这些类似用户名的节点其实就是一个schemaschema里面包含了各种对象tables,views,sequences,storedprocedures,synonyms,indexes,clusters,anddatabaselinks。schema为数据库对象的集合,为了区分各个集合,需要给这个72一个用户一般对应一个schema,该用户的schema名等于用户名,并作为该用户缺省schema。Oracle数据库中不能新创建一个schema,要想创建一个schema,只能通过创建一个用户的方法解决在创建一个用户的同时为这个用户创建一个与用户名同名的schem并作为该用户的缺省shcema。schema的个数同user的个数相同,而且schema名字同user名字一一对应并且相同(别名,不准确)。

一个用户一般对应一个schema,该用户的schema名等于73一个用户还可以使用其他的schema。select*fromemp;完整写法为select*fromscott.emp。schema.object,而不属user.object。一个用户还可以使用其他的schema。74举个例子:schema作为user的别名的依据SQL>Gruantdbatoscott

SQL>createtabletest(namechar(10));

Tablecreated.

SQL>createtablesystem.test(namechar(10));

Tablecreated.

SQL>insertintotestvalues('scott');

1rowcreated.

SQL>insertintosystem.testvalues('system');

1rowcreated.

SQL>commit;

Commitcomplete.举个例子:schema作为user的别名的依据SQL>G75SQL>connsystem/manager

Connected.

SQL>select*fromtest;

NAME

----------

system

SQL>ALTERSESSIONSETCURRENT_SCHEMA=scott;--改变用户缺省schema名

Sessionaltered.SQL>connsystem/manager

Conne76SQL>select*fromtest;

NAME

----------

scott

SQL>selectowner,table_namefromdba_tableswheretable_name=upper(‘test’);

OWNERTABLE_NAME

------------------------------------------------------------

SCOTTTEST

SYSTEMTEST

--在使用上,shcema与user完全一样。SQL>select*fromtest;

NAME

77模式(方案、schema)的建立。是否用户一建立模式同时建立?必须建立对象才能在模式中显示相应的用户名。模式(方案、schema)的建立。78以system用户登录以system用户登录79创建用户net1并以之登录创建用户net1并以之登录80创建表空间netspace创建表空间netspace81在netspace表空间下创建表nettable在netspace表空间下创建表nettable82预备知识2:管理表的策略1、设计表开发数据库应用系统时,数据库管理员负责规划和建立表空间,而规划和建立表则往往是由应用开发人员完成的。应用开发人员设计表时应考虑以下因素:<1>在为表、列、索引的视图、同义词、触发器等与表有关的对象命名时,应该使用权有意义的名称,其格式要有利于区分这些对象。<2>为了给用户和其它人员提供有意义的帮助信息,应该使用权Comment命令描述表、列的作用.预备知识2:管理表的策略1、设计表83预备知识2:管理表的策略<3>设计表时,应该使用权范式来规划每个表.范式分为第一范式第二范式第三范式范式越高,表的设计越规范.<4>定义表列时,应该选择合适的数据类型和长度,为了节省存储空间,应该将可以取Null值的列放在后面.<5>确定表中所需的完整性约束。<6>在合适的情况下,使用簇表以节省存储空间并提高特定类型的SQL语句的性能.预备知识2:管理表的策略<3>设计表时,应该使用权范式来规划84预备知识2:管理表的策略2、规划表的类型在Oracle数据库中,存储用户数据可以使用标准表索引表簇表和分区表.标准表:数据按堆组织,以无序方式存放在单独表的表段中.这种表是最基础最常用的数据库表类型,是默认情况下创建的表.索引表:数据是以”B-树”结构存放在主键约束所对应的索引段中.使用索引表时,索引叶子节点不仅包含了键列的数据还包含了其他非键列的数据。簇表:簇由共享相同数据块的一组表组成.在合适的情况下,使用簇表可以节省存储空间并提高SQL语句的性能.分区表:数据被划分为更小的部分,并且存储到相应的分区段中,每个分构段可以独立管理和操作.

预备知识2:管理表的策略2、规划表的类型85预备知识2:管理表的策略3、规划表的位置如果要在特定表空间上建表,用户必须在该表空间中具有相应的配额或具有UnlimitedTablespace的系统权限如果建表时不指定TableSpace选项,Oracle会将表建立在用户的默认表空间中.通过指定TableSpace选项,可以将表建立在其他表空间中.预备知识2:管理表的策略3、规划表的位置86当规划表的存放位置时,应注意以下事项:System表空间中应该只包含数据字典和Oracle系统对象

.如果将表建立在System表空间,将会影响数据库性能.建议DBA给每个用户指定其它的默认表空间.设计应用系统时,应该规划存放应用系统的表的表空间,不要随意分散地创建到不同的表空间中,这样会使执行某些数据库管理和维护操作.当规划表的存放位置时,应注意以下事项:87使用NoLogging选项建表在创建表的过程中指定nologging子句,避免在创建表过程中产生过多的重做记录。nologging子句适合时在创建大表时使用.使用ComPress选项建表使用Oracle的表压缩特征(Compress)时,Oracle会将同一个数据块行和列的重复数据放在数据块的头部,压缩了表数据。使用NoLogging选项建表884、创建大表时的建议<1>将表和它的索引分享存放大表所对应的索引通常比较大,将表和它的索引分别存放在不同的表空间中,这样的重建索引的过程中能够更加容易地获取所需的连续存储空间,并且可以提高查询时的I/O效率.<2>分配足够的临时空间如果如果应用程序员在访问大表时需要执行规模较大的排序操作,就必须在数据库中具有一个较大的临时段,临时段的存储参数设置取决于临表空间的默认存储参数设置,即Storage子句中的各种参数的设置4、创建大表时的建议895、预计和规划表的大小可以对表的大小进行估计,包括对索引回退段和重做日志文件大小的估计,以决定支持期望的数据库所需的磁盘空间大小.通过这些估计,就可以购买合适的硬件和作其它决定5、预计和规划表的大小906.3创建基本表1、创建基本表基本表是数据库最基本的对象,是实际存放数据的地方。6.3创建基本表1、创建基本表91以system登录以system登录92“创建表”对话框包含了七个选项卡“一般信息”选项卡,“名称”文本框:输入新建表的名称,表名在数据库的同一方案中是唯一的。表名最长30个字符,以字母开始,后由数字、下划线、#、$等组成。本例名为customer。“方案”本例取默认值(SYSTEM)。“表空间”本例取user。“表”单选按钮:“标准”表示建立常规表,表的一列或多列使用一个索引,为表和索引保留两个独立的存储空间;“按索引组织的表”表示建立非常规表,表的数据保存在该表的索引中,更改表中的数据(如插入、删除或修改行等)将使索引更新。本例取默认值(标准)。“创建表”对话框包含了七个选项卡“一般信息”选项卡,93创建数据表customer的一般信息使用可编辑的文本区域来创建基于当前表的PL/SQL查询语句。

创建使用用户定义的对象类型的对象表表示可以创建XML类型的表创建数据表customer的一般信息使用可编辑的文本区域来创94“约束条件”选项卡,如下页图所示。该选项卡可以使用可编辑的电子表格编辑表的完整性约束条件。完整性约束条件是一种规则,不占用任何数据库空间,其定义存储在数据字典中,在执行PL/SQL期间使用。该电子表格由以下各列构成:“约束条件”选项卡,如下页图所示。该选项卡可以使用可编辑的电95“约束条件”选项卡“名称”:要定义的完整性约束条件名,它在数据库中应是唯一的。本例定义了一个完整性约束条件:pk_costomer_1(PRIMARY)--cid为主键另外举两例xingbie(CHECK)--SSEXIN(‘男’,‘女’),nianling(CHECK)--SAGEBETWEEN18AND24。“类型”:约束条件类型,下拉列表中显示了可用的约束条件类型有UNIQUE、PRIMARY、FOREIGN、CHECK。本例选择类型为PRIMARY,表示pk_costomer_1是一个类型为主键的完整性约束条件。“是否禁用”:表示创建约束条件时是禁用还是启用该约束条件。“引用方案”:为约束条件中的FOREIGN(外键)引用。“约束条件”选项卡“名称”:要定义的完整性约束条件名,它在数96数据表customer的约束条件数据表customer的约束条件97“簇列”选项卡如果选中“将表定义为簇的一部分”复选框,则表示将表作为簇的一部分。选中后该选项卡的所有选项都可以操作:簇的的信息显示在一个包含两列的列表框中,描述如下“表列”:显示了当前表所有已定义的列。“簇列”:显示了包含在已选簇内的簇关键字列。本例皆取系统默认值。“簇列”选项卡如果选中“将表定义为簇的一部分”复选框,则表示98数据表customer的簇列数据表customer的簇列99“分区”选项卡该选项卡的“范围分区”包含如下设置:“分区名”:显示分区的名称,但不能编辑该值。“表空间”:显示存储分区的表空间,但也不能编辑该值。该选项卡中包括如下按钮:“编辑”:允许对分区进行编辑。选择一行后该按钮即被启用。“添加”:允许添加分区。选择最后一行后,该按钮可被启用。“删除”:允许删除分区。选择一行后,该按钮即被启用。本例皆取系统默认值。“分区”选项卡该选项卡的“范围分区”包含如下设置:100数据表customer的分区数据表customer的分区101“存储”选项卡“存储”选项卡,可以定义表的存储方式“存储”选项卡“存储”选项卡,可以定义表的存储方式102在“区”选项组内,可以指定下列参数的值:

“初始大小”:指定表的第一个分区的大小。可以输入一个值,但至少为一个数据块的大小,默认值为64KB。“下一个大小”:指定表的第二个分区的大小。可以输入一个值,但至少为一个数据块的大小,默认值为64KB。“增量”:指定从第三区开始相对于上一个区的增长百分比。“最小数量”:指定分配给表的最小区数。默认值为1。

“最大数量”:指定分配给表的最大区数。可以输入一个值,也可以是无限制。在“空间利用率”选项组内,可以指定下列参数的值:

“保留用于更新的空闲空间的百分比”:指定为以后更新表而保留的空间的百分比,可以输入0~99之间值,默认为10。“行插入备选对象的使用空间百分比阈值”:指定为该表数据块保留的已用空间的最小百分比,可以输入0~99之间的值,默认值为40。在“区”选项组内,可以指定下列参数的值:103在“事务处理数量”选项组内,可以指定下列参数的值:“初始值”:指定该表每个数据块中分配的初始并行处理事务项数,可以输入1~255之间的值。“最大值”:指定可同时修改表的数据块的最大并行处理事务项数,可以输入1~255之间的值。在“空闲列表”选项组内,可以指定下列参数的值

“空闲列表”:指定表、簇或索引的每个空闲列表组的数量。可以输入一个值,默认值为1。“组”:指定表、簇或索引的每个空闲列表组的数量。可以输入一个值,默认值为1。在“缓冲池”下拉列表中可以指定默认缓冲池:“KEEP”:表示保留内存中的方案对象以避免I/O操作。“RECYCLE”:表示一旦不需要数据块时,立即将它们从内存中清除,以防止对象占用不必要的高速缓存空间。“DEFAULT”:表示默认缓冲池为高速缓冲存储器,所有对象块均存储在指定的高速缓存中。在“事务处理数量”选项组内,可以指定下列参数的值:104“选项”选项卡该选项卡可以定义表的并发操作、是否覆盖和如何审计等特性。“选项”选项卡该选项卡可以定义表的并发操作、是否覆盖和如何审105如果选中“并行”复选框,则表示以并行方式装载,并行执行某种操作。“程度”表示单个例程的操作并行度,即使用的查询服务器的数量,可以指定默认值(根据CPU数量和存储要求并行扫描的表计算得到),也可以输入一个值。如果选中“覆盖默认事件记录值”复选框,表示启用事件记录,将创建重做日志。该操作比不启用事件记录所用时间长,但可以在故障时恢复更新。如果选中“将经常访问的数据放在缓冲区高速缓存的顶端(CACHE)”复选框,表示某个用户进程首次需要某一特定数据时,将在数据库的缓冲区高速缓存中搜索该数据。如果选中“监视—收集表上的修改统计信息”复选框,表示用户希望收集该表的修改统计信息。如果选中“并行”复选框,则表示以并行方式装载,并行执行某种操106“约束条件存储”选项卡“约束条件存储”选项卡,如图所示。该选项卡可以为不同的约束条件选择不同的存储方式。“约束条件存储”选项卡“约束条件存储”选项卡,如图所示。该选107oracle数据库基本操作讲义课件108“约束条件名称”下拉列表:可以选择不同的约束条件,以便为不同的约束条件指定不同的存储方式“表空间”下拉列表:可以为约束条件的存储选择指定表空间。如果选中“覆盖默认事件记录值”,表示在数据段中可以覆盖默认的事件记录值。如果选中“生成CONSTRAINT数据页的完整重做(LOGGING)”复选框,表示在数据段上为约束生成完整的重做日志。“创建”按钮,则开始执行表的创建操作。“约束条件名称”下拉列表:可以选择不同的约束条件,以便为不同109“查看/编辑目录”可以输入数据“查看/编辑目录”可以输入数据110手工创建表CREATETABLE[用户.]表名

(列名数据类型[列级完整性约束条件][,列名数据类型[列级完整性约束条件]]…[,表级完整性约束条件])[PCTFREE整数][INITRANS整数][MAXTRANS整数][TABLESPACE表空间名][DEFAULTSTORAGE

([INITIAL整数[K|M]][NEXT整数[K|M]][MINEXTENTS整数][MAXEXTENTS整数|UNLIMITED][PCTINCREASE整数])][CLUSTER簇名(簇列,…)][PARALLEL][CACHE|NOCACHE][LOGGING|NOLOGGING][AS子查询];

手工创建表CREATETABLE[用户.]表名111上面语法中各参数描述如下:约束条件分为列级和表级:前者针对某列,后者针对整个表。PCTFREE:指定每一块预留的自由空间百分比,默认值为10。即向表中插入新数据行时,该表的每个块都只能使用90%的空间,10%预留出来供修改该块中数据行增大空间时使用。INITRANS:指定该表每个数据块中分配的初始并行处理事务项数,范围是1~255。MAXTRANS:指定可同时修改表的数据块的最大并行处理事务项数,范围是1~255。TABLESPACE:指定该表所放置的表空间DEFAULTSTORAGE:指定该表的存储方式,具体含义同创建表空间语句中的存储子句。

上面语法中各参数描述如下:112CLUSTER:指定该表放置在聚簇中。PARALLEL:指定加速该表的扫描可以使用的并行查询进程个数。CACHE|NOCACHE:指定是否将该表中的数据放在CACHE(当该表经常被存取时使用)。LOGGING|NOLOGGING:前者指定表的创建操作及之后对表的所有操作都记录在重做日志文件中,是默认选项;后者指定表的创建操作和其它操作不记录在重做日志文件中。

AS子查询:基于一个或多个已存在的表建立新表,新表列的数据类型和大小、新表中的数据行都由查询结果决定。如CREATETABLEXSDAASSELECTSNO,SNAME,SSEX,SAGEFROMSTUDENTWHERESCLASS=计算机科学与技术041。CLUSTER:指定该表放置在聚簇中。113上机增加的内容:1、利用sql语句手工建立customer表(可选)。2、利用sql语句或理由企业管理控制台来创建最经典的student—course—score这三个数据表。尤其注意其中的关系如何建立?(可选)上机增加的内容:1、利用sql语句手工建立customer表114oracle数据库基本操作讲义课件115oracle数据库基本操作讲义课件116oracle数据库基本操作讲义课件117oracle数据库基本操作讲义课件118oracle数据库基本操作讲义课件119oracle数据库基本操作讲义课件120oracle数据库基本操作讲义课件121oracle数据库基本操作讲义课件122oracle数据库基本操作讲义课件123查看、编辑表:有两种方式:

1.使用Oracle企业管理器查看、编辑表启动Oracle企业管理器,以system身份连接数据库,展开“方案”→“SYSTEM”→“表”节点,即可查看SYSTEM方案中的所有表;右击欲编辑的表,从快捷菜单中单击“查看/编辑详细资料”即弹出编辑表的对话框可对表进行编辑。

2.手工查看、编辑表手工查看表:Oracle9i提供了若干个视图,用于查询有关表的信息。这些视图的名称及说明如下页表所示。查看、编辑表:有两种方式:124oracle数据库基本操作讲义课件125从DBA_TABLES视图中查询所有表的信息,以下脚本运行结果如图所示。

selecttable_name,tablespace_namefromdba_tables;

图6.16使用DBA_TABLES视图查看表信息从DBA_TABLES视图中查询所有表的信息,以下脚本运行结126手工编辑表语法:ALTERTAB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论