oracle 常用数据库对象 (学习笔记)

一、【】序列【】:
创建语法:
create sequence 序列名称。

例如:create sequence mmyseq;
序列创建完成之后存在user_sequences 数据字典中。序列默认从1开始。
例如:查询序列:select * from user_sequences;
SQL> select* from user_sequences;


SEQUENCE_NAME                      MIN_VALUE  MAX_VALUE INCREMENT_BY CY OR CACHE_SIZE LAST_NUMBER
------------------------------------------------ ---------- ---------- ------------ -- -- ---------- -----------
MMYSEQ                                    1                  1.0000E+28            1 N           N                20              1
MYSEQ                                       1                  1.0000E+28            1 N           N                20              1
SEQUENCE_NAME:序列名称
MIN_VALUE :最小值 1
MAX_VALUE :最大值 1.0000E+28
INCREMENT_BY :步长(每次增长的大小) 1
CY :是否循环
OR :(不能单实例使用,课忽略)
CACHE_SIZE :缓存 20 
LAST_NUMBER :增长后的最后一次内容 1

采用两个伪列使用序列:
·   序列对象.nextval   :表示进行序列的增长,每调用一次,序列加上指定的步长
·   序列对象.currval    :表示取得当前序列内容。不管如何调用,序列内容不发生改变

当序列对象创建完成,第一次使用序列要先执行nextval才能执行Currval。
 select mmyseq2.nextval from dual;
 select mmyseq2.currval from dual;

如果序列想要为表添加自动增长列,只能用insert语句实现
例如:  insert into myemp(ename,SAL) values ('李四',myseq.nextval);

序列修改:
例如:删除序列:  drop sequence mmyseq;
例如:  修改序列的步长:  create sequence mmyseq1
       increment by 2;
例如 : 修改序列的开始值: 
create sequence mmyseq2
start with 100;

例如:设置循环序列  
create sequence mmyseq3
minvalue 1
maxvalue 5
cycle 
cache 3;
设置循环的时候要考虑缓存个数。

二、【】同义词【】(Oracle 特有)(了解):
dual表属于sys 用户的表。但是在其他用户下也能访问,严格来讲,非sys用户使用的dual表实际上是sys.dual 表的别名,这就是同义词

语法:create  [public] synonym 同义词名称 for 用户名.表名称
例如:create synonym scottEmp for scott.emp;
在sys/change_on_install 用户下才可以创建同义词。如果一个同义词想被其他用户使用,则必须创建公共同义词,即加上public.

其他数据库,访问不同用户的表都要求加上:    用户名.表名称


三、视图【】的定义和使用:【】
视图:包装了复杂查询的sql对象


创建语法:  create [or replace] view  视图名称 as 子查询 ;
加:[or replace]:没有该视图就创建视图,有该视图的话就用后面的子查询替代原来的视图
 没有加,则原来的视图不可更改。

scott 在oracle 10G后的版本里面,没有创建视图的权限了,所以要先授予下权限啊。
例如:授予scott创建视图的权限:
conn sys/change_on_install as sysdba;
grant create view to scott;
conn scott/tiger;

视图创建只有会在 user_views 数据字典里面保存相应的对象信息。

视图中的数据是临时数据,一般来说是不能够修改的,加:[or replace]:没有该视图就创建视图,有该视图的话就用后面的子查询替代原来的视图。
例如:替换视图:  create or replace view  myview as select sal from emp;

简单视图可以被更改,而且表的数据也被更改了。
为了使视图的条件不被更改,可以使用 with check option;子句使视图的创建条件不被更改。
 create or replace view V 
as 
select * from myemp where deptno=20
with check option;

SQL> update V set deptno=1 where sal=800;
update V set deptno=1 where sal=800
       *
第 1 行出现错误:
ORA-01402: 视图 WITH CHECK OPTION where 子句违规


虽然视图的条件不能被更改,但是视图里面的字段值仍然可以更改。
例如: SQL> update V set sal=9999 where sal=800;
已更新 1 行。


使用 with read only 子句 定义只读视图
create or replace view V 
as 
select * from myemp where deptno=20
with read only;

删除视图:drop view V;


以后定义的视图都建议地宁一为只读视图

四、【】索引【】
创建索引:create index emp_sal_ind on emp(sal);



五、【】用户管理:【了解】

系统权限:create table,create session...
创建用户: create user dog identified by wangwang;
但是此时创建的用户没有登录权限。
授予登录权限:grant create session to dog;
但是此时dog用户没有创建表的权限。
授予创建表的权限:grant create table to dog;
无法创建视图,继续为dog用户分配创建视图的权限
.......则为了用户的方便权限操作,Oracle提供了两个角色:connect、resource:
为用户分配角色:grant connect,resource to dog;

注意:任何的系统中如果一个用户的权限发生了变化,一定要重新登录。

修改一个用户的密码:alter user dog identified by miaomiao;//将密码改为miaomiao

登录之后需要立即修改密码:alter user dog password expire;(此时登录dog用户修改密码)

锁定用户:alter user dog account lock;(该用户不能再登录)

解锁用户:alter user dog account unlock;

此时dog用户如果要想访问scott用户下的资源根本就不能够访问,因为没有对象权限。
对象权限只有四种:insert、updata、seect、delete
例如:授予dog用户部分权限:grant select,insert on scott.emp to dog;
回收权限:revoke connect,resource from dog;
revoke create session,create table from dog;

删除dog用户:drop user dog cascade;



【】数据库备份【】
一、数据的导出与导入:
法一:1,数据导出:在磁盘上建立一个文件夹
通过命令行方式进入到此目录下
输入exp命令,此命令指的是导出数据的操作
(默认的导出文件名称为:“EXPDAT.DMP”)
2,数据导入:通过命令行方式进入到备份文件所在的文件夹中
输入imp指令
(此类方式只适合于小数据的请情况,你项目更换数据库的情况)

二、数据库冷备份
指的是数据库服务停止,专门去备份,要备份以下内容:
·控制文件:可以通过"v$controlfile" 数据字典找到
·重做日志文件文件:可以通过"v$logfile" 数据字典找到
·数据文件:可以通过"v$datalfile" 数据字典找到
核心配置文件(pfile):可以通过 show parameter 找到

第一步:使用sys登录: conn sys/change_on_install as sysdba;
第二步:找到控制文件信息:select * from v$controlfile; D:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL
第三步:找到重做日志文件文件:select * from v$logfile; D:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG
第四步:找到数据文件:select * from v$datafile;  D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
第五步:找到核心配置文件(pfile):show parameter pfile;  D:\APP\ADMINISTRATOR\PRODUCT\1
                                                            1.2.0\DBHOME_1\DATABASE\SPFILE
                                                            ORCL.ORA
第六步:记录好以上所有文件的路径
第七步:关闭数据库服务:   shutdown immediate;
第八步:拷贝出以上的文件到指定的备份文件目录
第九步:重新启动数据库服务:  startup;













































































































































































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值