




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
表空间说明system系统表空间,用于存储系统的数据字典、系统的管理信息和用户数据表等sysaux辅助系统表空间。用于减少系统表空间的负荷,提高系统作业效率。该表空间由Oracle系统自动维护,一般不用于存储用户数据temp临时表空间。用于存储临时的数据,例如存储排序时产生的临时数据。一般情况下,数据库中的所有用户都使用temp作为默认的临时表空间undotbs1撤销表空间。用于在自动撤销管理方式下存储撤销信息。在撤销表空间中,除了回退段以外,不能建立任何其他类型的段。所以,用户不可以在撤销表空间中创建任何数据库对象users用户表空间。用于存储永久性用户对象和私有信息Oracle体系结构Oracle数据库从存储结构上可以分为物理存储结构与逻辑存储结构,从实例结构上可以分为内存结构与进程结构。 Oracle的物理存储结构是由存储在磁盘中的操作系统文件所组成的,Oracle在运行时需要使用这些文件。一般,Oracle数据库在物理上主要由3种类型的文件组成,分别是数据文件(*.dbf)、控制文件(*.ctl)和重做日志文件(*.log)。 数据文件数据文件(Data File)是指存储数据库数据的文件。数据库中的所有数据最终都保存在数据文件中,例如,表中的记录和索引等。如果数据文件中的某些数据被频繁访问,则这些数据会被存储在内存的缓冲区中。读取数据时,Oracle系统会首先从内存的数据缓冲区中查找相关数据信息,如果找不到,则从数据库文件中把数据读取出来,存放到内存的数据缓冲区中,供查询使用;存储数据时,修改后的数据信息,也是先存放在内存的数据缓冲区中,在满足写入条件(例如执行提交操作)时,由Oracle的后台进程DBWn将数据写入数据文件。特点数据文件一般有以下几个特点: 一个表空间由一个或多个数据文件组成。 一个数据文件只对应一个数据库。而一个数据库通常包含多个数据文件。 数据文件可以通过设置其参数,实现其自动扩展的功能。如果想要了解数据文件的信息,可以查询数据字典dba_data_files和v$datafile。数据字典介绍Oracle数据字典(Data Dictionary)是存储在数据库中的所有对象信息的知识库,Oracle数据库管理系统使用数据字典获取对象信息和安全信息,而用户和数据库系统管理员则用数据字典来查询数据库信息。Oracle数据字典保存有数据库中对象和段的信息,例如表、视图、索引、包、存储过程以及与用户、权限、角色、审计和约束等相关的信息。 数据字典视图类型视图类型说明USER视图USER视图的名称以user_为前缀,用来记录用户对象的信息。例如user_tables视图ALL视图ALL视图的名称以all_为前缀,用来记录用户对象的信息以及被授权访问的对象信息。例如all_synonyms视图DBA视图DBA视图的名称以dba_为前缀,用来记录数据库实例的所有对象的信息。例如dba_tables视图V$视图V$视图的名称以v$为前缀,用来记录与数据库活动相关的性能统计动态信息。例如v$datafile视图GV$视图GV$视图的名称以gv$为前缀,用来记录分布式环境下所有实例的动态信息。例如gv$lock视图基本的数据字典字典名称说明dba_tables所有用户的所有表的信息dba_tab_columns所有用户的表的字段信息dba_views所有用户的所有视图信息dba_synonyms所有用户的同义词信息dba_sequences所有用户的序列信息dba_constraints所有用户的表的约束信息dba_indexes所有用户的表的索引简要信息dba_ind_columns所有用户的索引的字段信息与数据库组件相关的数据字典组件数据字典中的表或视图说明数据库v$datafile记录系统的运行情况表空间dba_tablespaces系统表空间的基本信息dba_free_space系统表空间的空闲空间的信息控制文件v$controlfile系统控制文件的基本信息v$controlfile_record_section系统控制文件中记录文档段的信息v$parameter系统各参数的基本信息数据文件dba_data_files系统数据文件以及表空间的基本信息v$filestat来自控制文件的数据文件信息v$datafile_header记录数据文件头部分的基本信息常用动态性能视图视图名称说明v$fixed_table显示当前发行的固定对象的说明v$instance显示当前实例的信息v$latch显示锁存器的统计数据v$librarycache显示有关库缓存性能的统计数据v$rollstat显示联机的回滚段的名字v$rowcache显示活动数据字典的统计v$sga显示有关系统全局区的总结信息v$sgastat显示有关系统全局区的详细信息v$sort_usage显示临时段的大小及会话v$sqlarea显示SQL区的SQL信息SQLPlus连接数据库SQL*Plus工具SQL*Plus工具主要用于数据查询和数据处理。利用SQL*Plus可以将SQL和Oracle专有的PL/SQL结合起来进行数据查询和处理。SQL*Plus工具可以实现以下功能: 连接数据库,完成数据库管理。 对数据表可以执行插入、修改、删除、查询操作、以及执行SQL、PL/SQL块。 查询结果的格式化、运算处理、保存、打印以及输出Web格式。 显示任何一个表的字段定义,并与终端用户交互。 运行存储在数据库中的子程序或包。 启动/停止数据库实例。 SQL*Plus连接与断开数据库1启动SQL*Plus,连接到默认数据库2从命令行连接数据库3使用SQL*Plus命令连接与断开数据库在SQL*Plus中输入SQL语句时,一旦执行该语句,则SQL*Plus会将该语句保存到缓冲区中,该语句不再获得焦点,也就不能再接受编辑操作。如果还需要对缓冲区中的语句进行编辑操作,则可以使用SQL*Plus语句实现。Oracle数据库提供了一些SQL*Plus语句,这些语句由相应的命令实现,例如APPEND(可以简写为A)命令。如下表所示。 SQL*Plus语句命令说明APPEND text将text附加到当前行之后CHANGE /old/new将当前行中的old替换为newCLEAR BUFFER清除缓存区中的所有行INPUT text插入指定的文本textDEL m n删除从第m行到第n行之间的命令行LIST n列出第n行RUN或 /显示缓冲区中保存的语句,并运行这些语句n将第n行作为当前行n text使用text文本替代第n行信息0 text在第一行之前插入text文本创建简单报表报表所谓报表就是用表格、图表等格式来动态显示数据。计算机上的报表的主要特点是数据动态化,格式多样化,并且实现报表数据和报表格式的完全分离,用户可以只修改数据,或者只修改格式。为报表设置页眉和页脚命令说明TTITLE printspec text | variable . | OFF | ON 指定出现在报表中每一个页面顶端的页眉。其中printspec的可选值有LEFT、CENTER、RIGHT、BOLD、FORMAT text、COL n、SKIP n和TAB n。ON选项表示启用设置;OFF选项表示取消设置。还可以带有用户变量(内容由系统来维护),如SQL.PNO页号、SQL.LNO行号等BTITLE printspec text | variable . | OFF | ON 指定出现在报表中每一个页面底端的页脚计算小计BREAK命令和COMPUTE命令在执行查询操作或创建报表时,可以使用BREAK和COMPUTE命令,用来对输出的结果进行统计计算。其中使用BREAK命令,可以让SQL*Plus根据列值的范围分隔输出结果,可以使得重复的列值不进行显示;COMPUTE子句可以让SQL*Plus计算一列的值,并在最后输出显示。用法如下:BREAK ON column_name SKIP nCOMPUTE function LABEL label OF column_name ON break_column_name语法说明如下: column_name 表示对哪一列执行操作。 SKIP n 表示在指定列的值变化之前插入n个空行。 function 表示执行的操作,例如SUM(求和)、MAXIMUM(最大值)、MINIMUM(最小值)、AVG(平均值)、COUNT(非空值的列数)、NUMBER(行数)、VARIANCE(方差)以及STD(均方差)等。 LABEL 指定显示结果时的文本信息。格式化列的显示效果COLUMN命令可以对列的显示效果,包括列标题和列数据,进行格式化。该命令的语法如下:COLUMN column_name | ALIAS alias options 语法说明如下: column_name 指定列名。 ALIAS alias 指定要格式化的列的别名。 options 指定用于格式化列或别名的一个或者多个选项。 OPTION选项选项说明FORMAT format将列或列名的显示格式设置为由format字符串指定的格式,format可以使用的格式如下表HEADING text设置由text字符串指定的列标题JUSTIFY LEFT | CENTER | RIGHT 将列的输出信息设置为左对齐、居中对齐或右对齐WRAPPED在输出结果中将一个字符串的末尾换行显示。该选项可能导致单个单词跨越多行WORD_WRAPPED与WRAPPED选项类似,但是单个单词不会跨越多行CLEAR清除列的格式化TRUNCATED删除第一行的字符串NULL text指定列为空值时显示的内容PRINT显示列标题NOPRINT隐藏列标题format格式元素元素说明举例An为VARCHAR类型的列内容设置宽度。如果内容超过指定的宽度,则内容自动换行A59设置NUMBER列的显示格式999 999$浮动的货币符号$9999L本地货币符号L9999.小数点位置9999.99,千位分隔符9,999SQL*Plus命令命令说明HELP topic查看命令的使用方法,topic表示需要查看的命令名称。例如:HELP DESCHOST使用该命令可以从SQL*Plus环境切换到操作系统环境,以便执行操作系统命令HOST 操作系统命令执行操作系统命令,例如:HOST notepad.exeCLEAR SCREEN清除屏幕内容SHOW ALL | USER | SGA | ERRORS | RELEASE| PARAMETERS 查看SQL*Plus的所有系统变量值信息、当前是哪个用户在使用SQL*Plus、显示SGA大小、查看错误信息、数据库版本信息、系统初始化参数信息DESCRIBE 查看对象的结构,这里的对象可以是表、视图、存储过程、函数和包等。例如:DESC dualDESCRIBE命令DESCRIBE命令语法如下:DESCRIBE schema. object connect_identifier 语法说明如下:DESCRIBE:DESCRIBE可以简写为DESC。schema:指定对象所属的用户名,或者所属的用户模式名称。object:表示对象的名称,如表名或视图名等。connect_identifier : 表示数据库连接字符串。使用EDIT命令编辑缓冲区内容使用EDIT命令,可以将SQL*Plus缓冲区的内容复制到一个名为afiedt.buf的文件中,然后启动操作系统中默认的编辑器打开这个文件,并且文件内容能够进行编辑。在Windows操作系统中,默认的编辑器是Notepad(记事本)。EDIT file_name 其中,file_name默认为afiedt.buf,也可以指定一个其他的文件。使用SPOOL命令复制输出结果到文件使用SPOOL命令实现将SQL*Plus中的输出结果复制到一个指定的文件中,或者把查询结果发送到打印机中,直到使用SPOOL OFF命令为止。SPOOL命令的语法如下:SPOOL file_name CREATE | REPLACE | APPEND | OFF | OUT file_name 指定一个操作系统文件。CREATE 创建一个指定的file_name文件。REPLACE 如果指定的文件已经存在,则替换该文件。APPEND 将内容附加到一个已经存在的文件中。OFF 停止将SQL*Plus中的输出结果复制到file_name文件中,并关闭该文件。OUT 启动该功能,将SQL*Plus中的输出结果复制到file_name文件。使用GET命令读取文件内容到缓冲区使用GET命令的语法如下:GET FILE file_name LIST | NOLIST 语法说明如下:file_name 表示一个指定文件,将该文件的内容读入SQL*Plus缓冲区中。LIST 列出缓冲区中的语句。NOLIST 不列出缓冲区中的语句。设置一行显示的字符数量使用LINESIZE命令可以设置一行数据可以容纳的字符数量,默认数量为80。如果LINESIZE的值比较小,那么表中一行数据,有可能在屏幕上需要分多行显示;如果LINESIZE的值设置大一些,一行数据就可以在屏幕的一行中进行显示了。LINESIZE命令的语法如下:SET LINESIZE n其中,n表示屏幕上一行数据可以容纳的字符数量,有效范围是1 32767。设置一页显示多少行数据使用PAGESIZE命令,可以设置每一页的大小,从而控制每一页显示的数据量。PAGESIZE命令的语法如下:SET PAGESIZE n其中,参数n表示每一页大小的正整数,最大值可以为50,000,默认值为14。页并不是仅仅由输出的数据行构成的,而是由SQL*Plus显示到屏幕上的所有输出结果构成,包括标题和空行等。 使用SAVE命令将缓冲区内容保存到文件使用SAVE命令可以将当前缓冲区的内容保存到文件中,这样,即使缓冲区中的内容被覆盖,也保留有前面的执行语句。SAVE命令的语法如下:SAVE FILE file_name CREATE | REPLACE | APPEND 语法说明如下:file_name 表示将SQL*Plus缓冲区的内容保存到由file_name指定的文件中。CREATE 表示创建一个file_name文件,并将缓冲区中的内容保存到该文件。该选项为默认值。APPEND 如果file_name文件已经存在,则将缓冲区中的内容,追加到file_name文件的内容之后;如果该文件不存在,则创建该文件。REPLACE 如果file_name文件已经存在,则覆盖file_name文件的内容;如果该文件不存在,则创建该文件。使用SPOOL命令复制输出结果到文件使用SPOOL命令实现将SQL*Plus中的输出结果复制到一个指定的文件中,或者把查询结果发送到打印机中,直到使用SPOOL OFF命令为止。SPOOL命令的语法如下:SPOOL file_name CREATE | REPLACE | APPEND | OFF | OUT file_name 指定一个操作系统文件。CREATE 创建一个指定的file_name文件。REPLACE 如果指定的文件已经存在,则替换该文件。APPEND 将内容附加到一个已经存在的文件中。OFF 停止将SQL*Plus中的输出结果复制到file_name文件中,并关闭该文件。OUT 启动该功能,将SQL*Plus中的输出结果复制到file_name文件。使用START命令读取并运行文件内容START命令可以读取文件中的内容到缓冲区中,然后在SQL*Plus中运行这些内容。START命令的语法如下:START url | file_name 语法说明如下:url 用来指定一个URL地址,例如http:/host.domain/script.sql。file_name 指定一个文件。该命令将file_name文件的内容读入SQL*Plus缓冲区中,然后运行缓冲区中的内容。使用&符号表示临时变量在Oracle数据库中,可以使用变量来编写通用的SQL语句,在运行SQL语句时,为变量输入值,就会在SQL语句中将变量替换成这些值。临时变量只在使用它的SQL语句中有效,变量值不能保留。临时变量也被称为替换变量。在SQL语句中,如果在某个变量前面使用了&符号,那么就表示该变量是一个临时变量。执行SQL语句时,系统会提示用户为该变量提供一个具体的数据。使用&符号表示临时变量在SQL语句中,如果希望重新使用某个变量并且不希望重新提示输入值,那么可以使用&符号来定义临时变量。 SET VERIFY和SET DEFINE命令在使用临时变量时,还可以使用SET VERIFY命令和SET DEFINE命令,其中:SET VERIFY ON | OFF 用来指定是否输出原值和新值信息。SET DEFINE 用于指定一个除字符&之外的字符,作为定义变量的字符。已定义变量已定义变量是指具有明确定义的变量,该变量的值会一直保留到被显式地删除、重定义或退出SQL*Plus为止。在SQL语句中,可以在使用变量之前对变量进行定义,然后在同一个SQL语句中可以多次使用这个变量。定义变量,可以使用DEFINE或ACCEPT命令;删除变量,可以使用UNDEFINE命令。使用DEFINE命令命令说明DEFINE显示所有的已定义变量DEFINE variable显示指定变量的名称、值和其数据类型DEFINE variable = value创建一个CHAR类型的用户变量,并且为该变量赋初始值使用ACCEPT命令使用ACCEPT命令也可以定义变量,并且定制一个用户提示,用于提示用户输入指定变量的数据。在定义变量时,可以明确地指定该变量是NUMBER还是DATE等数据类型。为了安全性的原因,还可以将用户输入的信息隐藏起来。ACCEPT命令的语法如下:ACCEPT variable data_type FORMAT format DEFAULT default PROMPT text | NOPROMPT HIDE 语法说明如下:variable 用于一个指定接收值的变量。如果该名称的变量不存在,那么SQL*Plus自动创建该变量。data_type 指定变量的数据类型,可以使用的类型有CHAR、NUMBER、DATE、BINARY_FLOAT和BINARY_DOUBLE。默认的数据类型为CHAR。而DATE类型的变量实际上也是以CHAR变量存储的。FORMAT 指定变量的格式,包括A15(15个字符)、9999(一个4位数字)和DD-MON-YYYY(日期)。DEFAULT 用来为变量指定一个默认值。PROMPT 用于表示在用户输入数据之前显示的文本消息。HIDE 表示隐藏用户为变量输入的值。修改表空间中数据文件的自动扩展性在创建表空间时,可以设置数据文件的自动扩展性。在为表空间增加新的数据文件时,也可以设置新数据文件的自动扩展性。而对于已创建的表空间中的已有数据文件,则可以使用ALTER DATABASE语句修改其自动扩展性,其语法如下:ALTER DATABASE DATAFILE file_name AUTOEXTEND OFF | ON NEXT number K | M MAXSIZE UNLIMITED | number K | M 修改表空间中数据文件的状态数据文件的状态主要有3种:ONLINE、OFFLINE和OFFLINE DROP。设置数据文件状态的语法如下:ALTER DATABASE DATAFILE file_name ONLINE | OFFLINE | OFFLINE DROP其中,ONLINE表示联机状态,此时数据文件可以使用;OFFLINE表示脱机状态,此时数据文件不可使用,用于数据库运行在归档模式下的情况;OFFLINE DROP则会删除数据文件,与OFFLINE一样用于设置数据文件不可用,但它用于数据库运行在非归档模式下的情况。将数据文件设置为OFFLINE状态时,不会影响到表空间的状态;但是将表空间设置为OFFLINE状态时,属于该表空间的所有数据文件都被设置为OFFLINE状态。移动表空间中的数据文件数据文件是存储于磁盘中的物理文件,它的大小受到磁盘大小的限制。如果数据文件所在的磁盘空间不够,则需要将该文件移动到新的磁盘中保存 。【例】移动myspace表空间中数据文件myspace02.dbf的步骤如下:(1)修改myspace表空间的状态为OFFLINE,如下:ALTER TABLESPACE myspace OFFLINE;(2)在操作系统中,将磁盘中的myspace02.dbf文件移动到新的目录中,例如移动到F:oraclefile目录中。文件的名称也可以修改,例如修改为myspace03.dbf。(3)使用ALTER TABLESPACE语句,将myspace表空间中myspace02.dbf文件的原名称与路径修改为新名称与路径,如下:ALTER TABLESPACE myspaceRENAME DATAFILE E:appAdministratororadataorclmyspace02.dbfTO F:oraclefilemyspace03.dbf;(4)修改myspace表空间的状态为ONLINE,如下:ALTER TABLESPACE myspace ONLINE;增加表空间大小创建表空间时,必需在物理磁盘上为表空间创建数据文件。数据文件的大小决定了创建的表空间的大小。构成表空间的数据文件可以位于不同的物理磁盘上,表空间的大小就等于不同物理磁盘上所有数据文件的大小之和。如果在使用表空间的过程中,出现表空间不足的情况,那么就需要增加表空间的大小,具体实现时,可以采用增加数据文件的大小,也可以增加一个新的数据文件来增大表空间。修改表空间中数据文件的大小修改数据文件需要使用ALTER DATABASE语句,其语法如下:ALTER DATABASE DATAFILE file_name RESIZE newsize K | M;语法说明如下:file_name 数据文件的名称与路径。RESIZE newsize 修改数据文件的大小为newsize。增加表空间的数据文件增加表空间的大小,除了可以修改其对应的数据文件的大小以外,还可以选择为其增加新的数据文件。增加新的数据文件需要使用ALTER TABLESPACE语句,其语法如下:ALTER TABLESPACE tablespace_nameADD DATAFILE file_name SIZE number K | M AUTOEXTEND OFF | ON NEXT number K | M MAXSIZE UNLIMITED | number K | M , ;重命名表空间在需要的情况下,可以对表空间的名称进行修改。修改表空间的名称,不会影响到表空间中的数据。但不能修改系统表空间system与sysaux的名称。重命名表空间的语法如下:ALTER TABLESPACE tablespace_name RENAME TO new_tablespace_name;注意:如果表空间的状态为OFFLINE,则无法重命名该表空间。 删除表空间删除表空间需要使用DROP TABLESPACE语句,其语法如下:DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES 语法说明如下:INCLUDING CONTENTS表示删除表空间的同时,删除表空间中的所有数据库对象。如果表空间中有数据库对象,则必须使用此选项。AND DATAFILES表示删除表空间的同时,删除表空间所对应的数据文件。如果不使用此选项,则删除表空间实际上仅是从数据字典和控制文件中将该表空间的有关信息删除,而不会删除操作系统中与该表空间对应的数据文件。切换日志文件组日志文件组是循环使用的,当一组日志文件被写满时,Oracle系统自动切换到下一组日志文件。在需要的时候,数据库管理员也可以手动切换日志文件组。切换日志文件组需要使用如下语句:ALTER SYSTEM SWITCH LOGFILE ;清空日志文件组如果日志文件组中的日志文件受损,将导致数据库无法将受损的日志文件进行归档,这会最终导致数据库停止运行。此时,在不关闭数据库的情况下,可以选择清空日志文件组中的内容。清空日志文件组语法如下:LTER DATABASE CLEAR LOGFILE GROUP group_number ;注意:被清空的日志文件组不能处于CURRENT状态,也就是说不能清空数据库当前正在使用的日志文件组。当数据库中只有两个日志文件组时,不能清空日志文件组。创建日志文件组语法如下:ALTER DATABASE database_nameADD LOGFILE GROUP group_number(file_name , file_name , )SIZE size REUSE;语法说明如下:GROUP group_number 为日志文件组指定组编号。file_name 为该组创建日志文件成员。SIZE number 指定日志文件成员的大小。REUSE 如果创建的日志文件成员已存在,可以使用REUSE关键字覆盖已存在的文件。但是该文件不能已经属于其他日志文件组,否则无法替换。创建日志文件创建日志文件,一般是指向日志文件组中添加日志成员,需要使用ALTER DATABASE ADD LOGFILE MEMBER语句。例如,向日志文件组GROUP 4中添加一个新的日志文件:alter database add logfile memberf:oraclefilelogfileredo03.logto group 4;归档日志Oracle利用重做日志文件记录对数据库的操作,但是重做日志文件组是循环使用的,当所有的日志文件都被填满时,系统自动切换到第一组日志文件,当然数据库管理员也可以使用命令手工切换。而在循环使用日志文件时,日志文件中已经存在的日志内容将会被覆盖。为了完整地记录数据库的全部操作,Oracle提出了归档日志的概念。如果是非归档日志模式,则切换日志文件时,日志文件中原有内容将被新的内容覆盖;如果是归档日志模式,则切换日志文件时,系统会首先对日志文件进行归档存储,之后才允许向文件中写入新的日志内容。 Oracle日志模式Oracle数据库有两种日志模式:非归档日志模式(NOARCHIVELOG)在非归档日志模式下,如果发生日志切换,则日志文件中原有内容将被新的内容覆盖;归档日志模式(ARCHIVELOG)在归档日志模式下,如果发生日志切换,则Oracle系统会将日志文件通过复制保存到指定的地方,这个过程叫“归档”,复制保存下来的日志文件叫“归档日志”,然后才允许向文件中写入新的日志内容。设置数据库模式在安装Oracle Database 11g时,默认设置数据库运行于非归档模式,这样可以避免对创建数据库的过程中生成的日志进行归档,从而缩短数据库的创建时间。在数据库成功运行后,数据库管理员可以根据需要修改数据库的运行模式。如果要修改数据库的运行模式,可以使用如下语句:ALTER DATABASE ARCHIVELOG | NOARCHIVELOG ;其中,ARCHIVELOG表示归档模式;NOARCHIVELOG表示非归档模式。删除日志文件删除日志文件的语法如下:ALTER DATABASE DROP LOGFILE MEMBER logfile_name ;删除日志文件需要注意如下几点:该日志文件所在的日志文件组不能处于CURRENT状态,需要执行一次手工日志切换,将该日志文件组的状态修改为INACTIVE。该日志文件所在的日志文件组中必须还包含有其他日志成员。如果数据库运行在归档模式下,则应该在删除日志文件之前,确定它所在的日志文件组已经被归档,否则会导致数据丢失。状态值日志组的状态:ACTIVE、CURRENT、INACTIVE、UNUSED日志文件的状态:VALID、INVALID、STALE删除日志文件组删除日志文件组的语法如下:ALTER DATABASE DROP LOGFILE GROUP group_number ;删除日志文件组需要注意如下几点:一个数据库至少需要两个日志文件组。日志文件组不能处于CURRENT状态。如果数据库运行在归档模式下,应该确定该日志文件组已经被归档。设置归档目标归档目标就是指存放归档日志文件的目录。一个数据库可以有多个归档目标。在创建数据库时,默认设置了归档目标,可以通过db_recovery_file_dest参数查看。设置归档目标的语法形式如下:ALTER SYSTEM SET log_archive_dest_N = LOCATION | SERVER = directory ;其中,directory表示磁盘目录;LOCATION表示归档目标为本地系统的目录;SERVER表示归档目标为远程数据库的目录。 设置归档日志名称通过参数log_archive_format,可以设置归档日志名称格式。语法形式:ALTER SYSTEM SET log_archive_format = fix_name%S_%R.%T SCOPE = scope_type ;语法说明如下:fix_name%S_%R.%T其中,fix_name是自定义的命名前缀;%S表示日志序列号;%R表示联机重做日志(RESETLOGS)的ID值;%T表示归档线程编号。log_archive_format参数的值必须包含%S、%R和%T匹配符。SCOPE = scope_typeSCOPE有3个参数值:MEMORY、SPFILE和BOTH。其中,MEMORY表示只改变当前实例运行参数;SPFILE表示只改变服务器参数文件SPFILE中的设置;BOTH则表示两者都改变。重新定义日志成员重新定义日志成员,是指为日志成员组重新指定一个日志成员。 例如:GROUP 4文件组中包含一个redo01.log文件,现在移除该文件,改为包含redo01_new.log。 CHECK约束CHECK约束是指检查性约束,使用CHECK约束时,将对输入的每一个数据进行检查,只有符合条件的记录才会保存到表中,从而保证数据的有效性和完整性。CHECK约束具有以下4个特点:在CHECK约束的表达式中,必须引用表中的一个或者多个列;并且表达式的运算结果是一个布尔值。在一个列中,可以定义多个CHECK约束。对于同一列,可以同时定义CHECK约束和NOT NULL约束。CHECK约束既可以定义在列级别中,也可以定义在表级别中。创建表时,为表定义CHECK约束,需要使用CHECK(约束条件)语句。例如,创建表STUDENT3,为STUDENTAGE列指定CHECK约束,如下:SQL create table student3( 2 studentid number(4) not null primary key, 3 studentcode varchar2(10) unique, 4 studentname varchar2(20), 5 studentage number(3) constraint stu3_ck check(studentage 0), 6 studentaddress varchar2(40) 7 );表已创建。FOREIGN KEY约束FOREIGN KEY约束是指外键约束,用于引用本表或另一个表中的一列或一组列。引用列与被引用列可以在同一个表中,这种情况称为“自引用”。被引用的列或列组应该具有主键约束或惟一约束。引用列的取值只能为被引用列的值或NULL值。可以为一个列或一组列定义FOREIGN KEY约束。如果引用列中存储了被引用列的某个值,则不能直接删除被引用列中的这个值,否则会与第二条相矛盾。如果一定要删除,需要先删除引用列中的这个值,然后再删除被引用列中的这个值。添加FOREIGN KEY约束在创建表时,为列添加FOREIGN KEY约束,形式如下:column_name1 data_type CONSTRAINT constraint_name REFERENCES table_name2 (column_name2)或CREATE TABLE table_name (column_name data_type , , CONSTRAINT constraint_name FOREIGN KEY (column_name1) REFERENCES table_name2 (column_name2) , )其中,REFERENCES关键字用于定义column_name1列指向其他表或本表)中的column_name2列。也可以为已创建的表中的列添加FOREIGN KEY约束,如下:ALTER TABLE table_name1 ADD CONSTRAINT constraint_name FOREIGN KEY (column_name1) REFERENCES table_name2 (column_name2);NOT NULL约束NOT NULL约束是指非空约束,用于要求向表中添加记录时必须为被约束的列提供数据,否则将出现错误。NOT NULL约束只能在列级别上定义,一个表中可以定义多个NOT NULL约束。添加NOT NULL约束在创建表时,为列添加NOT NULL约束,形式如下:column_name data_type CONSTRAINT constraint_name NOT NULL其中,CONSTRAINT constraint_name表示为约束指定名称。也可以为已创建的表中的列添加NOT NULL约束,这时就需要使用ALTER TABLE MODIFY语句,形式如下:ALTER TABLE table_name MODIFY column_name CONSTRAINT constraint_name NOT NULL;删除NOT NULL约束如果需要删除表中的列上的NOT NULL约束,依然是使用ALTER TABLE MODIFY语句,形式如下:TABLE table_name MODIFY column_name NULL;PRIMARY KEY约束PRIMARY KEY约束是指主键约束,用于惟一标识一行记录。在一个表中只能定义一个PRIMARY KEY约束,该约束可以定义在单独的列上,也可以定义在多个列上(表级约束)。定义了PRIMARY KEY约束的列或列组合不能有重复值,也不能有NULL值。添加PRIMARY KEY约束在创建表时,为列添加PRIMARY KEY约束,形式如下:column_name data_type CONSTRAINT constraint_name PRIMARY KEY或CREATE TABLE table_name (column_name data_type , , CONSTRAINT constraint_name PRIMARY KEY (column_name) , )也可以为已创建的表中的列添加PRIMARY KEY约束,形式如下:ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY (column_name);删除PRIMARY KEY约束删除列上的PRIMARY KEY约束,需要使用ALTER TABLE DROP语句,不过形式上只能采取指定约束名的方式,如下:ALTER TABLE table_name DROP CONSTRAIN constraint_name;如果在添加约束时使用CONSTRAINT子句为其指定了约束名,那么这里就可以直接使用该名称。而如果没有使用CONSTRAINT子句,则约束名由Oracle自动创建,此时就可以通过连接数据字典user_cons_columns和user_constraints来查看约束名称。UNIQUE约束UNIQUE约束是指惟一约束,用于要求列中不允许出现重复值。可以为单独的列添加一个UNIQUE约束,也可以为多个列添加一个UNIQUE约束(属于表级约束)。如果为多个列添加一个UNIQUE约束,只需要保证这多个列的值不全部相同即可。添加UNIQUE约束在创建表时,为列添加UNIQUE约束,形式如下:column_name data_type CONSTRAINT constraint_name UNIQUE或CREATE TABLE table_name (column_name data_type , , CONSTRAINT constraint_name UNIQUE (column_name) , )也可以为已创建的表中的列添加UNIQUE约束,这时就需要使用ALTER TABLE ADD语句,形式如下:ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE (column_name);删除UNIQUE约束删除列上的UNIQUE约束,可以使用ALTER TABLE DROP语句,形式如下:ALTER TABLE table_name DROP UNIQUE (column_name);如果约束有名称,也可以使用指定名称的方式删除该约束,语句形式为如下:ALTER TABLE table DROP CONSTRAINT constraint_name;视图USER_CONSTRAINTS 通过查询数据字典视图USER_CONSTRAINTS,可以了解当前用户模式中所有约束的基本信息。列类型说明ownerVARACHAR2(30)约束的所有者constraint_nameVARACHAR2(30)约束名constraint_typeVARACHAR2(1)约束类型,值为P、R、C、U、V或Otable_nameVARACHAR2(30)约束定义所针对的表名statusVARACHAR2(8)约束的状态。值为ENABLED或DISABLEDdeferrableVARACHAR2(14)该约束是否为可延迟的。值为DEFERRABLE或NOTDEFERRABLEdeferredVARACHAR2(9)约束是立即执行还是延迟执行。值为IMMEDIATE或DEFERRED视图USER_CON
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年合肥市香格里拉小学教师招聘备考考试题库附答案解析
- 四川省广元市宝轮中学2025年自主公开考核招聘教师(4人)考试参考试题及答案解析
- 2025下半年广东佛山市三水区疾病预防控制中心招聘事业编制工作人员7人备考考试试题及答案解析
- 2025下半年北京门头沟区卫生健康系统事业单位招聘卫生专业技术人员101人备考模拟试题及答案解析
- 2025天津联通智家工程师、营业员招聘7人备考考试试题及答案解析
- 2025上海采购与招标管理中心招聘采购项目负责人岗位1人备考考试题库附答案解析
- 2025年福建三明建宁县莲连好城市投资发展有限公司招聘6人备考考试题库附答案解析
- 2025江西南昌地区医患纠纷调处中心人员招聘1人备考考试题库附答案解析
- 2025内蒙古自治区人民医院科研助理岗位(第二批)招聘3人考试参考试题及答案解析
- 第三单元分数除法应用题(试题)-六年级上册数学人教版
- 教学查房流程
- 《建筑材料与构造》课件-3.建筑材料的基本要求与选用
- 《员工行为准则培训》课件
- 仓管员晋升组长述职报告
- 《慢性乙型肝炎防治指南(2022年版)-》解读
- 《厨房安全操作培训》课件
- 第七讲推动构建新时代的大国关系格局-2024年形势与政策(课件)
- 机场安检突发事件应急预案
- IATF-16949质量管理体系标准培训课件
- 2024-2025学年小学科学二年级上册(2024)教科版(2024)教学设计合集
- 汽车驾驶员(技师)考试题及答案
评论
0/150
提交评论