前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >oracle基础|oracle创建序列(creating sequences)|oracle创建视图(creating view)的用法

oracle基础|oracle创建序列(creating sequences)|oracle创建视图(creating view)的用法

作者头像
小小鱼儿小小林
发布2022-05-11 18:22:47
1.6K0
发布2022-05-11 18:22:47
举报
文章被收录于专栏:灵儿的笔记灵儿的笔记

目录

一、序列篇

1、什么是序列

2、创建序列

语法说明:

创建序列demo 

3、查看序列

4、序列的属性(伪列)

1.nextval 

2.currval 

5、如何使用序列

6、修改序列

语法说明:

修改序列demo

7、删除序列

二、视图篇

1、什么是视图

2、视图的存储

3、视图的优势

4、视图的分类

两种视图的比较

5、创建视图

 视图语法说明

创建视图demo

6、如何使用视图

7、给视图的列起别名

8、查看视图信息

9、创建复杂视图

复杂视图demo

10、删除视图

删除视图demo

一、序列篇

1、什么是序列

所谓序列,在oracle中就是一个对象,这个对象用来提供一个有序的数据列,这个有序的数据列的值都不重复。

  • 1.序列可以自动生成唯一值
  • 2.是一个可以被共享的对象
  • 3.典型的用来生成主键值的一个对象
  • 4.可以替代应用程序代码
  • 5.当sequence的值存放在缓存中时可以提高访问效率。

2、创建序列

CREATE SEQUENCE name     [INCREMENT BY n]     [START WITH n]                   [{MAXVALUE n | NOMAXVALUE}]     [{MINVALUE n | NOMINVALUE}]     [{CYCLE | NOCYCLE}]     [{CACHE n | NOCACHE}]

语法说明:

1.increment by n:表明值每次增长n(步长)

2.start with n: 从n开始

3.{MAXVALUE n | NOMAXVALUE}: 设置最大值

4.{MINVALUE n | NOMINVALUE}: 设置最小值,start with不能小于最小值。

5.CYCLE | NOCYCLE          : 是否循环,建议不使用

6.CACHE n | NOCACHE           : 是否启用缓存,缓存n个值,如果不写的话默认是缓存20个字符 

创建序列demo 

代码语言:javascript
复制
create sequence student_id_seq
		start with 1
		increment by 1
		nomaxvalue
		nominvalue
		nocycle
		nocache;

3、查看序列

代码语言:javascript
复制
select sequence_name,min_value,max_value,last_number
		from user_sequences
		where sequence_name = 'student_id_seq';

4、序列的属性(伪列)

1.nextval 

返回下一个可用的序列值。就算是被不同的用户调用,每次也返回一个唯一的值。

2.currval 

获取序列当前的值。在currval调用之前,必须保证nextval已经获取过一次值。 

5、如何使用序列

1.向表中插入数据 insert into emp values(student_id_seq.nextval);

2.查看序列的当前值 select student_id_seq.currval from dual;

3.获取序列的下一个值。 select student_id_seq.nextval from dual;

缓存:使用缓存可以提高sequence的访问效率

6、修改序列

ALTER SEQUENCE name     [INCREMENT BY n]           [{MAXVALUE n | NOMAXVALUE}]     [{MINVALUE n | NOMINVALUE}]     [{CYCLE | NOCYCLE}]     [{CACHE n | NOCACHE}]        

语法说明:

1.必须是序列的拥有者,或者具有alter权限 2.修改后的序列,只对之后的值起作用。 3.除了start with不可以改,其他都能修改,如果想改,只能删除,重新创建,启动。 

修改序列demo

代码语言:javascript
复制
alter sequence student_id_seq
increment by 2
maxvalue 100
cycle;

7、删除序列

drop sequence 序列名称;

删除序列demo

代码语言:javascript
复制
drop sequence student_id_seq;

二、视图篇

1、什么是视图

所谓视图就是提取一张或者多张表的数据生成一个映射,管理视图可以同样达到操作原表的效果,方便数据的管理以及安全操作。 视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据。视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储查询结果的一个虚拟表。视图来源于表,所有对视图数据的修改最终都会被反映到视图的基表中,这些修改必须服从基表的完整性约束。

2、视图的存储

