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

Oracle中怎样查找表名,表空间,查看日期,to_char用法,查看用户权限

2012-09-20 10:48 405 查看
查看用户和默认表空间的关系。

select username,default_tablespace from dba_users;

select username,default_tablespace,temporary_tablespace from user_users;

oracle数据库的表空间在:<oracle_base>oradata/数据库实例/这些就是相应的表空间

1查看 表所对应的用户:

SQL> select table_name, distinct(owner) from all_tables where table_name='BOOK';

TABLE_NAME OWNER

------------------------------ ------------------------------

BOOK SCOTT

1.查看表结构:desc表名

//查看日期:

SQL> select to_char(sysdate,'yyyy/mm/dd','nls_date_language=American') from dual

;

TO_CHAR(SY

----------

2012/09/20

SQL> select to_char(sysdate,'Month DDth,YYYY') from dual;

TO_CHAR(SYSDATE,

----------------

9月 20TH,2012

对于:to_char用法:http://wenku.baidu.com/view/c6de3cd276a20029bd642d5a.html

2.查看当前用户的表:

select table_name from user_tables;

oracle创建数据表同时指定其所在的表空间

SQL> create table BOOK1(

2 NO CHAR(8) PRIMARY KEY,

3 TITLE VARCHAR2(50) NOT NULL,

4 AUTHOR VARCHAR(20),

5 PUBLISH VARCHAR(20),

6 PUB_DATE DATE,

7 PRICE NUMBER(6,2)

8 )tablespace system;

表已创建。

//下面如果用户没指定表的表空间,则会指定其为user表空间;可以通过后面列出的方法验证

SQL> create table BOOK1(

2 NO CHAR(8) PRIMARY KEY,

3 TITLE VARCHAR2(50) NOT NULL,

4 AUTHOR VARCHAR(20),

5 PUBLISH VARCHAR(20),

6 PUB_DATE DATE,

7 PRICE NUMBER(6,2)

8 );

验证表所在的表空间

SQL> select table_name,tablespace_name from all_tables;

SQL> select table_name,tablespace_name from all_tables where table_name='BOOK';

TABLE_NAME TABLESPACE_NAME

------------------------------ ------------------------------

BOOK USERS

SQL> select table_name,tablespace_name from all_tables where table_name='BOOK1';

TABLE_NAME TABLESPACE_NAME

------------------------------ ------------------------------

BOOK1 SYSTEM

创建临时表空间:

SQL> CONN SCOTT/TIGER AS SYSDBA;

已连接。

SQL> create temporary tablespace MyTemp TEMPFILE

2 'F:\oracle\product\10.2.0\oradata\orcl1\MyTemp01.dbf' size 20M

3 EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M;

表空间已创建。

现在可以到相关目录下看到你创建的表空间;

53 --3:查看数据库中有哪些临时表空间。

54 select distinct tablespace_name from dba_temp_files;

TABLESPACE_NAME

------------------------------

TEMP

MYTEMP

查看数据库中哪些永久的数据表空间:

SQL> select tablespace_name from dba_data_files;

TABLESPACE_NAME

------------------------------

USERS

SYSAUX

UNDOTBS1

SYSTEM

EXAMPLE

38

查询用户和表空间之间的关系

SQL> select distinct(owner) ,tablespace_name from dba_segments;

OWNER TABLESPACE_NAME

------------------------------ ------------------------------

SYS SYSTEM

SYS SYSAUX

SYSTEM SYSTEM

CTXSYS SYSAUX

OUTLN SYSTEM

SH EXAMPLE

DMSYS SYSAUX

XDB SYSAUX

MDSYS SYSAUX

HR EXAMPLE

IX EXAMPLE

OWNER TABLESPACE_NAME

------------------------------ ------------------------------

PM EXAMPLE

WMSYS SYSAUX

EXFSYS SYSAUX

SYS UNDOTBS1

SYSTEM SYSAUX

SCOTT USERS

SYSMAN SYSAUX

OE USERS

OE EXAMPLE

DBSNMP SYSAUX

------------------------------ ------------------------------

3查看当前用户的系统权限信息

SQL> conn scott/tiger

已连接。

SQL> select * from USER_SYS_PRIVS;

USERNAME PRIVILEGE ADM

------------------------------ ---------------------------------------- ---

SCOTT UNLIMITED TABLESPACE NO

SQL>

3.查看所有用户的表名:

select table_name from all_tables;

4.查看所有表名(其中包括系统表)

select table_name from all_tables;

5.查看所有的表:

select * from tab/dba_tables/dba_objects/cat;

下面介绍Oracle查询用户表空间

◆Oracle查询用户表空间:select * from user_all_tables

◆Oracle查询所有函数和储存过程:select * from user_source

◆Oracle查询所有用户:select * from all_users.select * from dba_users

◆Oracle查看当前用户连接:select * from v$Session

◆Oracle查看当前用户权限:select * from session_privs

◆Oracle查看用户表空间使用情况:

select a.file_id "FileNo",a.tablespace_name

"Tablespace_name",

a.bytes "Bytes",a.bytes-sum(nvl(b.bytes,0)) "Used",

sum(nvl(b.bytes,0)) "Free",

sum(nvl(b.bytes,0))/a.bytes*100 "%free"

from dba_data_files a, dba_free_space b

where a.file_id = b .file_id(+)

group by a.tablespace_name ,

a.file_id,a.bytes order by a.tablespace_name;

1.查看所有用户:

select * from dba_user;

select * from all_users;

select * from user_users;

2.查看用户系统权限:

select * from dba_sys_privs;

select * from all_sys_privs;

select * from user_sys_privs;

3.查看用户对象权限:

select * from dba_tab_privs;

select * from all_tab_privs;

select * from user_tab_privs;

4.查看所有角色:

select * from dba_roles;

5.查看用户所拥有的角色:

select * from dba_role_privs;

select * from user_role_privs;

6.查看角色所拥有的权限:

select * from role_sys_privs;

select * from role_tab_privs;

7.查看所有系统权限

select * from system_privilege_map;

8.查看所有对象权限

select * from table_privilege_map;

以上是在Oracle中查看用户权限 ,

在DB2中为:

select * from syscat.dbauth

或者

get authorizations

查看sid

select * from v$instance

1 创建临时表空间

2 Sql代码

3 create temporary tablespace stbss_tmp

4 tempfile 'E:\oracle\product\10.2.0\oradata\orcl\stbss_temp01.dbf'

5 size 32m

6 autoextend on

7 next 32m maxsize 2048m

8 extent management local;

9

10

11 创建数据表空间

12 Sql代码

13 create tablespace stbss

14 logging

15 datafile 'E:\oracle\product\10.2.0\oradata\orcl\stbss01.dbf'

16 size 32m

17 autoextend on

18 next 32m maxsize 2048m

19 extent management local;

20

1) DATAFILE: 表空间数据文件存放路径

2) SIZE: 起初设置为32M

