Oracle数据对象及表空间简单整理

User

主要用来连接数据库、访问数据库

创建用户:

create user test identified by 123 default tablespace name;  指定表空间

给用户赋权限:

grant connect,resource,dba to user;

connect:连接数据库,对用户表有访问权限

resource:可以创建实体(表、序列、同义词等)

dba:系统管理员,拥有所有系统权限

查询用户:

select username from all_users/dba_users/user_users;

删除用户:

drop user test cascade;   //删除用户下的所用数据对象

table(表)

存储数据

创建表:

create table student(

     id number(10) primary key,

     name varchar2(10) not null,

     sex varchar2(2)

  );

查询当前用户下所有表:

select table_name from user_tables;

修改表字段:

alter table student modify(sex varchar2(5));

插入数据:

insert into student values(1,'szw','nan');

index(索引)

加快数据的读取速度和完整性检查

创建索引:

create index myindex on table(name);

查询索引:

select index_name from user_indexes;

删除索引:

drop index myindex(index_name);

synonym(同义词)

数据对象的别名

创建同义词:

create synonym name for object;

删除同义词:

drop synonym name;

查询同义词:

select * from dba_synonyms;

sequence(序列)

创建序列:

create sequence mySeq  --名称

minvalue 1             --最小值,可以设置为0

maxvalue 2147483647    --最大值

start with 1           --从1开始计数

increment by 1         --每次加几个

nocycle;               --一直累加不循环

删除序列:

drop mySeq

修改序列:

alter sequence mySeq

minvalue 10

maxvalue 100000

start with 10

increment by 2

cycle;

Sequence使用

创建好Sequence后就可以通过currVal与nextVal进行使用。

currVal:返回 sequence的当前值

nextVal:增加sequence的值,然后返回增加后sequence值

sql语句:

select mySeq.currVal from dual;

第一次使用查询要用 mySeq.nextVal,否则会报如下错误:
ORA-08002: sequence MYSEQ.CURRVAL is not yet defined in this session

role(角色)

相当于一组权限的集合,可以将角色赋给用户,与用户是多对多的关系

创建角色:

create role sysrole;

给角色赋权限:

grant 权限 to sysrole;

给用户赋角色:

grant sysrole to test;

查询角色:

select role from role_sys_privs;

查询某个角色拥有什么权限:

select privilege from role_sys_privs where role='DBA';

查看当前用户被授予的角色:

select granted_role from user_role_privs;

tablespace(表空间)

创建表空间:

create tablespace test datafile '表空间文件绝对路径' size 100m;

查询用户表空间文件的绝对路径:

select name from v$datafile;

删除表空间:

停止表空间在线使用:

alter tablespace test offline;

删除表空间及其数据对象及数据文件:

drop tablespace test including contents and datafiles;

查询当前用户的表空间:

select tablespace_name from user_tablespaces;

你可能感兴趣的:(Oracle)