与表不同,视图不会要求分配存储空间,视图中也不会包含实际的数据。视图只是定义了一个查询,视图中的数据是从基表中获取,这些数据在视图被引用时动态的生成。由于视图基于数据库中的其他对象,因此一个视图只需要占用数据字典中保存其定义的空间,而无需额外的存储空间。

3、视图的优势

  • 1.可以达到信息的隐藏,比如employees表中有工资,可以创建视图,隐藏工资信息。(可以配合权限,让某个用户只能查看视图,不能查看表。)
  • 2.使复杂查询变得简单。
  • 3.数据独立
  • 4.相同数据的不同展示形式。

4、视图的分类

1.简单视图

2.复杂视图

两种视图的比较

简单视图

复杂视图

涉及到的表个数

1

1个或多个

包含函数

不包含

包含

包含组数据

不包含

包含

通过视图使用DML语法

可以

不可以

可以在视图里插入数据,会更新到基表中;在基表中插入数据,也会更新到视图中

5、创建视图

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name     [(alias[, alias]...)]     AS      select 。。。。     [WITH CHECK OPTION [CONSTRAINT constraint]]     [WITH READ ONLY]

 视图语法说明

  • 1.or replace:代表修改view,就是原先已经创建了的话,再次创建同名的就会替换掉
  • 2.force| noforce: 即使基表不存在也要建立该视图 | 基表不存在就不建立此视图,默认值。
  • 3.alias: 视图中的列的名字(相当于给子查询的结果列起别名)
  • 4.子查询中可以包含复杂的查询语法,这些细节都对用户隐藏。
  • 5.子查询中不能包含order by子句。
  • 6.WITH CHECK OPTION 插入或修改的数据行必须满足视图定义的约束;换句话说,加上该关键词表示对view进行dml操作的时候,只能操作select语句中where条件限制的内容
  • 7.WITH READ ONLY :该视图只读,不能在这个视图上进行任何DML操作。
  • 8.查看视图结构: desc view_name;

创建视图demo

代码语言:javascript
复制
create or replace view myView
		as
		select id,last_name,start_date
		from s_employees
		where id <= 100;

6、如何使用视图

1.查看视图中所有数据信息             select * from myView; 2.执行插入:              insert into myView values(111,'haha','03-5月-16'); 插入成功! 3.再次查看,找不到刚插入的数据,因为这条数据不满足id<=100,但是查看原始表s_employees,有这条数据。

7、给视图的列起别名

create or replace view myView     (id,name,s_date)     as     select id,last_name,start_date     from s_employees; 或者使用     create or replace view myView     as     select id,last_name,start_date s_date     from s_employees;     myView中列的名字都为id,name,s_Date. 两者效果相同。

8、查看视图信息

可以使用数据字典user_views;

代码语言:javascript
复制
1、desc user_views;

2、select view_name from user_views;

9、创建复杂视图

复杂视图可能包含分组,组函数,多表连接等。

复杂视图demo

代码语言:javascript
复制
CREATE or replace VIEW myView
		(name, minsal, maxsal, avgsal)
		AS SELECT	d.name, MIN(e.salary),
		MAX(e.salary), AVG(e.salary)
		FROM	s_employees e, s_dept d
		WHERE	e.dept_id = d.id
		GROUP BY 	d.name;

10、删除视图

drop view 视图名称; 

删除视图demo

代码语言:javascript
复制
drop view myView
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-04-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、序列篇
    • 1、什么是序列
      • 2、创建序列
        • 语法说明:
        • 创建序列demo 
      • 3、查看序列
        • 4、序列的属性(伪列)
          • 1.nextval 
          • 2.currval 
        • 5、如何使用序列
          • 6、修改序列
            • 语法说明:
            • 修改序列demo
          • 7、删除序列
          • 二、视图篇
            • 1、什么是视图
              • 2、视图的存储
                • 3、视图的优势
                  • 4、视图的分类
                    • 两种视图的比较
                  • 5、创建视图
                    •  视图语法说明
                    • 创建视图demo
                  • 6、如何使用视图
                    • 7、给视图的列起别名
                      • 8、查看视图信息
                        • 9、创建复杂视图
                          • 复杂视图demo
                        • 10、删除视图
                          • 删除视图demo
                      相关产品与服务
                      图数据库 KonisGraph
                      图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档