您的位置:首页 > 数据库 > Oracle

Oracle数据库常用操作命令(一)

2011-06-16 13:38 726 查看
SPOOL将屏幕所有的输出输出到指定文件[align=left]-- spool 文件路径名;[/align][align=left]spool g:\mysql.sql;[/align][align=left]--业务操作[/align][align=left]--结束输出[/align][align=left]spool off;[/align][align=left][/align]执行一个SQL脚本文件[align=left]我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。[/align][align=left]--start file_name[/align][align=left]-- @ file_name[/align][align=left]start g:\mysql.sql;[/align][align=left]@ g:\mysql.sql;[/align][align=left][/align]对当前的输入进行编辑[align=left]edit[/align][align=left]ed[/align][align=left][/align]重新运行上一次运行的sql语句[align=left]/[/align][align=left][/align]显示一个表的结构[align=left]desc table_name ;[/align][align=left][/align]清屏[align=left]clear screen;[/align][align=left][/align]退出[align=left]exit;[/align][align=left][/align]置当前session是否对修改的数据进行自动提交[align=left]--SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}[/align][align=left]set autocommit on;[/align][align=left][/align]在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句[align=left]-- SET ECHO {ON|OFF};[/align][align=left]set echo on;[/align][align=left][/align]是否显示当前sql语句查询或修改的行数[align=left]--SET FEED[BACK] {6|n|ON|OFF}[/align][align=left]-- 默认只有结果大于6行时才显示结果的行数。如果set feedback 1 ,则不管查询到多少行都返回。当为off 时,一律不显示查询的行数[/align][align=left]set feedback 1;[/align][align=left][/align]是否显示列标题[align=left]--当set heading off 时,在每页的上面不显示列标题,而是以空白行代替[/align][align=left]--SET HEA[DING] {ON|OFF}[/align][align=left]set heading on;[/align][align=left][/align]设置一行可以容纳的字符数[align=left]-- 如果一行的输出内容大于设置的一行可容纳的字符数,则折行显示[/align][align=left]--SET LIN[ESIZE] {80|n}[/align][align=left]set linesize 100;[/align][align=left][/align]设置页与页之间的分隔[align=left]-- SET NEWP[AGE] {1|n|NONE}[/align][align=left]--当set newpage 0 时,会在每页的开头有一个小的黑方框。[/align][align=left]--当set newpage n 时,会在页和页之间隔着n个空行。[/align][align=left]--当set newpage none 时,会在页和页之间没有任何间隔[/align][align=left]set newpage 1;[/align][align=left][/align]设置一页有多少行数[align=left]--如果设为0,则所有的输出内容为一页并且不显示列标题[/align][align=left]--SET PAGES[IZE] {24|n}[/align][align=left]set pagesize 20;[/align][align=left][/align]是否显示用DBMS_OUTPUT.PUT_LINE包进行输出的信息。[align=left]--SET SERVEROUT[PUT] {ON|OFF}[/align][align=left]set serveroutput on;[/align][align=left][/align]是否在屏幕上显示输出的内容,主要用与SPOOL结合使用。[align=left]--在用spool命令将一个大表中的内容输出到一个文件中时,将内容输出在屏幕上会耗费大量的时间,[/align][align=left]--设置set termspool off后,则输出的内容只会保存在输出文件中,不会显示在屏幕上,极大的提高了spool的速度[/align][align=left]--SET TERM[OUT] {ON|OFF}[/align][align=left]set termout off;[/align][align=left][/align]在dos里连接oracle数据库[align=left]CONNECT user_name/passwd@l_jiayou[/align][align=left][/align]在sql*plus中连接到指定的数据库[align=left]CONNECT user_name/passwd@数据库名称[/align][align=left][/align]显示当前用户[align=left]show user;[/align][align=left][/align]显示当前环境变量的值:[align=left]show all;[/align][align=left][/align]显示当前在创建函数、存储过程、触发器、包等对象的错误信息[align=left]Show error[/align][align=left][/align]显示数据库的版本:[align=left]--show REL[EASE][/align][align=left]show release[/align][align=left][/align]显示SGA的大小[align=left]show SGA[/align][align=left][/align]显示初始化参数的值:[align=left]--show PARAMETERS [parameter_name][/align][align=left]show parameters;[/align][align=left][/align][align=left][/align]查看当前用户的缺省表空间[align=left]select username,default_tablespace from user_users[/align][align=left][/align]查看当前用户的角色[align=left]select * from user_role_privs[/align][align=left][/align]查看当前用户的系统权限和表级权限[align=left]select * from user_sys_privs;[/align][align=left]select * from user_tab_privs;[/align][align=left][/align][align=left][/align]查看用户下所有的表[align=left]select * from user_tables[/align][align=left][/align]查看名称包含log字符的表[align=left]select object_name,object_id from user_objects where instr(object_name,'LOG')>0;[/align][align=left][/align][align=left][/align]查看某表的创建时间[align=left]select object_name,created from user_objects where object_name=upper('&table_name');[/align][align=left][/align]查看某表的大小[align=left]select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&table_name');[/align][align=left][/align]查看放在ORACLE的内存区里的表[align=left]select table_name,cache from user_tables where instr(cache,'Y')>0;[/align][align=left][/align]查看索引个数和类别[align=left]select index_name,index_type,table_name from user_indexes order by table_name;[/align][align=left][/align]查看索引被索引的字段[align=left]select * from user_ind_columns where index_name=upper('&index_name');[/align][align=left][/align]查看索引的大小[align=left]select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&index_name');[/align][align=left][/align]查看序列号,last_number是当前值[align=left]select * from user_sequences;[/align][align=left][/align]查看视图的名称[align=left]--select view_name from user_views;[/align][align=left][/align]查看创建视图的select语句[align=left]select view_name,text_length from user_views;[/align][align=left]set long 2000; 说明:可以根据视图的text_length值设定set long 的大小[/align][align=left]select text from user_views where view_name=upper('&view_name');[/align][align=left][/align]查看同义词的名称[align=left]select * from user_synonyms[/align][align=left][/align]查看某表的约束条件[align=left]select constraint_name, constraint_type,search_condition, r_constraint_name[/align][align=left] from user_constraints where table_name = upper('&table_name');[/align][align=left] [/align][align=left]select c.constraint_name,c.constraint_type,cc.column_name[/align][align=left]from user_constraints c,user_cons_columns cc where c.owner = upper('&table_owner') and c.table_name = upper('&table_name')[/align][align=left]and c.owner = cc.owner and c.constraint_name = cc.constraint_name order by cc.position;[/align][align=left][/align]查看函数和过程[align=left]select object_name,status from user_objects where object_type='FUNCTION';[/align][align=left]select object_name,status from user_objects where object_type='PROCEDURE';[/align][align=left][/align]查看函数和过程的源代码[align=left]select text from all_source where owner=user and name=upper('&plsql_name');[/align][align=left][/align]查看表空间的名称及大小[align=left]select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size[/align][align=left] from dba_tablespaces t, dba_data_files d[/align][align=left] where t.tablespace_name = d.tablespace_name[/align][align=left] group by t.tablespace_name;[/align][align=left] [/align]查看表空间物理文件的名称及大小[align=left] select tablespace_name, file_id, file_name,[/align][align=left] round(bytes/(1024*1024),0) total_space[/align][align=left] from dba_data_files[/align][align=left] order by tablespace_name;[/align][align=left][/align]查看回滚段名称及大小[align=left] select segment_name, tablespace_name, r.status,[/align][align=left] (initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,[/align][align=left] max_extents, v.curext CurExtent[/align][align=left] From dba_rollback_segs r, v$rollstat v[/align][align=left] Where r.segment_id = v.usn(+)[/align][align=left] order by segment_name ;[/align][align=left][/align]查看控制文件[align=left] select name from v$controlfile;[/align][align=left] [/align]查看日志文件[align=left] select member from v$logfile;[/align][align=left] [/align]查看表空间的使用情况[align=left]select sum(bytes)/(1024*1024) as free_space,tablespace_name[/align][align=left]from dba_free_space group by tablespace_name;[/align][align=left][/align][align=left]SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,[/align][align=left] (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"[/align][align=left] FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C[/align][align=left] WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;[/align][align=left] [/align]查看数据库库对象[align=left]select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status;[/align][align=left][/align]查看数据库的版本[align=left]Select version FROM Product_component_version[/align][align=left] Where SUBSTR(PRODUCT,1,6)='Oracle';[/align][align=left][/align]查看数据库的创建日期和归档方式[align=left]Select Created, Log_Mode, Log_Mode From V$Database;[/align][align=left][/align]用系统管理员,查看当前数据库有几个用户连接:[align=left]select username,sid,serial# from v$session;[/align][align=left][/align]如果要停某个连接用[align=left]alter system kill session 'sid,serial#';[/align][align=left][/align]如果这命令不行,找它UNIX的进程数[align=left]select pro.spid from v$session ses,v$process pro where ses.sid=21 and ses.paddr=pro.addr;[/align][align=left][/align][align=left]--说明:21是某个连接的sid数,然后用 kill 命令杀此进程号。[/align][align=left][/align][align=left][/align][align=left]例子:[/align][align=left]表test122,有两个字段t_id varchar2(20),t_name varchar2(10);[/align][align=left]要求t_id的值为当天日期加上0001,0002的形式递加作为序列,如20070209_0001,200709_0002;[/align][align=left]思路:查讯当天的t_id的最大值加1,然后生成序列;[/align][align=left]insert into test122 values[/align][align=left](to_char(sysdate,'yyyymmdd')||'_'||(select lpad(to_number(ltrim(substr(max(t_id),length(max(t_id))-3),'0'))+1,4,0)[/align][align=left]from test122 where substr(t_id,0,length(t_id)-5)=to_char(sysdate,'yyyymmdd')),'ok');[/align][align=left][/align][align=left][/align]树形递归查询:Start with...Connect By[align=left]准备:[/align][align=left]create table mymenu(tree_id varchar(10),tree_pid varchar(10),tree_lable varchar(50),tree_link varchar(100))[/align][align=left][/align][align=left]insert into mymenu values('1','0','蔬菜','')[/align][align=left]insert into mymenu values('2','0','水果','')[/align][align=left]insert into mymenu values('3','0','谷物','')[/align][align=left]insert into mymenu values('4','0','肉类','')[/align][align=left][/align][align=left]insert into mymenu values('5','1','白菜','')[/align][align=left]insert into mymenu values('6','1','茄子','htt://www.baidu.com')[/align][align=left][/align][align=left]insert into mymenu values('7','5','四月白','http://www.google.cn')[/align][align=left]insert into mymenu values('8','5','冬白菜','htt://www.baidu.com')[/align][align=left][/align][align=left]insert into mymenu values('9','2','西瓜','http://www.google.cn')[/align][align=left]insert into mymenu values('10','2','桔子','htt://www.baidu.com')[/align][align=left][/align][align=left]insert into mymenu values('11','3','大米','http://www.google.cn')[/align][align=left]insert into mymenu values('12','3','大豆','htt://www.baidu.com')[/align][align=left][/align][align=left]insert into mymenu values('13','4','猪肉','http://www.google.cn')[/align][align=left]insert into mymenu values('14','4','鱼','')[/align][align=left][/align][align=left]insert into mymenu values('15','14','昌鱼','http://www.google.cn')[/align][align=left]insert into mymenu values('16','14','王八','htt://www.baidu.com')[/align][align=left][/align][align=left]从根往树末梢查询:[/align][align=left]select * from mymenu start with tree_pid='0' connect by prior tree_id=tree_pid;//查询所有[/align][align=left]select * from mymenu start with tree_id='1' connect by prior tree_id=tree_pid; //查询指定ID[/align][align=left][/align][align=left]从树末梢向根查询:[/align][align=left]select * from mymenu start with tree_pid='0' connect by prior tree_pid=tree_id[/align][align=left]select * from mymenu start with tree_id='8' connect by prior tree_pid=tree_id[/align][align=left][/align][align=left]如果还有其他条件用and 加在语句后面[/align][align=left]select * from mymenu start with tree_pid='0' connect by prior tree_id=tree_pid and tree_link is null[/align][align=left]select * from mymenu start with tree_pid='0' connect by prior tree_id=tree_pid and tree_link is not null[/align][align=left][/align][align=left]oracle客户端连接的文件配置:[/align][align=left]oracle的目录/network/ADMIN/tnsnames.ora[/align][align=left]内容:[/align][align=left]MIMI(客户端连接的名称) =[/align][align=left](DESCRIPTION =[/align][align=left] (ADDRESS_LIST =[/align][align=left] (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.254)(PORT = 1521))[/align][align=left] )[/align][align=left] (CONNECT_DATA =[/align][align=left] (SERVICE_NAME = NTDB.RUNNER)[/align][align=left] )[/align][align=left])[/align][align=left][/align][align=left][/align]修改表结构[align=left]alter table m_gl_gls3_history add (aaaaa varchar2(20),bbbbb varchar2(10))
alter table m_gl_gls3_history modify (aaaaa varchar2(10))
--要改变表中的字段的类型或缩小字段长度,该字段的所有记录值必须为空。[/align][align=left]--如果改字段存在记录值,则该字段长度只能扩大,不能缩小。[/align][align=left]alter table m_gl_gls3_history drop (aaaaa , bbbbb )[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: