oracle 视图 序列 同义词
来源:互联网 发布:程序员很难找女朋友吗 编辑:程序博客网 时间:2024/05/16 05:54
视图:它的功能,一个视图实际上就是封装了一条复杂的查询语句;
创建视图的语法: create or replace view 视图名称 as 子查询;
删除视图的语法 drop view 视图名称 ;
实际上此时的子查询就表示一条非常复杂的Sql语句.
eg.建立视图,它包含了全部20部门的的雇员信息。
create view emp_20 as select * from emp where deptno=20
查询视图跟查表一样 select * from emp_20;
eg.求部门名称、部门人数、平均工资以及最低工资的雇员;
复杂sql语句
select e.ename, d.dname, c.count_empno,c.min_sal,c.avg_sal from emp e ,dept d,
(select deptno,avg(sal) avg_sal ,count(empno) count_empno,min(sal) min_sal from emp group by deptno ) c
where d.deptno = c.deptno and e.sal = c.min_sal
创建视图:
create or replace view emp_info as select e.ename, d.dname, c.count_empno,c.min_sal,c.avg_sal from emp e ,dept d,
(select deptno,avg(sal) avg_sal ,count(empno) count_empno,min(sal) min_sal from emp group by deptno ) c
where d.deptno = c.deptno and e.sal = c.min_sal;
以后直接查询视图,就可以得到想要的结果. select * from emp_info;(就不必每次都写复杂sql了)
更新视图<创建视图实际上存在创建条件的>
update emp_20 set deptno=30 where empno=7369<修改了视图的创建条件>,一旦修改后,创建视图的条件就破坏了
所以在创建视图的时候SQL提供了两个重要的参数: with check option 检查不能更新视图的创建条件
create view emp_20 as select * from emp where deptno=20 with check option;
update emp_20 set deptno=30 where empno=7369 error:子句违归 (不能再更新创建条件,其它字段可以)
视图本身是用来查询的,所以不应该允许修改,可以使用参数 with read only 创建的视图只读
create view emp_20 as select * from emp where deptno=20 with read only;
update emp_20 set deptno=30 where empno=7369 error:此处不允许虚拟列
序列:在很多数据库中都存在一个自动增长的列,若想在oracle中完成自动增长的功能,则只能依靠序列来完成,所有的自动增长操作,需要用户手工完成。序列中提供了以下两种操作: nextVal 取得序列的下一个内容;
currVal 取得序列的当前内容.
create sequence 序列名称 [increment by n(长度)] [ start with n]
--创建序列
create or replace sequence myseq ;
--创建表
create table testseq1(
nex number,curr number
);
--加入五次
insert into testseq1 (nex,curr) values(myseq.nextVal,myseq.currVal);
insert into testseq (nex,curr) values(myseq.nextVal,myseq.currVal);
insert into testseq (nex,curr) values(myseq.nextVal,myseq.currVal);
insert into testseq (nex,curr) values(myseq.nextVal,myseq.currVal);
insert into testseq (nex,curr) values(myseq.nextVal,myseq.currVal);
SQL> select * from testseq;
NEX CURR
---------- ----------
1 1
2 2
3 3
4 4
5 5
SQL> --可以看出nextVal的内容始终在进行自动增长的操作;currVal取出当前的操作.
create sequence myseq increment by 2 start with 1; --步长为2,从1开始
SQL> select * from testseq1;
NEX CURR
---------- ----------
1 1
3 3
5 5
7 7
9 9
11 11
13 13
7 rows selected
SQL>
同义词:之前一直存在这样的查询 select * from dual;
-- conn sys/change_on_install as sysdba;<直接连接超级管理员sys>
-- select * from tab (查当前用户下的所有表)
-- select * from tab where tname='DUAL';
在sys用户下存在此表,此表在sys下,但在scott用户下却可以通过表名称访问,那么正常情况下如果用户访问不同用户下的表需要使用 用户名.表名称 <此时相当于同义词的作用,同义词可以让其它用户通过一个名称方便的访问'用户名.表'>
创建同义词: create synonym 同义词名称 for 用户.表名称
删除同义词: drop synonym 同义词名称
此种特性只属于oracle;
- oracle视图、同义词、序列
- oracle 视图、同义词、序列
- oracle 视图 序列 同义词
- oracle同义词、序列、视图
- Oracle的视图、同义词、序列
- oracle 视图、序列以及同义词
- Oracle学习笔记七:视图、同义词、序列
- oracle 同义词、序列、视图、索引
- oracle sql 之视图,序列,索引,同义词
- oracle对象【约束,序列,索引,视图,同义词】
- Oracle,视图,同义词,索引,序列,分区
- Oracle数据库对象----序列、索引、视图、同义词
- 同义词,序列和视图
- 视图、同义词、序列详解
- 视图、序列、索引、同义词
- ORACLE数据库中创建、删除--同义词、视图、索引、序列
- Oracle学习笔记摘录5-----表 / 序列 /视图 / 索引 / 同义词
- ORACLE数据库对象——同义词、序列、视图
- Exchange 2010简单三步配置外网邮件收发
- Linux GUI脚本zenity
- Sipdroid注册(三)-注册返回结果的监听
- 计算机图形学 复合变换矩阵
- ExtJS4.0学习心得
- oracle 视图 序列 同义词
- 用URL请求做文件上传
- Linux学习笔记一
- linux下查看文件编码及修改编码
- Weak Alias
- 信号量的实现和应用
- Spring中获得数据库的自增主键值
- 在Magento产品管理中添加额外信息
- zoj 2022||poj 1401 Factorial(阶乘)