ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

oracle数据库

2020-04-20 20:54:13  阅读:316  来源: 互联网

标签:execute 用户名 option grant 数据库 SYS oracle select


1.超级用户账号密码

账号:sqlplus
密码:as sysdba

2.创建用户

create user 用户名 identified by 密码

3.赋予用户权限

赋予用户connect连接数据库,resource创建实体但是没有创建数据库结构权限,dba赋予用户所有权限
grant connect,resource,dba to 用户名

其他权限

grant execute on sys.dbms_crypto to 用户名 with grant option;
grant execute on SYS.DBMS_AQADM to 用户名 with grant option;
grant execute on SYS.DBMS_AQELM to 用户名 with grant option;
grant execute on SYS.DBMS_AQ_IMPORT_INTERNAL to 用户名 with grant option;
grant execute on SYS.DBMS_DEFER_IMPORT_INTERNAL to 用户名;
grant execute on SYS.DBMS_REPCAT to 用户名;
grant execute on SYS.DBMS_RULE_EXIMP to 用户名 with grant option;
grant execute on SYS.DBMS_SQL to 用户名;
grant execute on SYS.DBMS_SYS_ERROR to 用户名;
grant execute on SYS.DBMS_SYS_SQL to 用户名;
grant execute on SYS.DBMS_TRANSFORM_EXIMP to 用户名 with grant option;
grant select, insert, update, delete, references, alter, index on SYS.INCEXP to 用户名;
grant select, insert, update, delete, references, alter, index on SYS.INCFIL to 用户名;
grant select, insert, update, delete, references, alter, index on SYS.INCVID to 用户名;
grant execute on SYS.SYS_GROUP to 用户名;
grant select on WMSYS.WM$UDTRIG_INFO to 用户名;
grant aq_administrator_role to 用户名 with admin option;
grant dba to NEWUSER123 with admin option;
grant sales_history_role to 用户名 with admin option;
grant students to 用户名 with admin option;
grant unlimited tablespace to 用户名 with admin option;

4.全库导入导出dmp文件,在cmd运行

导出

exp 账号/密码@127.0.0.1/orcl file=导出文件名.dmp full=y

导入

imp epm/epm@127.0.0.1/orcl file=D:\doudianwork\lq.dmp full=y

5.oracle11g的数据库导入oracle10g的数据库

1.oracle11g导出

EXPDP USERID='账号/密码@orcl as sysdba' schemas=账号 directory=DATA_PUMP_DIR dumpfile=导出文件名.dmp logfile=导出日志名.log version=10.2.0.1.0 (这是导出成数据库版本号)

导出的文件在oracle11g安装的盘的app\ASUS\admin\orcl\dpdump

 

2.oracle10导入

导入的时候将要导入的.dmp文件放入oracle10g的安装盘的pp\ASUS\admin\orcl\dpdump文件夹下

IMPDP USERID='账号/密码@orcl as sysdba' schemas=账号 directory=DATA_PUMP_DIR dumpfile=导入的文件名.dmp logfile=导入的日志名.log version=10.2.0.1.0 (导入的版本号)

原文地址: https://www.cnblogs.com/huangzhiqiang/p/4725664.html

 

6.删除用户下所有的表

在oracle的窗口执行

SELECT 'DELETE FROM '|| table_name || ';' FROM USER_TABLES ORDER BY TABLE_NAME;

7.数据闪回(恢复删除的数据)

1.查询最近的快照时间

SELECT R.FIRST_LOAD_TIME,R.SQL_TEXT,R.* FROM V$SQLAREA R WHERE R.SQL_TEXT LIKE '%ABOUT YOUR SQL%' ORDER BY R.FIRST_LOAD_TIME DESC

2.以当前时间为准查询125分钟之前的数据快照

SELECT * FROM 表名 AS OF TIMESTAMP SYSDATE - 125 / 1440

3.恢复数据

1.启动表的row movement特性

ALTER TABLE 表名 ENABLE ROW MOVEMENT;

2.闪回指定时间的快照

FLASHBACK TABLE 表名 TO TIMESTAMP 
TO_TIMESTAMP('2018-04-23 16:06:00','yyyy-mm-dd hh24:mi:ss');

3.关闭表的row movement特性

ALTER TABLE 表名 DISABLE ROW MOVEMENT;

4.恢复删除的表(通过TRUNCATE语句删除的表无法闪回)

FLASHBACK TABLE 表名 TO BEFORE DROP;

8.oracle序列

创建序列

