《数据库及表的创建.ppt》由会员分享,可在线阅读,更多相关《数据库及表的创建.ppt(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章第二章 数据库和表的创建数据库和表的创建2 2、1 1 基本概念基本概念2 2、1 1、1 1数据库数据库一、数据库内部结构一、数据库内部结构(1)1)表空间:是逻辑划分,每个数据库至少有一个表空间。每个表空表空间:是逻辑划分,每个数据库至少有一个表空间。每个表空间由一个或多个数据文件组成。一个表空间只属于一个数据库。间由一个或多个数据文件组成。一个表空间只属于一个数据库。(2 2)表:是数据库中存放用户数据的对象,它包含一组固定的列,)表:是数据库中存放用户数据的对象,它包含一组固定的列,描述该表所跟踪的实体的属性。描述该表所跟踪的实体的属性。(3 3)约束条件()约束条件(CONST
2、RAINT).CONSTRAINT).确保数据的引用完整性。主要有以下确保数据的引用完整性。主要有以下5 5种约束。种约束。主键(主键(primary key)primary key)默认(默认(defaultdefault):):在表中插入一行数据但没有为列指定值时生成在表中插入一行数据但没有为列指定值时生成一个在定义表时预先指定的值。一个在定义表时预先指定的值。唯一性唯一性(unique)(unique)检查(检查(checkcheck):确保指定列中的值符合一定的条件。:确保指定列中的值符合一定的条件。CheckCheck列约束列约束条件不能引用一个独立表。非空值约束条件被看作是一个条件
3、不能引用一个独立表。非空值约束条件被看作是一个checkcheck约束约束条件。条件。外键(外键(foreign keyforeign key):规定表间的关系性质。一个外键使一个表:规定表间的关系性质。一个外键使一个表的一列或多列与已定义为主键的表中的一批相同的列相关联。当在已的一列或多列与已定义为主键的表中的一批相同的列相关联。当在已定义主键约束的表中更新列值时,其他表中定义有外键约束的列会被定义主键约束的表中更新列值时,其他表中定义有外键约束的列会被自动更新。自动更新。(4 4)分区()分区(partition):partition):在大的数据库中,可以通过把一个大表在大的数据库中,可
4、以通过把一个大表的数据分成多个小表来简化数据库的管理,这些小表称作分区。的数据分成多个小表来简化数据库的管理,这些小表称作分区。还可对索引进行分区。还可对索引进行分区。(5 5)索引()索引(index)index):当:当create tablecreate table命令中规定命令中规定uniqueunique或或primary keyprimary key约束条件子句时,自动创建一个索引,也可以通过约束条件子句时,自动创建一个索引,也可以通过create indexcreate index命令手工创建自己的索引。命令手工创建自己的索引。(6 6)簇()簇(cluster)cluster)
5、。经常被同时访问的表在物理位置上可以存储。经常被同时访问的表在物理位置上可以存储在一起。为了将它们存储在一起,就要创建一个簇来管理这些表。在一起。为了将它们存储在一起,就要创建一个簇来管理这些表。表中相关的列称为簇键。簇键用一个簇索引来进行索引,对于簇表中相关的列称为簇键。簇键用一个簇索引来进行索引,对于簇中的多个表,簇键值只存储一次。在把任何行插入簇的表中之前,中的多个表,簇键值只存储一次。在把任何行插入簇的表中之前,都必须先创建一个簇索引。都必须先创建一个簇索引。(7 7)用户)用户(8 8)方案()方案(schema)schema)。用户帐户拥有的对象集称为用户的方案。用户帐户拥有的对象
6、集称为用户的方案。(9 9)同义词。为了给不同的用户使用数据库对象时提供一个简单)同义词。为了给不同的用户使用数据库对象时提供一个简单的、唯一标识数据库对象的名称,可以对数据库对象创建同义词。的、唯一标识数据库对象的名称,可以对数据库对象创建同义词。(1010)权限、角色、段、区间、块)权限、角色、段、区间、块二、数据库外部结构二、数据库外部结构如果从操作系统的观点来看,如果从操作系统的观点来看,oracle9ioracle9i数据库就是操作系数据库就是操作系统内的各种文件,最重要的文件包括数据文件、重做日志统内的各种文件,最重要的文件包括数据文件、重做日志文件、控制文件等。文件、控制文件等。
7、注:一个数据文件只能对应一个表空间,数据文件一旦加注:一个数据文件只能对应一个表空间,数据文件一旦加入到表空间,则不能再移出。入到表空间,则不能再移出。2 2、2 2界面创建数据库和表界面创建数据库和表2 2、2 2、1 1数据库的创建和删除数据库的创建和删除一、创建数据库一、创建数据库。使用。使用DBCADBCA二、修改数据库二、修改数据库:对已有的数据库可以进行的修改主要有:对已有的数据库可以进行的修改主要有:增加和删除数据文件增加和删除数据文件改变数据文件的大小和增长方式不论进行什么修改都需改变数据文件的大小和增长方式不论进行什么修改都需要登录的指定的数据库。要登录的指定的数据库。改变数
8、据文件的大小和增长方式及增加数据文件有两种改变数据文件的大小和增长方式及增加数据文件有两种方式:方式:在在“数据文件数据文件”文件夹下直接修改数据文件。文件夹下直接修改数据文件。在相应的表空间中修改数据文件。在相应的表空间中修改数据文件。删除数据文件:在删除数据文件:在oracle9ioracle9i数据库中,数据库中,systemsystem数据文件数据文件不能删除。在数据库的使用过程中,不能删除数据文件。不能删除。在数据库的使用过程中,不能删除数据文件。若要删除数据文件,可以在关闭数据库后,在操作系统中若要删除数据文件,可以在关闭数据库后,在操作系统中进行。进行。三、删除数据库三、删除数据
9、库:使用:使用DBCADBCA创建和管理表空间创建和管理表空间(1 1)利用)利用OEMOEM创建和管理表空间创建和管理表空间(2 2)利用)利用create tablespacecreate tablespace命令创建和管理表命令创建和管理表空间。空间。Alter Alter来修改,来修改,dropdrop来删除。来删除。语法格式如下:语法格式如下:Create tablespace tablespace_nameCreate tablespace tablespace_nameDatafile path/filename size Datafile path/filename size
10、integerk|m reuse integerk|m reuse autoextendoff|onnext integer k|m autoextendoff|onnext integer k|m maxsize unlimited|integerk|m maxsize unlimited|integerk|m default storage storage_clause default storage storage_clause online|offline logging|nologging online|offline logging|nologging permanent|temp
11、orarypermanent|temporary extent managementdictionary|local extent managementdictionary|local autoallocate|uniformsize integerk|mautoallocate|uniformsize integerk|m说明:说明:ReuseReuse表示若该文件存在,则清除该文件再重新建立该文件;若不存表示若该文件存在,则清除该文件再重新建立该文件;若不存在则建立新文件。在则建立新文件。Autoextend Off/0nAutoextend Off/0n禁止或允许自动扩展数据文件。禁止或
12、允许自动扩展数据文件。NextNext指定当需要更多盘区时分配给数据文件的磁盘空间指定当需要更多盘区时分配给数据文件的磁盘空间Maxsize unlimited Maxsize unlimited 指定允许分配给数据文件的最大磁盘空间指定允许分配给数据文件的最大磁盘空间OnlineOnline 在创建表空间之后使该表空间立即对授权访问该表空间的用在创建表空间之后使该表空间立即对授权访问该表空间的用户可用。这是默认设置户可用。这是默认设置 Offline Offline在创建表空间之后使该表空间不可用在创建表空间之后使该表空间不可用LoggingLogging/nologging/nologgi
13、ng 指定日志属性,它表示将来的表、索引等是否指定日志属性,它表示将来的表、索引等是否需要进行日志处理。默认为需要进行日志处理。默认为loggingloggingPermanentPermanent指定表空间将用于保存永久对象,这是默认的指定表空间将用于保存永久对象,这是默认的 Temporary Temporary指定表空间将用于保存临时对象指定表空间将用于保存临时对象Extent managementExtent management指定如何管理表空间的盘区指定如何管理表空间的盘区 DictionaryDictionary指定使用数据字典来管理表空间,这是默认的指定使用数据字典来管理表空间
14、,这是默认的 Local Local指定局部管理表空间指定局部管理表空间 Autoallocate Autoallocate指定表空间由系统管理,用户不能指定盘区尺寸。指定表空间由系统管理,用户不能指定盘区尺寸。它为系统默认。它为系统默认。Uniform Uniform指定使用指定使用sizesize字节的统一盘区来管理表空间。默认的字节的统一盘区来管理表空间。默认的是是sizesize为为1MB1MB。例子:例子:创建大小为创建大小为50MB50MB的表空间的表空间TESTTEST,禁止自动扩展数据文件。,禁止自动扩展数据文件。Create tablespace TEST Create ta
15、blespace TEST Logging Logging Datafile d:oracleoradatarjxyTEST01.dbf Datafile d:oracleoradatarjxyTEST01.dbf size 50M reusesize 50M reuse Autoextend off;Autoextend off;作业:作业:创建表空间创建表空间ScottScott,允许自动扩展数据文件,且采用字典,允许自动扩展数据文件,且采用字典管理表空间。管理表空间。利用命令管理表空间:利用命令管理表空间:利用利用alter tablespacealter tablespace命令可以修
16、改现有的表空间或它的一个或多个命令可以修改现有的表空间或它的一个或多个数据文件。可以为数据库中每一个数据文件指定各自的存储扩展参数数据文件。可以为数据库中每一个数据文件指定各自的存储扩展参数值值语法格式:语法格式:Alter tablespace tabsp_nameAlter tablespace tabsp_nameadd datafile|tempfile path/fname size integerk|m add datafile|tempfile path/fname size integerk|m reuseautoextendoff|onnext integerk|mreuse
17、autoextendoff|onnext integerk|m Maxsizeunlimited|integerk|m Maxsizeunlimited|integerk|mrename datafile pathfilename,n to rename datafile pathfilename,n to pathre_filename,npathre_filename,ndefault storage storage_clausedefault storage storage_clauseonline|offlinenormal|temporary|immediateonline|offl
18、inenormal|temporary|immediatelogging|nologging read only|writepermanentlogging|nologging read only|writepermanenttemporarytemporary说明:说明:Add datafile|tempfileAdd datafile|tempfile向表空间添加指定的数据文件或临时文件。向表空间添加指定的数据文件或临时文件。Rename datafileRename datafile对一个或多个表空间的数据文件重命名。在重命名对一个或多个表空间的数据文件重命名。在重命名数据文件之前要使表
19、空间脱机数据文件之前要使表空间脱机Read onlyRead only表明表空间上不允许写操作。该子句在现有的事务全部提表明表空间上不允许写操作。该子句在现有的事务全部提交或回滚后才使表空间变成只读交或回滚后才使表空间变成只读Read writeRead write表明在先前只读表空间上允许写操作表明在先前只读表空间上允许写操作例子:通过例子:通过alter tablespacealter tablespace命令把一个新的数据文件添加命令把一个新的数据文件添加到到DATADATA表空间,并指定自动扩充大小,最大为表空间,并指定自动扩充大小,最大为300MB300MBAlter tablesp
20、ace DATA Add datafile d:oracleoradatarjxyDATA02.dbf size 50M reuse Autoextend on next 5M Maxsize 300M(3)(3)表的基本操作表的基本操作一、建表一、建表 (界面建表的两种方案)(界面建表的两种方案)利用向导建表利用向导建表手工建表手工建表二、修改表二、修改表对一个已经存在的表可进行的修改操作包括:对一个已经存在的表可进行的修改操作包括:增加列增加列删除列删除列修改已有列的属性修改已有列的属性修改存储方式等信息修改存储方式等信息增加列增加列。在。在OEMOEM中展开中展开 表文件夹,选中需操作的
21、表,在表文件夹,选中需操作的表,在“一般信息一般信息”选项卡最下面的空白行中输入新增列的名字,选项卡最下面的空白行中输入新增列的名字,数据类型、大小等信息。修改后单击数据类型、大小等信息。修改后单击“应用应用”保存。保存。删除列删除列。用鼠标单击要删除列所在行最左边的方块,该。用鼠标单击要删除列所在行最左边的方块,该行会变成蓝色,单击左下角的删除图标,切换到删除列窗行会变成蓝色,单击左下角的删除图标,切换到删除列窗口,单击口,单击“确定确定”,再应用保存修改信息。,再应用保存修改信息。修改列的属性。修改列的属性。在表中尚未有记录值时,可以修改表结构,如更改列名、在表中尚未有记录值时,可以修改表
22、结构,如更改列名、列的数据类型等属性。但当表中有了记录后,建议不用轻列的数据类型等属性。但当表中有了记录后,建议不用轻易改变表结构,特别是不要改变数据类型,以免产生错误。易改变表结构,特别是不要改变数据类型,以免产生错误。要修改已有列的属性,只需在窗口中对列所在的行直接修要修改已有列的属性,只需在窗口中对列所在的行直接修改即可。改即可。修改存储情况。修改存储情况。在在“存储存储”选项卡中可修改表的存储方选项卡中可修改表的存储方式式。三、删除表三、删除表删除表时,表的定义、表中的所有数据以及表的索引、触删除表时,表的定义、表中的所有数据以及表的索引、触发器、约束等均被删除。发器、约束等均被删除。
23、注意:不能删除系统表和有外键约束参照的表。注意:不能删除系统表和有外键约束参照的表。方法:在表上单击鼠标右键,在弹出的快捷菜单中选择方法:在表上单击鼠标右键,在弹出的快捷菜单中选择“移出移出”即可。即可。2 2、3 3 命令方式创建表命令方式创建表在以自己模式创建表时,必须拥有在以自己模式创建表时,必须拥有create tablecreate table系统权限。在其他用系统权限。在其他用户模式中创建表,必须拥有户模式中创建表,必须拥有create any tablecreate any table系统权限。系统权限。语法格式:语法格式:Create table schema.table_na
24、meCreate table schema.table_name(column_name datatype expression column_constraint,n)(column_name datatype expression column_constraint,n)pctfree integer pctused integerpctfree integer pctused integerinitrans integer maxtrans integerinitrans integer maxtrans integertablespace tablespace_nametablespa
25、ce tablespace_namestorge storage_clausestorge storage_clausecluster cluster_name(cluster_column,n)cluster cluster_name(cluster_column,n)as subqueryas subquery说明:说明:Initrans:Initrans:指定分配给表的每一数据块中的事务条目的初值。范围为指定分配给表的每一数据块中的事务条目的初值。范围为12551255该值默认为该值默认为 1 1,通常采用默认值。,通常采用默认值。Storage:Storage:指定表的存储特征。该子句
26、基本格式如下:指定表的存储特征。该子句基本格式如下:Storage(initial integer k|mStorage(initial integer k|m next integer k|m minextents integer next integer k|m minextents integer maxextents integer|unlimitedmaxextents integer|unlimited pctincrease integer freelists integer freelist pctincrease integer freelists integer freel
27、ist group integer)group integer)Create table re_empCreate table re_emp as select*from emp;as select*from emp;As subquery:As subquery:表示将由子查询返回的行插入到所创建的表中。使用它表示将由子查询返回的行插入到所创建的表中。使用它时要注意以下事项:时要注意以下事项:表中的列数必须等于子查询中的表达式数。表中的列数必须等于子查询中的表达式数。列的定义只能指定列名、默认值和完整性约束,不能指定数据类型。列的定义只能指定列名、默认值和完整性约束,不能指定数据类型。不能在
28、含有不能在含有as subqueryas subquery的的create tablecreate table的语句中定义引用完整性。的语句中定义引用完整性。相反,必须先创建没有约束的表,然后再用相反,必须先创建没有约束的表,然后再用alter tablealter table语句来添加语句来添加约束。约束。例子例子1 1:在指定表空间:在指定表空间llmllm创建表。创建表。Create table llm_tableCreate table llm_table(seq number(10)primary key,(seq number(10)primary key,qq char(6)qq
29、 char(6)Tablespace llm;Tablespace llm;例子例子2 2:创建创建empemp表的备份:表的备份:2 2、4 4用命令方式修改表用命令方式修改表基本语法:基本语法:Alter table schema.table_nameAlter table schema.table_nameadd(column_name datatype default expression add(column_name datatype default expression column_constraint,n)column_constraint,n)modify(column_n
30、amedatatype default expressionmodify(column_namedatatype default expressioncolumn_constraint,n)column_constraint,n)storage storage_clausestorage storage_clausedrop drop_clausedrop drop_clause说明:说明:SchemaSchema:修改的表的拥有者:修改的表的拥有者Table_name Table_name:修改的表名:修改的表名Add:Add:添加列或完整性约束添加列或完整性约束ModifyModify:修
31、改已有列的定义:修改已有列的定义StorageStorage:修改表的存储特征:修改表的存储特征DropDrop:从表中删除列或约束:从表中删除列或约束语法格式:语法格式:DropDrop column column_name|column column_name|primary|primary|unique(column_name,n)|unique(column_name,n)|constraint|constraint|cascade cascade 说明:说明:Cascade:Cascade:删除其他所有的完整性约束,这些约束依赖于被删除的完整删除其他所有的完整性约束,这些约束依赖于被
32、删除的完整性约束。性约束。注意:如果外键没有删除,则不能删除引用完整性约束中的注意:如果外键没有删除,则不能删除引用完整性约束中的uniqueunique和和primary keyprimary key约束。约束。例子例子1 1:在表:在表empemp中增加两列:中增加两列:addressaddress和和awardaward默认值为暂无奖励信息。默认值为暂无奖励信息。Alter table empAlter table empAdd(address char(10),Add(address char(10),award varchar(20)default award varchar(20)
33、default 暂无奖励信息暂无奖励信息););例子例子2 2:在表在表empemp中修改名为中修改名为awardaward的列的默认值。的列的默认值。Alter table emp Alter table emp modify(award default modify(award default 一次奖励情况一次奖励情况););例子例子3 3:删除表:删除表empemp中的中的awardaward和和addressaddress列。列。alter table emp alter table emp drop column award;drop column award;alter table
34、 empalter table emp drop column address;drop column address;例子例子4 4:给:给empemp表添加主键约束(表添加主键约束(empnoempno)。)。alter table emp alter table emp add(constaint pk_no primary key(empno);add(constaint pk_no primary key(empno);2.52.5用命令删除表用命令删除表语法格式:语法格式:drop table schema.table_name;drop table schema.table_name;如:删除如:删除empemp表。表。drop table scott.emp;drop table scott.emp;