oracle常用命令

 

Oracle常用命令
说明:本文档有cuizong007在工作中总结的一些实际的常用操作(linux环境和windows环境基本上没有太大的区别),本文档难免有些错误之处,还请多多包涵,作者邮箱:[email protected]欢迎进行技术交流。
Author:cuizong007
Date:2012-03-14
创建表空间命令:
SQL>CREATE TABLESPACE 表空间名 LOGGING DATAFILE
'/home/oracle/oradata/test/DB1.dbf' SIZE 500M AUTOEXTEND ON NEXT 10240K MAXSIZE 2000M,
'/home/oracle/oradata/test/DB2.dbf' SIZE 500M AUTOEXTEND ON NEXT 10240K MAXSIZE 2000M,
'/home/oracle/oradata/test/DB3.dbf' SIZE 500M AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
命令详解:
CREATE TABLESPACE(创建表空间的命令) ZWDB(要创建的表空间的名称,可以任意起名) LOGGING (表明这个表空间下的所有用户对象的日志属性) DATAFILE (指定文件的位置和大小)
'/home/oracle/oradata/test/DB1.dbf'(存放在数据的具体路径文件)
SIZE 500M(文件的大小) AUTOEXTEND ON NEXT 10240K MAXSIZE 2000M,
'/home/oracle/oradata/test/DB2.dbf'(存放在数据的具体路径文件)
  SIZE 500M (文件的大小)AUTOEXTEND ON NEXT 10240K MAXSIZE 2000M,
'/home/oracle/oradata/test/DB3.dbf'(存放在数据的具体路径文件)
  SIZE 500M (文件的大小)AUTOEXTEND ON NEXT 10240K MAXSIZE
UNLIMITED(未限制大小) EXTENT MANAGEMENT LOCAL (用二进制的方式管理磁盘) SEGMENT SPACE MANAGEMENT(分区大小由系统自动确定)  AUTO(只能使用在本地管理的表空间中);
 
添加一个用户,并指定表空间:
SQL>create user 用户名 identified by 密码default tablespace 表空间名 temporary tablespace temp;
 
删除一个用户:SQL>drop user 用户名 cascade;
 
给用户授权:SQL>grant dba to 用户名;
 
删除一个表空间并删除数据:
SQL>drop tablespace 表空间名 including cascade and datafiles;
 
查看所有表空间:SQL>select tablespace_name from dba_tablespace;
查看所有表空间的占用情况:
SQL>select    t.tablespace_name,   round(sum(bytes/(1024*1024)),0)   ts_size  
                             from   dba_tablespaces t,   dba_data_files d  
                             where   t.tablespace_name   =   d.tablespace_name  
              group   by   t.tablespace_name;  
         方法二(已用):
SQL>select tablespace_name ,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;
        
         方法三(剩余):
SQL>select tablespace_name ,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;
        
         方法四(百分比):
SQL>select b.file_id file_ID, b.tablespace_name tablespace_name, b.bytes Bytes,
                                          (b.bytes-sum(nvl(a.bytes,0))) used,
                                          sum(nvl(a.bytes,0)) free,
                                          sum(nvl(a.bytes,0))/(b.bytes)*100   Percent
                                 from dba_free_space a,dba_data_files b 
                                 where a.file_id=b.file_id 
                                 group by b.tablespace_name,b.file_id,b.bytes 
                                 order by b.file_id;
        
         方法五(中文版):
SQL> select b.file_id 文件ID号, b.tablespace_name 表空间名,    b.bytes 字节数,
                                          (b.bytes-sum(nvl(a.bytes,0))) 已使用,
                                          sum(nvl(a.bytes,0)) 剩余空间,
                                          sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比  
                                 from dba_free_space a,dba_data_files b 
                                 where a.file_id=b.file_id 
                                 group by b.tablespace_name,b.file_id,b.bytes 
                                 order by b.file_id;
 
创建用户并指定表空间:
SQL>create user 用户名 identified by 密码 defauft tablespace 表空间 temporaty tablespace temp;
 
给某一用户授权:SQL>grant dba to 用户名;
 
查看oracle的所用用户:SQL>select * from all_users;
 
删除oracle某一用户:SQL>drop user 用户名 cascade;
 
修改oracle某一字段:SQL>alter table 列名 modify (字段,约束条件);
 
增加oracle某一个字段:SQL>alter table 表名 add (字段,约束条件);
 
删除一个表的所有数据:SQL>truncate table 表名;
 
添加一个主键:SQL>alter table 表名 add constraint 主键名(任意) primary key(字段);
 
添加一个外键:SQL>alter table 表名 add constraint 外键名(任意) foreign key(字段);
 
主键和外键关联:
SQL>alter table 表名1 add constraint foreign key(字段1) reference 表名1(字段2);
 
当误删除某些表时,可以通过命令恢复回来:SQL>flashback table 表名 to before drop;
 
用来删除回收站中所有的表:SQL> purge recyclebin; 
 
用来删除指定的表SQL> purge table table_name;
 

你可能感兴趣的:(oracle,职场,休闲,Oracle常用命令)