表空间管理

1、创建表空间

create tablespace ecs_data
datafile '/data/app/oracle/oradata/ecs/ecs_data.dbf'
size 100m
autoextend on
next 100m maxsize 10240m
extent management local;

2、创建临时表空间

create temporary tablespace ecs_tmp
tempfile '/data/app/oracle/oradata/ecs/ecs_tmp.dbf'
size 100m
autoextend on
next 100m maxsize 10240m
extent management local;

3、创建用户关联表空间

create user username identified by password
default tablespace ecs_data
temporary tablespace ecs_temp;

4、删除表空间

drop tablespace tablespacename including contents and datafiles cascade constraints

 一、用户管理

1、创建用户

# 登陆管理员
sqlplus / as sysdba

# 创建用户
SQL> create user tomma identified by 123456;

# 修改密码
SQL> alter user tomma identified by 147258;

# 密码失效
SQL> alter user tomma password expire;

3、锁住用户

SQL> alter user tomma account lock;

# 解锁
SQL> alter user tomma account unlock;

2、授权

# 在oracle中,提供了2个主要角色,它们是CONNECT和RESOURCE
SQL> grant connect,resource to tomma;


# 给把当前用户 tomma 下 student 表的 select 权限授权给 mshxuyi 用户
SQL> grant select on tomma.student to mshxuyi;

# mshxuyi 用户可以这样访问 tomma 的student表
SQL> select count(*) from tomma.student;


# 移除权限
SQL> revoke select on student from mshxuyi;

3、查看用户

dba_* : 系统里所有信息,需要DBA权限才能查询
all_* : 当前用户有权限的的信息(只要有权限,即可在此视图中看到相关信息)
user_*: 当前用户名下的信息


# 查看当前数据库所有用户
SQL> select * from dba_users;

# 查看当前用户的表
SQL> selectd * from user_users;


# 查看当前数据库中所有表
SQL> select * from dba_tables;

二、数据库管理

1、登陆

# 切换用户
SQL> conn tomma/123456

# 查看当前登陆用户
SQL> show user

# 查看数据库名(需要dba权限)
SQL> select name from v$database;

# 查看SID(需要dba权限)
SQL> select instance_name from v$instance;

2、创建表

SQL> create table student(
2 id number(8,0) primary key not null,
3 name varchar(20),
4 age number(3,0)
5 );

3、查看当前登陆用户的所有表

SQL> select * from tab;

4、创建自增序列

SQL> create sequence seq_student
2 minvalue 1
3 nomaxvalue
4 start with 1
5 increment by 1
6 nocycle
7 nocache;


# 查看当前用户的序列

SQL> select * from user_sequences;

5、插入数据

SQL> insert into student (id,name,age) values (seq_student.nextval,'tom',18);

6、删除表和回收站

SQL> drop table student purge;

7、清空回收站

purge recyclebin;

三、Schema 用法

Oracle 在创建一个用户的同时会为这个用户创建一个与用户名同名的 schem 并作为该用户的缺省 shcema,如果 mshxuyi 这个用户要访问 tomma 用户下 student 表(前提要先授权),可以这样执行

select count(*) from tomma.student

切换 mshxuyi 用户 执行

alter session set current_schema=tomma

成功后,可以这样,这样就不用带上 tomma 这个 schema

select count(*) from student

# 登陆 tomma
SQL> conn tomma/123456

# 登看 tomma 用户下 student 有多少条数据
SQL> select count(*) from student;

COUNT(*)
----------
1

# 授权 select 权限给 mshxuyi
SQL> grant select on student to mshxuyi;

# 切换 mshxuyi

SQL> conn mshxuyi/123456

# 先查看SQL,没有相关数据信息
SQL> select * from student;
select * from student
*
ERROR at line 1:
ORA-00942: table or view does not exist


# 改变 mshxuyi 的 schema
SQL> alter session set current_schema=tomma;
Session altered.

# 查看sql,已经出现相关结果
SQL> select count(*) from student;

COUNT(*)
----------
1