书签 分享 收藏 举报 版权申诉 / 47
上传文档赚钱

类型第7章表的创建和管理课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:5105169
  • 上传时间:2023-02-11
  • 格式:PPT
  • 页数:47
  • 大小:1.03MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第7章表的创建和管理课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    创建 管理 课件
    资源描述:

    1、第1页第第7章章 表的创建和管理表的创建和管理 表是最常用的数据库对象之一,也是最基本和最重要的数表是最常用的数据库对象之一,也是最基本和最重要的数据库对象之一。由于表是存储数据库数据的主要手段,因此对据库对象之一。由于表是存储数据库数据的主要手段,因此对表的管理也是非常重要的。表的管理涉及表的结构、表的创建、表的管理也是非常重要的。表的管理涉及表的结构、表的创建、修改、删除与设置完整性约束等操作,以及如何向表中添加数修改、删除与设置完整性约束等操作,以及如何向表中添加数据、更新数据和删除数据。在本章中,将对表和表中数据的管据、更新数据和删除数据。在本章中,将对表和表中数据的管理操作进行详细介

    2、绍。理操作进行详细介绍。本章的学习目标:本章的学习目标:了解表的相关概念了解表的相关概念 掌握如何使用命令行方式创建表掌握如何使用命令行方式创建表 掌握修改表和删除表的操作掌握修改表和删除表的操作 掌握表中约束的定义和管理掌握表中约束的定义和管理 掌握使用掌握使用OEM工具创建表和管理表的方法工具创建表和管理表的方法 掌握如何管理表中的数据掌握如何管理表中的数据第2页7.1 表概述表概述 表是数据库中最基本的对象,用户的数据在数据库中表是数据库中最基本的对象,用户的数据在数据库中是以表的形式存储的。数据库中每一个表都被一个用户模是以表的形式存储的。数据库中每一个表都被一个用户模式所拥有,因此表

    3、是一种典型的模式对象。式所拥有,因此表是一种典型的模式对象。7.1.1 表的构成表的构成 表是组成数据库的基本元素,主要用来存储系统或用户表是组成数据库的基本元素,主要用来存储系统或用户的数据。表中的数据是按照行和列的二维结构组成。每一行的数据。表中的数据是按照行和列的二维结构组成。每一行用来保存关系数据库关系的元组,也称数据行或记录。每一用来保存关系数据库关系的元组,也称数据行或记录。每一列用来保存关系的属性,也称字段。行的顺序一般是按照写列用来保存关系的属性,也称字段。行的顺序一般是按照写入的先后顺序存放,各列的顺序是根据创建表时定义的先后入的先后顺序存放,各列的顺序是根据创建表时定义的先

    4、后顺序存放。每个列具有列名、列数据类型、列长度、约束条顺序存放。每个列具有列名、列数据类型、列长度、约束条件、默认值等,这些内容在创建表时确定。件、默认值等,这些内容在创建表时确定。第3页 在逻辑结构上,表位于某个表空间。当创建一个表时,将在逻辑结构上,表位于某个表空间。当创建一个表时,将同时创建一个段,专门用来存放表中的数据。在物理结构上,同时创建一个段,专门用来存放表中的数据。在物理结构上,表中的数据都存放在数据块中,因而在数据块中存放的是一行表中的数据都存放在数据块中,因而在数据块中存放的是一行的数据。表的结构主要由列组成,包括列名称、数据类型、数的数据。表的结构主要由列组成,包括列名称

    5、、数据类型、数据长度、比例(针对数值型的数据)、约束等信息。据长度、比例(针对数值型的数据)、约束等信息。在在Oracle数据库中根据不同用途有多种类型的表,如堆表、数据库中根据不同用途有多种类型的表,如堆表、临时表、索引组织表和分区表等。临时表、索引组织表和分区表等。1.1.堆表堆表(Heap Organized Table)“堆堆”是一个经典的数据结构,它的存储分配原则是随机是一个经典的数据结构,它的存储分配原则是随机的。具体到数据表中,也就是说表中插入的每一行数据的空间的。具体到数据表中,也就是说表中插入的每一行数据的空间分配是随机的分配是随机的。堆表中的数据数据按堆组织,以无序的方式存

    6、。堆表中的数据数据按堆组织,以无序的方式存放在单独的表段中。这种表是最基础、最常用的数据库表类型,放在单独的表段中。这种表是最基础、最常用的数据库表类型,是默认情况下创建的表。是默认情况下创建的表。第4页2.2.临时表临时表(Temporary Table)临时表是一种特殊类型的表,临时表是一种特殊类型的表,表中的数据并不永久保存,而是一些临时数据。这些临时数表中的数据并不永久保存,而是一些临时数据。这些临时数据只在当前事务或当前会话中有效,当事务或会话结束时,据只在当前事务或当前会话中有效,当事务或会话结束时,这些临时数据将被全部删除。这些临时数据将被全部删除。3.3.索引组织表索引组织表(

    7、Index Organized Table)索引组织表索引组织表是一种特殊类型的表,它把表中的数据和表的索引存放在同是一种特殊类型的表,它把表中的数据和表的索引存放在同一个段中,并以一个段中,并以B*树的方式组织在一起,从而加快表的查询树的方式组织在一起,从而加快表的查询速度。在索引组织表中必须有一个主键,表中的数据按照主速度。在索引组织表中必须有一个主键,表中的数据按照主键进行排序,在键进行排序,在B*树的叶块中同时存储主键列和非主键列。树的叶块中同时存储主键列和非主键列。4.4.分分区表区表为了提高大型表的访问效率,为了提高大型表的访问效率,Oracle提供了一种分区技提供了一种分区技术,

    8、利用这种技术可以把表、索引等数据库对象中的数据分割术,利用这种技术可以把表、索引等数据库对象中的数据分割成小的单位,分别存放在一个个单独的段中,用户对表的访问成小的单位,分别存放在一个个单独的段中,用户对表的访问变转化为对较小段的访问。变转化为对较小段的访问。第5页OracleOracle数据库中表和列的命名规则如下:数据库中表和列的命名规则如下:长度长度30个字节之内。个字节之内。必须以字母开头。必须以字母开头。由字母、数字、由字母、数字、_、#、$组成。组成。不能使用保留字。不能使用保留字。非法的命名,可以用非法的命名,可以用“”“”括起来。括起来。一个表内列名要唯一。一个表内列名要唯一。

    9、表名在名称空间内必须唯一。表名在名称空间内必须唯一。对数据库设计人员、开发和管理人员,在创建表对数据库设计人员、开发和管理人员,在创建表之前都要做好表的设计工作,包括如下:之前都要做好表的设计工作,包括如下:为表中各个字段选择合适的数据类型;为表中各个字段选择合适的数据类型;确定表的完整性约束类型确定表的完整性约束类型 根据需求决定创建的表类型根据需求决定创建的表类型第6页7.1.2 表的数据类型表的数据类型 Oracle 11g的数据类型很丰富,包含标量的数据类型很丰富,包含标量(SCALAR)、)、复合复合(COMPOSITE)、)、引用(引用(REFFERENCE)和和LOB4类类数据类

    10、型。数据类型。合法的标量类型与数据库的列所使用的类型相同,合法的标量类型与数据库的列所使用的类型相同,此外它还有一些扩展。此外它还有一些扩展。Oracle 11g提供的提供的23种数据类型中,选种数据类型中,选择最常用的,分为字符型、数值型、日期型和其他数据类型择最常用的,分为字符型、数值型、日期型和其他数据类型4类进行讲解。表类进行讲解。表7-1列出了较为常用的数据类型。不同的数据列出了较为常用的数据类型。不同的数据类型可以为表的每个列限定取值范围,实现数据的域完整性。类型可以为表的每个列限定取值范围,实现数据的域完整性。第7页第8页7.1.3 表的约束类型表的约束类型Oracle的表定义支

    11、持以下完整性约束。的表定义支持以下完整性约束。1.1.实体完整性实体完整性实体完整性将定义为特定表的唯一实体,要求主属性非空。可以通过设实体完整性将定义为特定表的唯一实体,要求主属性非空。可以通过设置主键置主键(Primary Key)、唯一值约束、唯一值约束(Unique)和非空值约束和非空值约束(NOT NULL)等多种方法实现。等多种方法实现。2.2.参照完整性参照完整性参照完整性是用来维护相关数据表之间数据一致性的手段,主要使用外参照完整性是用来维护相关数据表之间数据一致性的手段,主要使用外键键(Foreign Key)来实现。来实现。3.3.用户自定义完整性用户自定义完整性用户自定义

    12、完整性由用户根据实际应用中的需要自行定义。例如:要求用户自定义完整性由用户根据实际应用中的需要自行定义。例如:要求某列的值能取空值;某一列的值在表中是唯一的;某一列的值要在某个范某列的值能取空值;某一列的值在表中是唯一的;某一列的值要在某个范围中等。可以使用数据类型围中等。可以使用数据类型(Data Type)、默认值、默认值(Default)、检查约束、检查约束(Check)、空或非空、空或非空(NULL|NOT NULL)等多种约束方法实现。稍微等多种约束方法实现。稍微复杂一点的也可以使用触发器(复杂一点的也可以使用触发器(Trigger)、存储过程)、存储过程(Procedure)和函和

    13、函数数(Function)等来实现。等来实现。第9页7.2 创建表创建表创建表的方法有基于命令行的创建方法和使用创建表的方法有基于命令行的创建方法和使用OEMOEM工具创建工具创建两种。本节重点介绍如何使用这两种方法完成普通表的创建。两种。本节重点介绍如何使用这两种方法完成普通表的创建。7.2.1 使用命令行创建表使用命令行创建表 使用命令行创建表用的关键字是使用命令行创建表用的关键字是CREATE TABLE,其,其简单的语法格式如下:简单的语法格式如下:CREATE TABLE table_name(column_name type CONSTRAINT constraint_def DE

    14、FAULT default_exp,column_name type CONSTRAINT constraint_def DEFAULT default_exp.)第10页语法中的各选项说明:语法中的各选项说明:table_name table_name 指定要分配给该表的名称。指定要分配给该表的名称。column_name column_name 指定要分配给某个列的名称。指定要分配给某个列的名称。type type 指定某个列的类型。指定某个列的类型。constraint_def constraint_def 指定对某个列的约束。指定对某个列的约束。default_exp default_

    15、exp 指定一个表达式,用来为某个列赋予默认指定一个表达式,用来为某个列赋予默认值。值。ON COMMITON COMMIT控制临时表中行的有效期。控制临时表中行的有效期。DELETE说明这说明这些行在事务的末尾要被删除。些行在事务的末尾要被删除。PRESERVE说明这些行在用说明这些行在用户会话的末尾要被删除。如果对临时表没有指定户会话的末尾要被删除。如果对临时表没有指定ON COMMIT选项,那么默认值是选项,那么默认值是DELETE。【例【例7-1】一般数据库应用程序中都会有一个用户表,用】一般数据库应用程序中都会有一个用户表,用来记录应用程序的用户的信息。按照表来记录应用程序的用户的信

    16、息。按照表7-2所示的结构创建所示的结构创建用户表用户表Sys_User,代码如下。,代码如下。第11页SQLCREATE TABLE Sys_User2 (UserID Number Primary Key,3 UserName Varchar2(20)NOT NULL,4 UserType Number(1),5 UserPwd Varchar2(40),6 Remark Varchar2(200)7 );表已创建。表已创建。第12页 表创建成功后,可以通过表创建成功后,可以通过DESCRIBE命令查看表的描述,命令查看表的描述,如图如图7-1所示。所示。图图7-1 表表Sys_User的

    17、描述的描述7.2.2 创建表的相关子句创建表的相关子句 当创建表时,当创建表时,Oracle会自动在用户默认表空间中为新建的会自动在用户默认表空间中为新建的表创建一个数据段,以便为表提供存储数据的空间。除此之外,表创建一个数据段,以便为表提供存储数据的空间。除此之外,用户也可以在创建表时指定所处的表空间,当然用户还可以在用户也可以在创建表时指定所处的表空间,当然用户还可以在创建表的同时设置数据块管理参数。下面以示例创建表的同时设置数据块管理参数。下面以示例7-2说明创建表说明创建表的其他相关子句。的其他相关子句。第13页【例例7-2】重新创建表重新创建表Sys_User,要求创建的时候指明表空

    18、,要求创建的时候指明表空间和数据块管理参数。代码如下:间和数据块管理参数。代码如下:SQLCREATE TABLE Sys_User2 (UserID Number Primary Key,3 UserName Varchar2(20)NOT NULL,4 UserType Number(1),5 UserPwd Varchar2(40),6 Remark Varchar2(200)7 );8 TABLESPACE TBSONE9 PCTFREE 2010 PCTUSED 4011 INITRANS 1012 MAXTRANS 200;表已创建。表已创建。第14页例例7-2中各参数的相关说明如

    19、下:中各参数的相关说明如下:TABLESPACE:指定将表创建在哪个表空间上,如果:指定将表创建在哪个表空间上,如果不指定该子句,用户将在自己的默认表空间上创建表。不指定该子句,用户将在自己的默认表空间上创建表。PCTFREE与与PCTUSED:用于控制数据块中空闲空间:用于控制数据块中空闲空间的使用方法。的使用方法。PCTFREE和和PCTUSED的值必须小于或等于的值必须小于或等于100%。PCTFREE和和PCTUSED之和越接近之和越接近100%,数据块,数据块的利用率越高。如果执行的利用率越高。如果执行UPDATE操作比较多,可以将操作比较多,可以将PCTFREE设置的尽量大一点,推

    20、荐设置设置的尽量大一点,推荐设置PCTFREE为为20%,PCTUSED为为40%。如果在一个表上执行。如果在一个表上执行INSERT和和DELETE操作比较多,并且操作比较多,并且UPDATE操作不会增加记录的操作不会增加记录的大小时,可以将大小时,可以将PCTFREE设置的比较小,推荐设置设置的比较小,推荐设置PCTFREE为为5,PCTUSED为为60。INITRANS与与MAXTRANS:用于控制一个数据块上的并:用于控制一个数据块上的并发事务数量,其中发事务数量,其中INITRANS用于指定初始的事务数量,用于指定初始的事务数量,MAXTRANS用于指定最大的并发事务数量。用于指定最

    21、大的并发事务数量。除了上述子句以外,还有一些子句。除了上述子句以外,还有一些子句。第15页 CACHE:用于指定将表中的数量放在数据库高速缓存中,并保留一段:用于指定将表中的数量放在数据库高速缓存中,并保留一段时间。如果在创建表是指定了该参数,那么在用户第一次访问表中的数据时间。如果在创建表是指定了该参数,那么在用户第一次访问表中的数据时,这个表将整个被读到数据库高速缓存中,并保留较长一段时间,这样时,这个表将整个被读到数据库高速缓存中,并保留较长一段时间,这样用户以后再访问该表时,可直接访问数据库高速缓存中的数据,从而提高用户以后再访问该表时,可直接访问数据库高速缓存中的数据,从而提高访问效

    22、率。访问效率。LOGGING:在默认情况下,用户在表上执行:在默认情况下,用户在表上执行DDL和和DML命令时,服务命令时,服务器进程都会产生重做日志。如果不希望产生重做日志,可以在创建表时指器进程都会产生重做日志。如果不希望产生重做日志,可以在创建表时指定定NOLOGGING子句。使用了子句。使用了NOLOGGING子句可以减少处理时间,由子句可以减少处理时间,由于不写重做日志,也可节约了重做日志的存储空间,同时在以并行方式向于不写重做日志,也可节约了重做日志的存储空间,同时在以并行方式向表中写入大量数据时提高了效率。但是,由于没有重做日志,当表被破坏表中写入大量数据时提高了效率。但是,由于

    23、没有重做日志,当表被破坏时,将无法进行恢复。时,将无法进行恢复。COMPRESS:如果使用了该子句,则一个数据块中两行完全相同的数据:如果使用了该子句,则一个数据块中两行完全相同的数据将被压缩为一行,并存储在数据块的开始,在数据块中本应存储这两行数将被压缩为一行,并存储在数据块的开始,在数据块中本应存储这两行数据的地方只存储该行数据的应用。使用表的压缩功能可以减少表所占用的据的地方只存储该行数据的应用。使用表的压缩功能可以减少表所占用的存储空间和数据库高速缓存空间,并且可以提高查询速度。存储空间和数据库高速缓存空间,并且可以提高查询速度。第16页7.2.3 使用使用OEM工具创建表工具创建表

    24、使用管理工具使用管理工具OEM可以很直观的创建表,具体步骤如可以很直观的创建表,具体步骤如下:下:(1)(1)首先启动并登录到首先启动并登录到OEM,选择,选择“方案方案”页面,在该页面,在该页面的页面的“数据库对象数据库对象”一栏可以看到用户可以管理的所有数一栏可以看到用户可以管理的所有数据库对象,如表、视图、索引等,如图据库对象,如表、视图、索引等,如图7-2所示。在这里选所示。在这里选择择“表表”,进入表管理的页面。,进入表管理的页面。图图7-2 OEM管理界面管理界面第17页(2)在如图在如图7-3所示的管理表页面,单击创建按钮。所示的管理表页面,单击创建按钮。图图7-3 OEM管理界

    25、面管理界面 第18页 (3)单击创建按钮后进入到创建表的第一步,选择创建表单击创建按钮后进入到创建表的第一步,选择创建表的类型,如图的类型,如图7-4所示。表的类型可以是标准表(堆表)、所示。表的类型可以是标准表(堆表)、临时表和索引表。临时表和索引表。图图7-4 创建表的组织形式创建表的组织形式第19页 (4)选择标准表,单击选择标准表,单击“继续继续”按钮,进入如图按钮,进入如图7-5所示的所示的“表一般信息表一般信息”页面。输入新建表的名称,在页面。输入新建表的名称,在“表空间表空间”文文本框输入新表的存入位置。在表的下半部分输入表的列名称、本框输入新表的存入位置。在表的下半部分输入表的

    26、列名称、数据类型和默认值等。数据类型和默认值等。图图7-5 创建表界面创建表界面第20页 (5)输入完成后,单击输入完成后,单击“确定确定”按钮,返回表管理页面,按钮,返回表管理页面,新建的表已经出现在列表中。如果列表中的表对象太多,新建的表已经出现在列表中。如果列表中的表对象太多,可以通过搜索方式查找需要的表。用户也可单击可以通过搜索方式查找需要的表。用户也可单击“显示显示SQL”按钮,查看系统生成的按钮,查看系统生成的SQL语句。语句。需要注意的是,在创建表时,如果单击需要注意的是,在创建表时,如果单击“约束条件约束条件”超链超链接进入接进入“表约束条件表约束条件”页面,为表添加约束条件。

    27、同样,页面,为表添加约束条件。同样,在存储选择页面,用户可以为表设置存储参数。在存储选择页面,用户可以为表设置存储参数。7.3 修改表修改表 对于创建好的表如果需要修改,使用对于创建好的表如果需要修改,使用ALTER TABLE语句语句进行修改。对表的修改主要涉及表的结构的修改。本节主要进行修改。对表的修改主要涉及表的结构的修改。本节主要介绍修改表的方法。介绍修改表的方法。第21页7.3.1 修改表的结构修改表的结构修改表的基本语法如下:修改表的基本语法如下:ALTER TABLE table_name ADD column_name|MODIFY column_name|DROP COLUM

    28、N column_name语法中的各选项说明:语法中的各选项说明:ADD:向表中添加列。:向表中添加列。MODIFY:修改表中已经存在的列的信息。:修改表中已经存在的列的信息。DROP COLUMN:删除表中的列,在删除表中的列时如:删除表中的列,在删除表中的列时如果加上果加上CASCADE CONSTRAINTS表示把与该列有关的约束表示把与该列有关的约束也一并删除。也一并删除。第22页【例【例7-3】例】例7-1创建的表创建的表Sys_User中添加列,中添加列,UserTel(用(用户联系方式)字段类型户联系方式)字段类型varchar2,代码如下。,代码如下。SQLALTER TABL

    29、E Sys_User2 ADD UserTel VARCHAR2(15);表已更改。表已更改。【例【例7-4】修改表】修改表Sys_User中新添加列中新添加列UserTel(用户联系(用户联系方式),将数据类型长度改为方式),将数据类型长度改为20,并且设置为不可为空,代,并且设置为不可为空,代码如下。码如下。SQLALTER TABLE Sys_User2 MODIFY UserTel VARCHAR2(20)NOTNULL;表已更改。表已更改。第23页【例【例7-5】删除表】删除表Sys_User中新修改的列中新修改的列UserTel(用户联系方(用户联系方式),代码如下。式),代码如下

    30、。SQLALTER TABLE Sys_User2 DROP COLUMN UserTel;表已更改。表已更改。注意:如果要在条语句中删除多个列,则需要将删除的字段注意:如果要在条语句中删除多个列,则需要将删除的字段名放在括号中,相互之间用逗号隔开,并且不能使用名放在括号中,相互之间用逗号隔开,并且不能使用COLUMN关键字。关键字。当在数据库使用高峰期执行删除字段的操作时,系统会因为当在数据库使用高峰期执行删除字段的操作时,系统会因为删除列操作占用资源而降低响应率。为此,可以通过在删除列操作占用资源而降低响应率。为此,可以通过在ALTER TABLE语句中使用语句中使用SET UNUSED子

    31、句可以将列设置为不可用。子句可以将列设置为不可用。从用户角度看,被标记为不可用状态的列与被删除的列没有区从用户角度看,被标记为不可用状态的列与被删除的列没有区别,都无法通过查询获取其数据,并且还可以添加与别,都无法通过查询获取其数据,并且还可以添加与UNUSED状态的列同名的字段。但是,状态的列同名的字段。但是,UNUSED的列在物理上仍然保存的列在物理上仍然保存在数据库中,它所占用的存储空间并没有被释放。在数据库中,它所占用的存储空间并没有被释放。第24页【例【例7-67-6】设置表】设置表Sys_UserSys_User中中RemarkRemark列为不可用,然后再列为不可用,然后再删除该

    32、表中所有不可用的列,代码如下。删除该表中所有不可用的列,代码如下。SQLALTER TABLE Sys_UserSQLALTER TABLE Sys_User2 SET UNUSED(RemarK);2 SET UNUSED(RemarK);表已更改。表已更改。SQLALTER TABLE Sys_UserSQLALTER TABLE Sys_User2 DROP UNUSED COLUMNS;2 DROP UNUSED COLUMNS;表已更改。表已更改。7.3.2 重命名表重命名表在创建表后,如果想要修改表的名称,可以对表进行重命名。在创建表后,如果想要修改表的名称,可以对表进行重命名。【

    33、例【例7-7】将表】将表Sys_User重命名为用户信息。重命名为用户信息。SQLALTER TABLE Sys_User2 RENAME TO 用户信息用户信息;表已更改。表已更改。第25页 需要注意的是,对表进行重命名要谨慎。虽然需要注意的是,对表进行重命名要谨慎。虽然Oracle可可以自动更新数据字典中的外键、约束定义、以及表关系,但以自动更新数据字典中的外键、约束定义、以及表关系,但是它还不能够更新数据库中的存储代码、客户应用,以及依是它还不能够更新数据库中的存储代码、客户应用,以及依赖于该对象的其他对象。赖于该对象的其他对象。7.3.3 删除表删除表 用户经常需要删除一些不需要的表,

    34、可使用删除表语用户经常需要删除一些不需要的表,可使用删除表语句句DROP TABLE来完成,语法如下:来完成,语法如下:DROP TABLE table_name【例【例7-8】将用户信息表删除。】将用户信息表删除。SQLDROP TABLE 用户信息用户信息;表已更改。表已更改。第26页7.2.4 使用使用OEM工具修改、删除表工具修改、删除表 使用使用OEM可以对表进行修改操作,包括修改表名、添加可以对表进行修改操作,包括修改表名、添加列、删除列、修改列属性等。首先搜索要要修改的表,单击列、删除列、修改列属性等。首先搜索要要修改的表,单击“编辑编辑”按钮,打开编辑表页面,如图按钮,打开编辑

    35、表页面,如图7-6所示。所示。图图7-6 修改表界面修改表界面第27页 在修改表页面中,可以直接在界面中输入新的表名、在修改表页面中,可以直接在界面中输入新的表名、列名,以及列的数据类型、大小和比例等信息。单击列名,以及列的数据类型、大小和比例等信息。单击“删删除除”按钮可以删除选定的列,单击按钮可以删除选定的列,单击“插入插入”可以添加新的可以添加新的列。列。如果需要删除表,则需选中要删除的表,如图如果需要删除表,则需选中要删除的表,如图7-7所示。所示。图图7-7 删除表界面删除表界面 单击单击“使用选项删除使用选项删除”按钮,打开删除选项窗口,按钮,打开删除选项窗口,选择删除选项。可以选

    36、择删选择删除选项。可以选择删除表定义,其中所有数据和除表定义,其中所有数据和从属对象;仅删除数据;仅从属对象;仅删除数据;仅删除不支持回退的数据。在删除不支持回退的数据。在这里可以选择删除表定义选这里可以选择删除表定义选项,然后单击项,然后单击“是是”即可删即可删除指定的表。除指定的表。第28页7.4 完整性约束完整性约束 数据库不仅仅存储数据,它也必须保证所保存的数据数据库不仅仅存储数据,它也必须保证所保存的数据的正确性和相容性,也就是数据完整性。数据完整性是防的正确性和相容性,也就是数据完整性。数据完整性是防止数据库中存在不符合语义规定的数据和防止因错误信息止数据库中存在不符合语义规定的数

    37、据和防止因错误信息的输入的输入/输出造成无效操作或错误信息而提出的。输出造成无效操作或错误信息而提出的。约束是约束是在数据库中保证数据库里表中数据完整性的手段。本节重在数据库中保证数据库里表中数据完整性的手段。本节重点介绍数据库完整性的概念及其在点介绍数据库完整性的概念及其在Oracle 11g中的实现方中的实现方法。法。数据库的完整性一般分为四类:实体完整性、域完整性、数据库的完整性一般分为四类:实体完整性、域完整性、参照完整性和用户定义的完整性。参照完整性和用户定义的完整性。第29页实体完整性:要求表中的每一行在表中是唯一的实体,既实体完整性:要求表中的每一行在表中是唯一的实体,既不能为空

    38、也不能取重复的值。不能为空也不能取重复的值。域完整性:指数据库表中的字段必须满足某种特定的数据域完整性:指数据库表中的字段必须满足某种特定的数据类型或约束。类型或约束。参照完整性:保证数据库中相关联的表里面数据的正确性。参照完整性:保证数据库中相关联的表里面数据的正确性。根据约束的作用域,约束可以分为表级约束和列级约根据约束的作用域,约束可以分为表级约束和列级约束两种。列级约束是列定义的一部分,只能够应用在一个束两种。列级约束是列定义的一部分,只能够应用在一个列上;而表级的约束定义在独立的列上,它可以应用于一列上;而表级的约束定义在独立的列上,它可以应用于一个表中的多个列。在个表中的多个列。在

    39、Oracle系统中定义约束时,可以通过系统中定义约束时,可以通过CONSTRAINT关键字为约束命名。如果用户没有为约束关键字为约束命名。如果用户没有为约束指定名称,指定名称,Oracle将自动为约束建立默认的名称。将自动为约束建立默认的名称。第30页在在Oracle中,根据不同的用途提供了多种约束,分别为:中,根据不同的用途提供了多种约束,分别为:主键约束(主键约束(PRIMARY KEY):主键约束在每个数据表中):主键约束在每个数据表中有且仅有一个。如果一个主键约束由多个列组成,通常把有且仅有一个。如果一个主键约束由多个列组成,通常把由多个列组成的主键叫做复合主键。主键约束可以保证主由多

    40、个列组成的主键叫做复合主键。主键约束可以保证主键列的数据没有重复值且值不为空,即能够唯一地标识表键列的数据没有重复值且值不为空,即能够唯一地标识表中的每条记录。该约束主要实现实体完整性。中的每条记录。该约束主要实现实体完整性。外键约束(外键约束(FOREIGN KEY):外键约束保证了数据库的):外键约束保证了数据库的参照完整性。它主要用作把一个表中的数据和另一个表中参照完整性。它主要用作把一个表中的数据和另一个表中的数据进行关联。的数据进行关联。唯一约束(唯一约束(UNIQUE):唯一约束和主键约束都是设置表):唯一约束和主键约束都是设置表中的列不能取重复值,与主键约束不同的是,一个表可以中

    41、的列不能取重复值,与主键约束不同的是,一个表可以有多个唯一约束。有多个唯一约束。非空约束(非空约束(NOT NULL):非空约束是用来约束表中的列):非空约束是用来约束表中的列不允许取空值的。不允许取空值的。NOT NULL约束只能在列级别上定义。约束只能在列级别上定义。在一个表中可以定义多个在一个表中可以定义多个NOT NULL约束。约束。第31页检查约束(检查约束(CHECK):):CHECK约束通过检查输约束通过检查输入到表中的数据值来维护域的完整性,只有符合入到表中的数据值来维护域的完整性,只有符合输入条件的数据才允许输入到表中。输入条件的数据才允许输入到表中。默认值约束(默认值约束(

    42、DEFAULT):用于对指定的列设置):用于对指定的列设置默认值。默认值。其中,唯一约束、非空约束、检查约束和默认值其中,唯一约束、非空约束、检查约束和默认值约束可以实现数据库的域完整性。约束可以实现数据库的域完整性。对约束的定义既可以创建表的同时可以指定相应对约束的定义既可以创建表的同时可以指定相应的约束(如例的约束(如例7-9),也可以通过修改表的结构添),也可以通过修改表的结构添加约束。加约束。【例【例7-9】重新创建用户表】重新创建用户表Sys_User,要求,要求UserID 是主键,是主键,UserName列只能取唯一值,不得重复,列只能取唯一值,不得重复,UserType字段取值

    43、字段取值大于大于0小于小于3,UserPwd的默认值为的默认值为111111,代码如下。,代码如下。第32页SQLCREATE TABLE Sys_User2 (UserID Number Primary Key,3 UserName Varchar2(20)NOT NULL UNIQUE,4 UserType Number(1)CHECK(UserType0 AND UserType CREATE TABLE Students2 (Student_ID char(11),3 Sname Varchar2(8),4 Ssex Varchar2(2),5 Sbirth date,6 Nation

    44、ality Varchar2(40),7 Dept_ID char(3),8 Class_ID char(5)9 );表已创建。表已创建。第34页创建课程表的代码如下:创建课程表的代码如下:SQL CREATE TABLE Courses2 (Course_ID Varchar2(4),3 Cname Varchar2(20),4 Credits NUMBER);表已创建。表已创建。第35页创建选课表的代码如下:创建选课表的代码如下:SQL CREATE TABLE SC2 (Student_ID Varchar2(11),3 Course_ID Varchar2(4),4 Grade NUM

    45、BER,5 CONSTRAINT fk_sid FOREIGN KEY(Student_ID)REFERENCES Students(Student_ID)6 ON DELETE CASCADE);表已创建。表已创建。第36页1.主键约束主键约束使用使用ALTER TABLE语句设置主键约束的语法格式如下:语句设置主键约束的语法格式如下:ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY(column_name)【例【例7-10】为学生表添加主键约束。】为学生表添加主键约束。SQL ALTER TABLE Stud

    46、ents 2 ADD CONSTRAINT pk_sid PRIMARY KEY(Student_ID);表已更改。表已更改。第37页2.唯一约束唯一约束使用使用ALTER TABLE语句设置唯一约束的语法格式如下:语句设置唯一约束的语法格式如下:ALTER TABLE table_name ADD CONSTRAINTS constraint_name UNIQUE(column_name)【例【例7-11】为课程表的课程名称设置唯一值约束。】为课程表的课程名称设置唯一值约束。SQL ALTER TABLE Courses 2 ADD CONSTRAINT uq_cn UNIQUE(Cour

    47、se_name);表已更改。表已更改。第38页3.非空约束非空约束使用使用ALTER TABLE语句设置非空约束的语法格式如下:语句设置非空约束的语法格式如下:ALTER TABLE table_name MODIFY column_name NOT NULL【例【例7-12】为学生表的学生姓名设置非空约束。】为学生表的学生姓名设置非空约束。SQL ALTER TABLE Students 2 MODIFY Sname NOT NULL;表已更改。表已更改。如果要取消某个列非空的约束,直接使用如果要取消某个列非空的约束,直接使用MODIFY语句把语句把该列的非空约束写成该列的非空约束写成NUL

    48、L即可。即可。第39页4.检查约束检查约束使用使用ALTER TABLE语句设置检查约束的语法格式如下:语句设置检查约束的语法格式如下:ALTER TABLE table_name ADD CONSTRAINTS constraint_name CHECK(condition)【例【例7-13】选修表的成绩列取值要求在】选修表的成绩列取值要求在0100之间。之间。SQL ALTER TABLE SC 2 ADD CONSTRAINT chk_grade CHECK(Grade0 and Grade ALTER TABLE SC 2 ADD CONSTRAINT fk_cid FOREIGN K

    49、EY(Course_ID)REFERENCES Courses(Course_ID)3 ON DELETE CASCADE);表已更改。表已更改。第41页6.删除约束删除约束删除约束的语法格式:删除约束的语法格式:ALTER TABLE table_name DROP CONSTRAINTS constraint_name【例【例7-15】删除例】删除例7-11创建的约束。创建的约束。SQL ALTER TABLE Courses 2 DROP CONSTRAINT uq_cn;表已更改。表已更改。7.5 表中数据的操作表中数据的操作 一个表创建以后,其中并不包含任何记录,需要向表一个表创建以

    50、后,其中并不包含任何记录,需要向表中输入数据。本节重点介绍如何向表中添加数据、更新数中输入数据。本节重点介绍如何向表中添加数据、更新数据以及删除数据。据以及删除数据。第42页7.5.1 插入数据插入数据使用使用INSERT语句可向指定表中插入数据。语句可向指定表中插入数据。INSERT语法的基本结构如语法的基本结构如下:下:INSERT INTO (column_name 1,column_name 2,column_name n)VALUES(values 1,values 2,values n)其中,其中,column_name 1,column_name 2,column_name n必

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第7章表的创建和管理课件.ppt
    链接地址:https://www.163wenku.com/p-5105169.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库