1.创建用户
create user <用户名>
[identified by <密码>]
[default tablespace <默认表空间名>]
[temporary tablespace <临时表空间名>]
[quota <数字值> K|M |unlimited on <表空间名>]
[profile <概要文件>
[password expire]
[account {lock|unlock}]
2.修改用户
alter user <用户名>
[identified by <密码>]
[default tablespace <默认表空间名>]
[temporary tablespace <临时表空间名>]
[quota <数字值> K|M |unlimited on <表空间名>]
[profile <概要文件>
[password expire]
[account {lock|unlock}]
3.删除用户
drop user <用户名>[cascade];
1.创建表空间
create tablespace<表空间名>
datafile'<文件路径/文件名>' [size<文件大小>[k|M][reuse]
[maxsize] <最大磁盘空间大小>[k|M]
[online|offline]
[logging|nologging}
[permanent|temporary]
[extent management[dictionary|local|autolocate|uniform|size<数值>[K|M]]]]]
2.修改表空间
alter tablespace<表空间名>
[add datafile'<文件路径/文件名>' [size<文件大小>[k|M]][reuse]
[maxsize] <最大磁盘空间大小>[k|M]
[online|offline]
[logging|nologging}
[permanent|temporary]
[extent management[dictionary|local|autolocate|uniform|size<数值>[K|M]]]]]
3.删除表空间
drop tablespace <表空间名>
[including contents[{and|keep} datafiles]
[cascade constraints]
]
1.导入和导出
(1)命令模式的EXP和IMP用法
EXP USERID=SCOTT/123456 FULL=N BUFFER=10000 FILE=XSB.DMP TABLES=XSB
(2)参数模式EXP和IMP用法
USERID=SCOTT/123456
FULL=N
BUFFFER=10000
FILE=XSB.DMP
TABLES=XSB
//以上参数保存为一个以.parfile为后缀的文件
//使用参数文件
EXP PARFILE=XSB.parfile
2.联机备份
//将数据库切换到归档模式
connect scott/123456 as sysdba
shutdown immediate
startup mount
alter database archievelog;
archievelog start ;
alter database open;
//执行数据库联机备份
alter tablesapce system begin backup;//逐个表空间备份数据文件
copy e:\data\system01.dbf d:\backup/ //在命令提示符下使用操作系统命令操作
//备份完毕后,将表空间恢复到正常状态
alter tablespace system end backup;
1.创建目录
create directory dump_dir as 'd:\bak';
2.赋予用户读写该目录的权限
grant read ,write on directory dump_dir to <用户名>
3.使用EXPDP导数出具
EXPDP SCOTT/123456 DUPMFILE=XSB.DMP DIRECTORY=DUMP_DIR TABLES=XSB JOB_NAME=XSB_JOB
4.使用IMP导入
IMPDP SCOTT/123456 DUMPFILE=XSB.DMP DIRECTORY=DUMP_DIR
Oracle11g中的事务是隐式自动开始的,不需要用户显示地使用语句来开始第一个事务。
1.提交事务
(1)手动提交事务
commit;
(2)使用。设置命令设置是否自动提交事务
set autocommit on|off
2.回退事务
(1)回退全部事务
rollback;
(2)回退部分事务
savepoint <保存点名称>;
rollback to [savepoint]<保存点名称>
1.查询闪回
执行查询闪回操作时,需要2个时间函数timestamp和to_timestamp,其中函数to_timestamp的语法格式为:
to_timestamp('timepoint;,'format');
例子
set time on //打开时间提示
//删除 kcb
delete from kcb;
commit;
//进行查询闪回
select * from kcb as of timestamp to_timestamp('2018-06-20 08:08:08'.'yyyy-mm-dd hh24:mi:ss');
//将闪回中的数据重新插入到kcb1
insert into kcb1
select * from as of timestamp to_timestamp('2018-06-20 08:08:08','yyyy-mm-dd hh24:mi:ss');
2.表闪回
Oracle11g采用撤销表空间记录增加,删除,修改数据。
语法
flashback table [用户方案名.]<表名>
to {[before drop [rename to <新表名>]]}|[scn| timestamp]<表达式>[enable | disable] triggers}
例子
set time on
create table cjb1 as select * from cjb;
delete from cjb1 where xh='15113';
commit;
//使用表闪回进行恢复
alter table cjb1 enable row movement;
flashbasck table cjb1 to timestamp to_timestamp('2018-08-08 08:08:08','yyyy-mm-dd hh24:mi:ss');
3.删除闪回
启用回收站
alter session set recylcebin=on;s
例子
create table t1(t char(10));
drop table t1;
//查询回收站字典信息
select OBJECT_NAME,ORIGINAL_NAME,TYPE,DROPTIME FROM RECYCLEBIN;
//使用闪回从回收站恢复表t1
falshback table t1 to before drop;
//清除表
purge table table1;
4.数据库闪回
(1)设置闪回环境
//查看数据库实例是否在归档模式下
connect system/123456 as sysdba
select DBID ,NAME,LOG_MODE FROM V$DATABASE;
shutdown immediate;
//设置flash database 为启用
startup mount
alter database flashback on;
alter database open;
(2)进行数据库闪回
set tinme on
create table kcb1 as select * from kcb;
//确定时间点,模拟误操作,删除表kcb1
select sysdate from dual;
drop table kcb1;
desc kb1;
//以mount 方式打开数据库并进行数据库闪回
shutdown immediate;
startup mountl
flashback database to timestamp to_timestamp(to_date('2015-07-98 15:23:27','yyyy-mm-dd hh24:mi:ss');
alter database open resetlogs;
//关闭数据库闪回功能
alter database flashback off;
创建同义词
语法
create [public] synonym [用户方案名.]<同义词名>
for [用户方案名.]对象名
例子
create public synonym cj
for scott.cjb;
使用同义词
select * from cj
删除同义词
语法
drop [public] synonym [用户名.]<同义词名>
创建序列
语法
create sequence [用户方案名.]<序列名>
[increment by <数字值>] /*递增或递减值*/
[start with <数字值>] /*初始值*/
[maxvalue <数字值>|nomaxvalue] /*最大值*/
[minvalue <数字值>|nominvalue] /*最小值*/
[cycle|nocycle] /*是否循环*/
[cache <数字值>|nocache] /*高速缓冲区设置*/
[order|noorder] /*序列号是否按照顺序生成*/
例子
/*创建降序序列*/
create sequence seq1
increment by -2
start with 5000
maxvalue 5000
minvalue 1
cycle
cache 20
noorder;
修改序列
语法
alter sequence [用户方案名.]<序列名>
[increment by <数字值>] /*递增或递减值*/
[start with <数字值>] /*初始值*/
[maxvalue <数字值>|nomaxvalue] /*最大值*/
[minvalue <数字值>|nominvalue] /*最小值*/
[cycle|nocycle] /*是否循环*/
[cache <数字值>|nocache] /*高速缓冲区设置*/
[order|noorder] /*序列号是否按照顺序生成*/
例子
alter sequence seq1
increment by -1
maxvalue 9000
minvalue 5000
noorder;
删除序列
语法
drop sequence <序列名>