oracle数据库修改登录密码以及创建简单的视图操作

最近想玩玩oracle中的视图操作,由于长时间没有操作自己的本机的虚拟机上的oracle数据库,导致密码给忘记了,百度了一下说是可以通过登录管理员来操作。于是就进行了一些列操作,由于之前接触oracle较少,所以尝试起来还是有点吃力,于是就各种尝试。oracle的用户分为如下几个等级:

  1. 最高权限用户:SYSTEM  密码:MANAGER
  2. 管理员权限用户:SYS  密码:CHANGE_ON_INSTALL
  3. 普通用户权限:SCOTT   密码:TIGER

流程是这样的:

1.首先登录管理员账号进行修改用户密码:但是我的管理员密码也不知道,别急,这里有办法。

首先登进去你的oracle所在的服务器(我的安装在本机window虚拟机里)。所以直接进入win+R命令输入cmd进入命令行窗口,

输入sqlplus/nolog

输入connect/as sysdba

输入alter user 用户名identified by 密码

就可以了。

这种方法对于忘记管理员密码同样适用。

下边就可以进行视图操作

视图具有以下优点:

1. 可以限制用户只能通过视图检索数据。这样就可以对最终用户屏蔽建表时底层的基表。

2. 可以将复杂的查询保存为视图。可以对最终用户屏蔽一定的复杂性。

3. 限制某个视图只能访问基表中的部分列或者部分行的特定数据。这样可以实现一定的安全性。

4. 从多张基表中按一定的业务逻辑抽出用户关心的部分,形成一张虚拟表。

语法:

CREATE [OR REPLACE] [{FORCE|NOFORCE}] VIEW view_name

AS

SELECT查询

[WITH READ ONLY CONSTRAINT]

解析:

1. OR REPLACE:如果视图已经存在,则替换旧视图。

2. FORCE:即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表创建成功后,视图才能正常使用。

3. NOFORCE:如果基表不存在,无法创建视图,该项是默认选项。

4. WITH READ ONLY:默认可以通过视图对基表执行增删改操作,但是有很多在基表上的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视图执行insert操作),WITH READ ONLY说明视图是只读视图,不能通过该视图进行增删改操作。现实开发中,基本上不通过视图对表中的数据进行增删改操作。

案例:基于EMP表和DEPT表创建视图

CREATE OR REPLACE VIEW EMPDETAIL

  2  AS

  3  SELECT EMPNO,ENAME,JOB,HIREDATE,EMP.DEPTNO,DNAME

  4  FROM EMP JOIN DEPT ON EMP.DEPTNO=DEPT.DEPTNO

  5  WITH READ ONLY

使用视图:

SELECT * FROM EMPDETAIL;

视图就是将复杂的sql语句封装成一个虚表,一般都是常用的业务逻辑进行封装视图,具体操作和表一样,一般视图都是设置为只读的,创建的sql语句如上图。

猜你喜欢

转载自blog.csdn.net/uniqueweimeijun/article/details/81407911