access 创建视图语句_Oracle分页语句,序列,索引,视图、创建用户授权、撤权...

本文详细介绍了Oracle数据库中视图的概念与创建,包括简单视图和复杂视图的创建及DML操作规则。此外,还探讨了分页查询的实现方式,以及序列(Sequence)的创建、使用与修改。同时,文章讲解了索引的作用、类型以及何时创建和删除索引,最后提到了用户创建、权限管理和角色的应用。
摘要由CSDN通过智能技术生成

视图(View)

什么是视图

可以通过创建表的视图来表现数据的逻辑子集或数据的组合。视图是基于表或另一个视图的逻辑表,一个视图并不包含它自己的数据,它象一个窗口,通过该窗口可以查看或改变表中的数据。视图基于其上的表称为基表。

视图的优越性

  • 视图限制数据的访问,因为视图能够选择性的显示表中的列。
  • 视图可以用来构成简单的查询以取回复杂查询的结果。例如,视图能用于从多表中查询信息,而用户不必知道怎样写连接语句。
  • 视图对特别的用户和应用程序提供数据独立性,一个视图可以从几个表中取回数据。

简单视图:

  1. − 数据仅来自一个表
  2. − 不包含函数或数据分组
  3. − 能通过视图执行

DML 操作复杂视图:

  1. − 数据来自多个表
  2. − 包含函数或数据分组
  3. − 不允许通过视图进行 DML 操作

创建简单视图:create view+表名+ as+select + 查询的表;

创建一个视图,视图中包含部门 id 为 80 的员工的 id,名字以及薪水

create view AAa as select e.employee_id,e.last_name,e.salary from employees e where e.department_id=80;

创建一个视图,包含部门 id 为 50 的员工 id 使用 ID_ NUMBER 命名该列,包含员工名字使用 NAME 命名该列,包含员工的年薪使用 ANN_SALARY 命名该列。

create view ASD as select e.employee_id id_number,e.last_name name,12*e.salary ann_salary from employees e where e.department_id=50;

创建复杂视图

创建一个视图,包含每个部门的部门名称,部门最低薪水、部门最高薪水以及部门的平均薪水。

create view AAC as select d.department_name,min(e.salary) min,max(e.salary) max,avg(e.salary) avg from employees e,departments d where e.department_id=d.department_id group by d.department_name;

创建一个视图,包含每个部门的部门名称、部门最低薪水、部门最高薪水以及部门的平均薪水。将部门名称命名为 name、最低薪水命名为 minsal、最高薪水命名为 maxsal、平均薪水命名为 avgsal。

create view AAD (name,minsal,maxsal,avgsal) as select d.department_name,min(e.salary),max(e.salary),avg(e.salary) from employees e,departments d where e.department_id=d.department_id group by d.department_name;

视图中 DML 操作的执行规则

如果视图中包含下面的部分就不能修改数据:

  • 组函数
  • GROUP BY 子句
  • DISTINCT 关键字
  • 用表达式定义的列

拒绝 DML 操作 : -----with read only;

创建一个简单视图,包含 employees 表中的所有数据,单该视图拒绝 DML 操作。(增删改)

create view ADC as select * from employees with read only;

删除视图:---- drop view AA;

删除名称为 emp90 的视图。

drop view emp90;

内建视图

  • 内建视图是一个带有别名 (或相关名) 的可以在 SQL 语句中使用的子查询。
  • 一个主查询的在 FROM 子句中指定的子查询就是一个内建视图。

显示那些雇员低于他们部门最高薪水的雇员的名字、薪水、部门号和他们部门最高的薪水。

select em.last_name,em.salary,em.department_id,emp.max from employees em,(select max(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值