Oracle数据库常用命令

--查询当前系统中的所有用户  
select * from all_users

--查当前用户下所有的表:  
select * from tab where tname not like '%$%'

--查看当前用户下所有的表(详细信息)
select * from user_tables

--查数据库中所有的表
select * from all_tables

--创建一个用户(进行这项操作的当前用户必须拥有DBA权限)
create user 用户名 identified by 密码

--创建表空间
create tablespace ts_mytest
logging
datafile 'f:oracle_xe_datafilemytest.dbf'
size 32m
autoextend on next 10m maxsize unlimited

--删除表空间
drop tablespace hoteldata including contents and datafiles;

/*
用户分三种类型
  sys;//系统管理员,拥有最高权限
  system;//本地管理员,次高权限
  scott;//普通用户,密码默认为tiger,默认未解锁
    新建用户未授权全部为普通用户
*/

--删除用户(级联)
drop user testuser cascade

--授予该用户权限(进行这项操作的当前用户必须拥有DBA权限)
grant connect, resource to 用户名

--connect角色是授予最终用户的典型权利,最基本的
  --修改会话
    alter session
  --建立会话
    create session
  --建立聚簇
    create cluster
  --建立数据库链接
    create database link
  --建立序列
    create sequence
  --建立同义词
    create synonym
  --建立视图
    create view

--resource角色是授予开发人员的
  --建立聚簇
    create cluster
  --建立存储过程
    create procedure
  --建立序列
    create sequence
  --建表
    create table
  --建立触发器
    create trigger
  --建立类型
    create type 

--修改用户口令格式 
alter user 用户名 identified by 密码

--锁定 / 解锁oracle用户
alter user 用户名 account unlock
alter user 用户名 account lock

--更改表的结构:
alter table 表名 modify(name char(10))

--查询所有用户默认表空间 
select username, default_tablespace from dba_users

--查看某一个用户使用了哪些表和表空间
select t.table_name, t.tablespace_name from dba_all_tables t where t.owner='COLLEGE'

--查询当前用户连接  
select count(*) from v$session

--查看当前用户权限  
select * from session_privs; 

--添加主键
alter table test add constraint pk_test primary key (userid);

--删除主键
alter table 表名 drop constraint 主键名

--查看当前数据库所有用户
select * from dba_users

--添加外键
alter table 表2 add constraint 外键名 foreign key(表2中需要建外键的字段) references 表1

--删除外键
alter table test2 drop constraint fk_test2

--查询某个时间点的数据(可以用于恢复数据, 但是如果删除表中信息用的truncate, 就无法查询了)
select * from t_person as of timestamp to_date('2017-04-21 21:30:00','yyyy-mm-dd hh24:mi:ss');