[b][size=large]一、SQLPLUS编辑命令[/size][/b]
假设当前执行命令为:select * from tab;
[b](a)ppend[/b]:添加文本到缓冲区当前行尾
(注:a后面跟2个空格)
[b](c)hange/old/new[/b]:在当前行用新的文本替换旧的文本
[b](c)hange/text[/b]:从当前行删除文本
[b]del[/b]:删除当前行
[b]del n[/b]:删除第n行
[b](i)nput 文本[/b]:在当前行之后添加一行
[b](l)ist[/b]:显示缓冲区中所有行
[b](l)ist n[/b]: 显示缓冲区中第 n 行
[b](l)ist m n[/b]:显示缓冲区中 m 到 n 行
[b]run[/b]:执行当前缓冲区的命令
[b]/[/b]:执行当前缓冲区的命令
[b]r[/b]:执行当前缓冲区的命令
[b]@文件名[/b]:运行调入内存的sql文件,如:
[b]edit s <回车>[/b]:如果当前目录下不存在s.sql文件,则系统自动生成s.sql文件,
在其中输入"select * from tab;",存盘退出。
[b]@s<回车>[/b]:系统会自动查询当前用户下的所有表、视图、同义词。
[b]@@文件名[/b]:在.sql文件中调用令一个.sql文件时使用
[b]save 文件名[/b]:将缓冲区的命令以文件方式存盘,缺省文件扩展名为.sql
[b]get 文件名[/b]:调入存盘的sql文件
[b]start 文件名[/b]:运行调入内存的sql文件
[b]spool 文件名[/b]:把这之后的各种操作及执行结果"假脱机"即存盘到磁盘文件上, 默认文件扩展名为.lst
[b]spool[/b]:显示当前的"假脱机"状态
[b]spool off[/b]:停止输出,例:
[b]exit[/b]:退出SQL*PLUS
[b]desc 表名[/b]:显示表的结构
[b]show user[/b]:显示当前连接用户
[b]show error[/b]:显示错误
[b]show all[/b]:显示所有68个系统变量值
[b]edit[/b]:打开默认编辑器,Windows系统中默认是notepad.exe,把缓冲区中最后一条SQL语句调入afiedt.buf文件中进行编辑
[b]edit 文件名[/b]:把当前目录中指定的.sql文件调入编辑器进行编辑
[b]clear screen[/b]:清空当前屏幕显示
[b][size=large]二、表操作命令[/size][/b]
[b]dictionary[/b]:全部数据字典表的名称和解释,它有一个同义词dict
[b]dict_column[/b]:全部数据字典表里字段名称和解释
如果我们想查询跟索引有关的数据字典时,可以用下面这条SQL语句:
如果我们想知道user_indexes表各字段名称的详细含义,可以用下面这条SQL语句:
依此类推,就可以轻松知道数据字典的详细名称和解释,不用查看ORACLE的其它文档资料了。
下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。
[b]1、用户[/b]
[b]2、表[/b]
[b]3、索引[/b]
[b]4、序列号[/b]
[b]5、视图[/b]
[b]6、同义词[/b]
[b]7、约束条件[/b]
[b]8、存储函数和过程[/b]
[b][size=large]三、数据库维护相关命令[/size][/b]
1、得到数据库名和创建日期
2、ORACLE数据库的计算机的主机名,ORACLE数据库的实例名及ORACLE数据库管理系统的版本信息
3、为了知道oracle数据库版本的一些特殊信息
4、获取控制文件名字
5、得到Oracle数据库的重做日志配置信息
6、获取oracle的每个重做日志(成员)文件所存放的具体位置
7、知道ORACLE数据库的备份和恢复策略和归档文件的具体位置
8、知道ORACLE数据库中到底有多少表空间以及每个表空间的状态
9、知道每个表空间存在哪个磁盘上以及文件的名字等信息
10、知道Oracle数据库系统上到底有多少用户和都是什么时候创建的
11、从控制文件中取出信息涉及到以下一些相关的命令
12、控制文件由两大部份组成:可重用的部份和不可重用的部分。可重用的部分的大小可用CONTROL_FILE_RECORD_KEEP_TIME参数来控制,该参数的默认值为7天,即可重用的部份的内容保留7天,一周之后这部份的内容可能被覆盖。可重用的部份是供恢复管理器来使用的,这部份的内容可以自动扩展。Oracle数据库管理员可以使用CREAT DATABASE或CREAT CONTROLFILE语句中的下列关键字(参数)来间接影响不可重用的部份的大小:
13、查看控制文件的配置
14、如果您的显示被分成了两部分,您需要使用类似于set pagesize 100的SQL*Plus命令先格式化输出。有关的格式化输出命令有以下这些:
15、知道控制文件中的所有数据文件(DATAFILE),表空间(TABLESPACE),和重做日志(REDO LOG)所使用的记录情况
16、获取控制文件名字
17、如何在一个已经安装的Oracle数据库中添加或移动控制文件呢?
以下是在一个已经安装的Oracle数据库中添加或移动控制文件的具体步骤:
a、利用数据字典v$controlfile来获取现有控制文件名字。
b、正常关闭Oracle数据库。
c、将新的控制文件名添加到参数文件的CONTROL_FILES参数中。
d、使用操作系统的复制命令将现有控制文件复制到指定位置。
e、重新启动Oracle数据库。
f、利用数据字典v$controlfile来验证新的控制文件名字是否正确。
g、如果有误重做上述操作,如果无误删除无用的旧控制文件。
注:如果您使用了服务器初始化参数文件(SPFILE),您不能关闭Oracle数据库而且应该在第3步使用alter system set control_files的Oracle命令来改变控制文件的位置。
18、由于控制文件是一个极其种要的文件,除了以上所说的将控制文件的多个副本存在不同的硬盘上的保护措施外,在数据库的结构变化之后,您应立即对控制文件进行备份。可以用Oracle命令来对控制文件进行备份:
19、您也可将备份到一个追踪文件中。该追踪文件包含有重建控制文件所需的SQL语句。可使用以下SQL语句来产生这一追踪文件:
20、正常关闭oracle命令
假设当前执行命令为:select * from tab;
[b](a)ppend[/b]:添加文本到缓冲区当前行尾
代码:a order by tname
结果:select * from tab order by tname;
(注:a后面跟2个空格)
[b](c)hange/old/new[/b]:在当前行用新的文本替换旧的文本
代码:c/*/tname
结果:select tname from tab;
[b](c)hange/text[/b]:从当前行删除文本
代码:c/tab
结果:select tname from ;
[b]del[/b]:删除当前行
[b]del n[/b]:删除第n行
[b](i)nput 文本[/b]:在当前行之后添加一行
[b](l)ist[/b]:显示缓冲区中所有行
[b](l)ist n[/b]: 显示缓冲区中第 n 行
[b](l)ist m n[/b]:显示缓冲区中 m 到 n 行
[b]run[/b]:执行当前缓冲区的命令
[b]/[/b]:执行当前缓冲区的命令
[b]r[/b]:执行当前缓冲区的命令
[b]@文件名[/b]:运行调入内存的sql文件,如:
[b]edit s <回车>[/b]:如果当前目录下不存在s.sql文件,则系统自动生成s.sql文件,
在其中输入"select * from tab;",存盘退出。
[b]@s<回车>[/b]:系统会自动查询当前用户下的所有表、视图、同义词。
[b]@@文件名[/b]:在.sql文件中调用令一个.sql文件时使用
[b]save 文件名[/b]:将缓冲区的命令以文件方式存盘,缺省文件扩展名为.sql
[b]get 文件名[/b]:调入存盘的sql文件
[b]start 文件名[/b]:运行调入内存的sql文件
[b]spool 文件名[/b]:把这之后的各种操作及执行结果"假脱机"即存盘到磁盘文件上, 默认文件扩展名为.lst
[b]spool[/b]:显示当前的"假脱机"状态
[b]spool off[/b]:停止输出,例:
SQL> spool a
SQL> spool
正假脱机到 A.LST
SQL> spool off
SQL> spool
当前无假脱机
[b]exit[/b]:退出SQL*PLUS
[b]desc 表名[/b]:显示表的结构
[b]show user[/b]:显示当前连接用户
[b]show error[/b]:显示错误
[b]show all[/b]:显示所有68个系统变量值
[b]edit[/b]:打开默认编辑器,Windows系统中默认是notepad.exe,把缓冲区中最后一条SQL语句调入afiedt.buf文件中进行编辑
[b]edit 文件名[/b]:把当前目录中指定的.sql文件调入编辑器进行编辑
[b]clear screen[/b]:清空当前屏幕显示
[b][size=large]二、表操作命令[/size][/b]
[b]dictionary[/b]:全部数据字典表的名称和解释,它有一个同义词dict
[b]dict_column[/b]:全部数据字典表里字段名称和解释
如果我们想查询跟索引有关的数据字典时,可以用下面这条SQL语句:
SQL>select * from dictionary where instr(comments,'index')>0;
如果我们想知道user_indexes表各字段名称的详细含义,可以用下面这条SQL语句:
SQL>select column_name,comments from dict_columns where table_name='USER_INDEXES';
依此类推,就可以轻松知道数据字典的详细名称和解释,不用查看ORACLE的其它文档资料了。
下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。
[b]1、用户[/b]
--查看当前用户的缺省表空间
SQL>select username,default_tablespace from user_users;
--查看当前用户的角色
SQL>select * from user_role_privs;
--查看当前用户的系统权限和表级权限
SQL>select * from user_sys_privs;
SQL>select * from user_tab_privs;
[b]2、表[/b]
--查看用户下所有的表
SQL>select * from user_tables;
--查看名称包含log字符的表
SQL>select object_name,object_id from user_objects
where instr(object_name,'LOG')>0;
--查看某表的创建时间
SQL>select object_name,created from user_objects where object_name=upper('&table_name');
--查看某表的大小
SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
where segment_name=upper('&table_name');
--查看放在ORACLE的内存区里的表
SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;
[b]3、索引[/b]
--查看索引个数和类别
SQL>select index_name,index_type,table_name from user_indexes order by table_name;
--查看索引被索引的字段
SQL>select * from user_ind_columns where index_name=upper('&index_name');
--查看索引的大小
SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
where segment_name=upper('&index_name');
[b]4、序列号[/b]
--查看序列号,last_number是当前值
SQL>select * from user_sequences;
[b]5、视图[/b]
--查看视图的名称
SQL>select view_name from user_views;
--查看创建视图的select语句
SQL>set view_name,text_length from user_views;
SQL>set long 2000; 说明:可以根据视图的text_length值设定set long 的大小
SQL>select text from user_views where view_name=upper('&view_name');
[b]6、同义词[/b]
--查看同义词的名称
SQL>select * from user_synonyms;
[b]7、约束条件[/b]
--查看某表的约束条件
SQL>select constraint_name, constraint_type,search_condition, r_constraint_name
from user_constraints where table_name = upper('&table_name');
SQL>select c.constraint_name,c.constraint_type,cc.column_name
from user_constraints c,user_cons_columns cc
where c.owner = upper('&table_owner') and c.table_name = upper('&table_name')
and c.owner = cc.owner and c.constraint_name = cc.constraint_name
order by cc.position;
[b]8、存储函数和过程[/b]
--查看函数和过程的状态
SQL>select object_name,status from user_objects where object_type='FUNCTION';
SQL>select object_name,status from user_objects where object_type='PROCEDURE';
--查看函数和过程的源代码
SQL>select text from all_source where owner=user and name=upper('&plsql_name');
[b][size=large]三、数据库维护相关命令[/size][/b]
1、得到数据库名和创建日期
SELECT name, created, log_mode, open_mode FROM v$database;
2、ORACLE数据库的计算机的主机名,ORACLE数据库的实例名及ORACLE数据库管理系统的版本信息
SELECT host_name, instance_name, version FROMv$instance
;
3、为了知道oracle数据库版本的一些特殊信息
select * from v$version;
4、获取控制文件名字
select * from v$controlfile;
5、得到Oracle数据库的重做日志配置信息
SELECT group#, members, bytes, status, archived FROM v$log;
select GROUP#,MEMBER from v$logfile;
6、获取oracle的每个重做日志(成员)文件所存放的具体位置
select * from v$logfile;
7、知道ORACLE数据库的备份和恢复策略和归档文件的具体位置
archive log list
8、知道ORACLE数据库中到底有多少表空间以及每个表空间的状态
select tablespace_name, block_size, status, contents, logging from dba_tablespaces;
select tablespace_name, status from dba_tablespaces;
9、知道每个表空间存在哪个磁盘上以及文件的名字等信息
SELECT file_id, file_name, tablespace_name, status, bytes from dba_data_files;
select file_name, tablespace_name from dba_data_files;
10、知道Oracle数据库系统上到底有多少用户和都是什么时候创建的
select username,created from dba_users;
select username, DEFAULT_TABLESPACE from dba_users;
11、从控制文件中取出信息涉及到以下一些相关的命令
select * from v$archived
select * from v$archived_log
select * from v$backup
select * from v$database
select * from v$datafile
select * from v$log
select * from v$logfile
select * from v$loghist
select * from v$tablespace
select * from v$tempfile
12、控制文件由两大部份组成:可重用的部份和不可重用的部分。可重用的部分的大小可用CONTROL_FILE_RECORD_KEEP_TIME参数来控制,该参数的默认值为7天,即可重用的部份的内容保留7天,一周之后这部份的内容可能被覆盖。可重用的部份是供恢复管理器来使用的,这部份的内容可以自动扩展。Oracle数据库管理员可以使用CREAT DATABASE或CREAT CONTROLFILE语句中的下列关键字(参数)来间接影响不可重用的部份的大小:
MAXDATAFILES
MAXINSTANCES
MAXLOGFILES
MAXLOGHISTORY
MAXLOGMEMBERS
13、查看控制文件的配置
SELECT type, record_size, records_total, records_used FROM v$controlfile_record_section;
14、如果您的显示被分成了两部分,您需要使用类似于set pagesize 100的SQL*Plus命令先格式化输出。有关的格式化输出命令有以下这些:
record_size: 为每个记录的字节数。
records_total:为该段所分配的记录个数。
records_used:为该段所使用的记录个数。
15、知道控制文件中的所有数据文件(DATAFILE),表空间(TABLESPACE),和重做日志(REDO LOG)所使用的记录情况
SELECT type, record_size, records_total, records_used
FROM v$controlfile_record_section
WHERE type IN ( 'DATAFILE', 'TABLESPACE', 'REDO LOG');
16、获取控制文件名字
select value from v$parameter where name ='control_files';
或者:
select * from v$controlfile
17、如何在一个已经安装的Oracle数据库中添加或移动控制文件呢?
以下是在一个已经安装的Oracle数据库中添加或移动控制文件的具体步骤:
a、利用数据字典v$controlfile来获取现有控制文件名字。
b、正常关闭Oracle数据库。
c、将新的控制文件名添加到参数文件的CONTROL_FILES参数中。
d、使用操作系统的复制命令将现有控制文件复制到指定位置。
e、重新启动Oracle数据库。
f、利用数据字典v$controlfile来验证新的控制文件名字是否正确。
g、如果有误重做上述操作,如果无误删除无用的旧控制文件。
注:如果您使用了服务器初始化参数文件(SPFILE),您不能关闭Oracle数据库而且应该在第3步使用alter system set control_files的Oracle命令来改变控制文件的位置。
SQL> alter system set control_files =
'D:\Disk3\CONTROL01.CTL',
'D:\Disk6\CONTROL02.CTL',
'D:\Disk9\CONTROL03.CTL' SCOPE=SPFILE;
18、由于控制文件是一个极其种要的文件,除了以上所说的将控制文件的多个副本存在不同的硬盘上的保护措施外,在数据库的结构变化之后,您应立即对控制文件进行备份。可以用Oracle命令来对控制文件进行备份:
alter database backup controlfile to 'D:\backup\control.bak';
19、您也可将备份到一个追踪文件中。该追踪文件包含有重建控制文件所需的SQL语句。可使用以下SQL语句来产生这一追踪文件:
alter database backup controlfile to trace;
20、正常关闭oracle命令
shutdown immeditae