Oracle 基础操作命令
原创
©著作权归作者所有:来自51CTO博客作者Tom马的原创作品,请联系作者获取转载授权,否则将追究法律责任
表空间管理
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、查看当前登陆用户的所有表
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、清空回收站
三、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