create sequence 序列名称
increment by 1 每次增长多少
start with 1 从几开始
minvalue 1 最小值
maxvalue 999999999 最大值
cycle/no cycle 序列到达最大值之后怎么办,一般去cycle
cache 20 需要不需要使用缓存,就是一次生成多少个序列的值,如果生成了多个序列值,如果缓存中有数据, 就
不需要查询缓存了

查询序列

select 序列名.currval from dual  //取当前值

select 序列名.nextval form dual //取下一值

9.oracle索引

oracle查询有一个优化,那就是查询过一次的数据他会产生缓存

使用索引的原则:

  1.大数据才创建索引

  2.为经常用到的列创建索引

  3.索引的层数不要超过4层,也就是 on 表名(列名1,列名2) 这里的列明不要超过4个,因为索引太多也会拖慢检索速度

  4.表的主键自带索引

  多列的索引就是复合索引

  创建索引

create index 索引名 on 表名(列明)

10.函数

1.nvl 见到空值替换为后面的值

//如果age是空值就为1
select nvl(age,1) from table

2.concat 拼接

select concat('年龄',age) from table
        或
select '年龄'||age from table

11.存储过程

in是输入,out是输出

as 那是定义变量用的

create or replace proceduer 存储过程名(参数名 in或out 参数类型)
as 变量名 变量类型
begin
    执行的操作
end;

例子

create or replace proceduer test(ids in number)
as lizi number
begin
    select value into lizi from tableName where id=ids //这样写可以将查询的值赋给声明的变量
    update tableName set  value='1000' where id=ids
end;

12.存储函数

in输入,out输出

as 定义变量用的,定义的变量类型要和返回的类型一致

create or replace function 方法名(参数 in|out 类型) return 参数类型
as 变量名称 变量类型
begin
    执行的操作
    return 变量名;//返回的变量类型要和return那定义的类型一样
end;

例子

create or replace function sc(ids in number) return varchar
as aa varchar
begin
    select value into aa from emp where id=ids
    return aa;
end;

out的用法例子

创建函数
    create or replace proceduer test(id out number)
    as     
    begin
        select id into id from table
    end;    
执行函数
    declare
        id number;//声明变量获得值
    begin
        test(id);
        dbms_output.put_line(id);//这个是输出语句
    end;    

13.视图

删除视图中的数据会影响基本表,但是删除整个视图不会对基本表产生影响

删除的视图不会进入回收站,删除基本表会影响视图

闪回删除基本表,视图也会恢复

创建视图

create view 视图名 as 查询的sql语句

创建只读视图

create or replace view 视图名 as sql语句

14.oracle事物回滚的条件

1.显示回滚:rollback

2.隐藏回滚:关闭sqlplus工具窗口,死机,掉电

oracle能回滚主要是因为实例池

oracle的事物隔离级别有两种:1.read committed 和 serializable

设置事物隔离级别为serializable:

set transaction isolation level serializable;

15.常用符号

原文地址: https://www.cnblogs.com/WebcrawlerBlog/p/4037162.html

 

运算符:

等于:=、<、<=、>、>=、<>

包含:in、not in、 exists、not exists

范围:between...and、not between....and

匹配测试:like、not like

Null测试:is null、is not null

布尔链接:and、or、not   

通配符

%(百分号): 用来表示任意数量的字符,或者可能根本没有字符。

_(下划线): 表示确切的未知字符。

?(问号): 用来表示确切的未知字符。

#(井号): 用来表示确切的阿拉伯数字,0到9。

[a-d](方括号):用来表示字符范围,在这里是从a到d    

常用符号

单引号:单引号将文本和字符和日期括起来

双引号:双引号被用来将包含特定字符或者空格的列别名括起来。双引号还被用来将文本放入日期格式

&符号:&号在oracle中常来指出一个变量,例如:&fox 这就声明fox是一个变量,当单&声明变量的时候,每次看见这个变量都要给他赋一个值,而双&号声明的时候,只需要在声明的时候赋一次值就行例如:&&fox,如果想要关闭&号特性,将&号当为普通的符号使用,需要在oracle的命令窗口运行: set define off 命令

单&相当于var,双&相当于let

双竖线||:表示字符串连接函数,就像java的+号

星号*:表示0个或任意多个字符。

:= :赋值语句,如 name :='admin'

: :变量绑定

 

 

 

 

 

标签:execute,用户名,option,grant,数据库,SYS,oracle,select
来源: https://www.cnblogs.com/HQ0422/p/12740374.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有