3) UNIFORM: 指定区尺寸,如不指定,区尺寸默认为64k

4) 空间名称stbss与数据文件名称 stbss.dbf 不要求相同,可随意命名.

5) AUTOEXTEND ON/OFF 表示启动/停止自动扩展表空间

6) alter database datafile ' E:\oracle\product\10.2.0\oradata\orcl\stbss01.dbf ' resize 32m; //手动修改数据文件大小为32M

21

22 创建用户并指定表空间

23 Sql代码

24 create user username identified by password

25 default tablespace stbss

26 temporary tablespace stbss_tmp;

27

28

29 给用户授予权限

30 Sql代码

31 grant connect,resource to username;

32

33 改变用户默认表空间

34

35

36 Sql代码

37 alter user username default tablespace stbss;

38

查询用户和表空间之间的关系

select distinct(owner) ,tablespace_name from dba_segments;

39

 向USERS表空间增加一个数据文件:

  SQL> alter tablespace users add datafile '/opt/oracle/oradata/eygle/users02.dbf' size 10M;

  Tablespace altered.

  SQL> select file#,name from v$datafile;

  FILE# NAME

  ---------- --------------------------------------------------

  1 /opt/oracle/oradata/eygle/system01.dbf

  2 /opt/oracle/oradata/eygle/undotbs01.dbf

  3 /opt/oracle/oradata/eygle/sysaux01.dbf

  4 /opt/oracle/oradata/eygle/users01.dbf

  5 /opt/oracle/oradata/eygle/users02.dbf

  5 rows selected.

  确认表空间文件信息:

  SQL> select file_name,file_id from dba_data_files where tablespace_name='USERS';

  FILE_NAME FILE_ID

  -------------------------------------------------- ----------

  /opt/oracle/oradata/eygle/users02.dbf 5

  /opt/oracle/oradata/eygle/users01.dbf 4

确认表空间未被存储占用:

  SQL> select segment_name,file_id,blocks from dba_extents where file_id=5;

  no rows selected

  删除表空间中的空数据文件:

  SQL> alter tablespace users drop datafile '/opt/oracle/oradata/eygle/users02.dbf';

  Tablespace altered.

  检查数据字典,这个空文件的信息已经被彻底清除了:

  SQL> select file_name,file_id from dba_data_files where tablespace_name='USERS';

  FILE_NAME FILE_ID

  -------------------------------------------------- ----------

  /opt/oracle/oradata/eygle/users01.dbf 4

40 以后以该用户登录,创建的任何数据库对象都属于stbss_tmp和stbss表空间,这就不用在每创建一个对象给其指定表空间了

41

42 删除oracle临时表空间

43 新建一个临时表空间,然后把数据库的默认临时表空间指向新建的这个,等到旧的临时表空间没人用的时候,就可以删除了

44

45 Sql代码

46 --1:查看数据库的默认临时表空间

47 select property_name, property_value

48 from database_properties

49 where property_name = 'default_temp_tablespace';

50

51 --2:创建一个新的临时表空间temp_xxxx

52 -----参考上面的创建语句

53 --3:查看数据库中有哪些临时表空间。

54 select distinct tablespace_name from dba_temp_files;

55

56 --4:把默认临时表空间从temp切换到temp_xxxx

57 alter database default temporary tablespace temp_xxxx;

58

59 --5:再次查看数据库的默认临时表空间

60 select property_name, property_value

61 from database_properties

62 where property_name = 'default_temp_tablespace';

63

64 --6:删除原来的临时表空间

65 drop tablespace temp;

删除用户:test

drop user test cascade

删除表空间:

DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES

删除表:

delete from users;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: