主要用来连接数据库、访问数据库
创建用户:
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; //删除用户下的所用数据对象
存储数据
创建表:
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');
加快数据的读取速度和完整性检查
创建索引:
create index myindex on table(name);
查询索引:
select index_name from user_indexes;
删除索引:
drop index myindex(index_name);
数据对象的别名
创建同义词:
create synonym name for object;
删除同义词:
drop synonym name;
查询同义词:
select * from dba_synonyms;
创建序列:
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
相当于一组权限的集合,可以将角色赋给用户,与用户是多对多的关系
创建角色:
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;
创建表空间:
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;