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;