Oracle常用SQL语句(持续更新)

前端之家收集整理的这篇文章主要介绍了Oracle常用SQL语句(持续更新)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1.创建Oracle用户并指定表空间的sql语句

//创建临时表空间
create temporary tablespace exp_temp
tempfile 'C:\exp_temp.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;

//创建数据表空间
create tablespace exp_data
logging
datafile 'C:\exp_data.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;

//创建用户并指定表空间
create user exp identified by exp
default tablespace exp_data
temporary tablespace exp_temp;

//给用户授予权限
grant connect,resource,dba to exp;

2.创建Oracle序列

CREATE SEQUENCE SEQ_EXP -- 序列名
INCREMENT BY 1 -- 自增 1
START WITH 1 -- 初始 1
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 不循环
CACHE 10; -- 缓存区

3.Oracle导入/出dmp文件

imp username/password@127.0.0.1:1521/orcl file=D:\imp.dmp full=y

exp username/password@127.0.0.1:1521/orcl file=D:\exp.dmp (full=y/owner=exp/tables=exp)

4.增删改Oracle列

添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….);

修改字段的语法:alter table tablename modify (column datatype [default value][null/not null],….);

删除字段的语法:alter table tablename drop (column,....);

说明:[]为可选,/为或者,(,...)为可多列

5.Oracle用户授权

grant dba(等相关权限) to user

6.修改序列值

alter sequence exp_seq increment by -1;
select exp_seq.nextval from dual;
alter sequence exp_seq increment by 1;

7.恢复到指定时间点数据

1.select * from tableName as of timestamp to_timestamp('2017-02-14 15:30:00','yyyy-mm-dd hh24:mi:ss');

2.alter table tableName enable row movement;

3.flashback table tableName to timestamp to_timestamp('2017-02-14 15:30:00','yyyy-mm-dd hh24:mi:ss');

注意:对记录进行“误”操作后,再修改表结构是无法进行闪回的。

8.更新字符串中的部分字符

update tableName t set t.column = replace(t.column,'源字符串','目字符串')

9.关联表涉及字段更新

update tableName t set t.column = (select column from tableName2 t2 where t.id = t2.id)

where t.id in (select id from tableName t,tableName2 t2 where t.id = t2.id)

10.Oracle实现indexOf与lastIndexOf功能

INSTR的第3个参数为1对应indexOf,-1为lastIndexOf

例子:INSTR(column,'_',1/-1,1);

11.Oracle删除指定用户下的所有数据

第一步:用超级管理员登陆oracle“conn / as sysdbaconn / as sysdba”
第二步:删除指定的用户“drop user username cascade”
第三步:重新创建此用户 “create user username identified by password;
第四步:给用户授权"grant dba to username "
第五步:登陆指定用户”conn username /password“

12.Oracle查找重复数据

select column,count(1) from tableName group by column having count(1) > 1

猜你在找的Oracle相关文章