PostgreSQL11 | 视图

news2024/11/25 2:54:47

上一篇讲了索引,索引提高了表查询的速度,这一篇讲视图。

视图

视图,数据库中的一个虚拟表。

目录

视图

视图概述

前期准备

创建视图

单表视图

多表视图

查询视图

删除视图


视图概述

视图同真实表一样具有表的功能,但是虚拟的,用于其他不便展示数据的保护,只展示想要展示的数据,这个虚拟表的内容并非原表一样拥有全部相关数据。但视图可以像表一样进行各种查询sql的操作。

本质可以理解为是基于一个复杂的sql查询语句的结果封装成的一个子表
视图本身并不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化,视图数据也随之变化。

前期准备

在创建视图前,我们需要相关的基础表来支撑

我们假设,一个大学要对外发布上榜考生名字以及开学日学生分班信息,我们需要准备一个学生表和一个班级表。

按以下内容创建两张基础表

create table students
(
	s_id varchar(15) primary key,
	name varchar(50) not null,
	age int not null,
	c_id varchar(15) not null
);

create table class
(
	c_id varchar(15) primary key,
	name varchar(50) not null,
	note text
);

分别插入学生信息和班级信息

insert into students 
values('RG20230101','小米',18,'RG23A1'),
('RG20230102','小花',18,'RG23A1'),
('RG20230103','小刘',19,'RG23B1'),
('WY20230101','locy',18,'WY23A1'),
('WY20230102','Tim',19,'WY23A1'),
('WY20230103','kiky',19,'WY23A1');

insert into class
values ('WY23A1','外国语言文学23级A座1班','外国交换生组建班'),
('RG23B1','软件工程23级B座1班',''),
('RG23A1','软件工程23级A座1班',''),
('DQ23A1','电气工程及其自动化23级A座1班',''),
('DY23A1','动物医学23级A座1班','')

创建视图

单表视图

前面背景介绍,我们需要对外公布一个所有上榜学生的公示栏,我们就可以创建一个单表视图来展示。

我们需要创建一个只包含学生姓名的视图表

create view all_students as select name from students;

 

select * from all_students;

 

 

多表视图

根据前文背景得知,我们还需要一个开学日学生分班公示栏

我们需要创建一个包含学生学号、学生姓名、班级名称的视图表

create view students_class_table as select s_id,stu.name as student_name,cla.name as class_name
from students as stu,class as cla where stu.c_id=cla.c_id;

select * from students_class_table;

 

 

查询视图

查询视图就不用说了,就像上文那样直接查就行了

select * from students_class_table;

这样直接查,或者查特定的列

例:小花男朋友小刘都报了软工专业,但没和她分到同一个班想知道他被分去了哪个班,查条件学生名为小刘的班级名称结果

select class_name from students_class_table where student_name='小刘';

哦,很遗憾,他被分到B校区上课了,和辅导员提交调班申请吧

删除视图

既然分班公示栏已经展出,说明录取视图表已经没用了,那就删除这个视图表吧

图形操作

这种操作更加快捷

 

 点击ok就删掉了

SQL操作

使用drop直接删

drop view all_students;

 

作者的话(Alvin):

本文根据原书《PostgreSql11 从入门到精通》(清华大学出版社)第10章总结整理,为提问与解答可以帮助更多人,本博客模拟GitHub的issue方案,所以私信已关,有问题请在评论区直接指正与提问,允许转发、复制或引用本文章,必须遵守开源法则注释来源与作者,感谢您的阅读。

参考资料:

1.《PostgreSql11 从入门到精通》(清华大学出版社)第10章

2.【第15节 MySQL一点就会|视图【完结篇】】

【第15节 MySQL一点就会|视图【完结篇】】

3.【什么是视图?作用是什么?】
【什么是视图?作用是什么?】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/514064.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

spring事务失效的12种场景

前言 对于从事java开发工作的同学来说,spring的事务肯定再熟悉不过了。 在某些业务场景下,如果一个请求中,需要同时写入多张表的数据。为了保证操作的原子性(要么同时成功,要么同时失败),避免…

H. Binary Craziness

题目链接 2023 Hubei Provincial Collegiate Programming Contest Examples input 6 6 1 3 2 3 1 4 2 5 3 6 4 6 output 30 input 6 4 1 2 3 5 2 4 3 6 output 0 题目大意: 给出结点个数 n n n和边的个数 m m m 下面依此给出 m m m个边,边是无向的&am…

Linux三种网络模式 | 仅主机、桥接、NAT

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Linux三种网络模式 仅主机模式:虚拟机只能访问物理机,不能上网 桥接模式:虚拟机和物理机连接同一网络,虚拟机和物理机…

字典核心底层原理

字典对象的核心是散列表。散列表是一个稀疏数组(总是有空白元素的数组),数组的每个单元叫做bucket。每个bucket有两部分:一个是键对象的引用,一个是值对象的引用。 由于,所有bucket结构和大小一致&#xf…

服装厂的管理系统如何选?内行人:这4点一定要注意!

服装厂管理水平偏低,耗费大量时间和资金成本,导致利润越来越低,是现在很多中小服装厂普遍面临的痛点。 依靠传统的管理模式,口头询问生产进度,手写统计数量,很显然不适合现代工厂的管理模式,服装…

java开发记录V1

编辑器vscode 在vscode中安装配置springboot 下载安装jdk oracle jdk BellSoft Liberica JDK version 17 在vscode编辑器中安装相关组件Extension Pack for Java、Spring Boot Extension Pack、Spring Initializr Java Support 创建springboot项目:ctrlshiftp后…

【Midjourney】Midjourney 辅助工具 ① ( 自定义命令工具 | 设置描述词 | 设置风格 | 设置灯光 | 设置相机 | 设置艺术家 )

文章目录 一、Midjourney Prompt Tool 自定义命令工具1、设置描述词2、设置风格3、设置灯光4、设置相机参数5、设置艺术家参数 Midjourney 提示词命令 可以使用 辅助工具 进行生成 , 辅助工具如下 : Midjourney Prompt Tool 自定义命令工具Midjourney Prompt Generator 命令生…

软件测试踏入这三个误区,就离滚蛋不远了

误区一:测试都是女生,男生不适合 误区二:这个职位很简单,不需要很多技术含量,每天很闲 误区三:起步即巅峰,薪资提升空间不大,一线才八九千 如果你听到这样的言论,赶紧走…

AssetBundle加载与卸载时的内存变化

AssetBundle.LoadFromFile加载一个80MB的assetbundle会分配1MB左右的pss内存 adb分析:private-otherUnityProfiler分析:有3块 1.Other/AssetBundle/LoadingCache 2.Other/SerializedFile/archive:/CAB-e42axxxxxxx 3.NotSaved/AssetBundle/xxxxxx.ab …

陷入“产品纠结”的王振滔,与学不来波司登的奥康

文|螳螂观察 作者| 青月 曾经的一代“鞋王”奥康,正在走下神坛。 4月底,奥康国际披露了2022年的年报,数据显示,公司归母净利润亏损3.7亿元,同比下滑1185.93%。此外,公司年报还被出具了保留意见的审计报告…

Revit创建装饰纹路柱及CAD生成柱

一、Revit中如何创建装饰纹路的柱子 在罗马柱的外观中,很少存在圆滑的柱身,在Revit中,可以用阵列的方式,更快的装饰柱子。 在族样板中,采用拉伸的方式先创建一个柱子 采用空心拉伸为柱子绘制花纹 选择圆形工具绘制&…

C语言的数据类型

数据类型 变量和常量 常量的2种定义方式: 1、关键字const const 数据类型 常量名 值; 如:const float pi 3.14159; 2、宏定义 #define 常量名 值 PS: 这里没有"“和”;" 如:#define PI 3.14159 推荐用宏定义的方式定义常量。 整…

Thradlocal底层原理

java引用:强软弱虚 软引用空间不足时会被回收 软引用非常适合做缓存 弱引用:只要有垃圾回收,就会被回收 虚引用回不回收都拿不到 他只有一个作用,管理直接内存 也是只要有垃圾回收就会被回收 ThreadLocal Spring事务&#x…

【职场新人备忘录】新人职场生存指南:快速适应、持续成长和个人提升

新人职场生存指南:快速适应、持续成长和个人提升 引言 职场对于新人来说充满了新的挑战和机遇。作为一名新人,如何在职场中快速适应、获得成长和提升自己是至关重要的技能。本备忘录旨在为职场新人提供实用的职场tips,帮助他们在职场中取得…

Ubuntu 20.04 安装 mysql 并配置远程访问

文章目录 一、使用 apt-get 安装 mysql 服务二、初始化 mysql 数据库管理员用户密码三、配置远程访问 一、使用 apt-get 安装 mysql 服务 # 更新软件源 apt-get install update# 安装mysql服务 apt-get install mysql-server# 使用mysqladmin工具查看mysql版本 mysqladmin --v…

Set和Map学习笔记

参考链接:https://blog.csdn.net/weixin_43359799/article/details/123131917 Set 集合,存储的是value值,以对象形式存储,并且不会存储重复的值,可以用来数组去重。 const s new Set() [1, 2, 3, 4, 3, 2, 1].forEach(x > s.add(x)) c…

景区户外剧本杀小程序冲关软件

景区户外剧本杀小程序具有以下几个方面的市场前景: 旅游市场需求增加:随着人们对于旅游方式的多样化需求增加,景区户外剧本杀作为一种互动性强、参与感强的旅游体验项目,将会得到越来越多游客的喜爱和关注。 移动互联网应…

对称加密和非对称加密的区别

两个人有不想让第三者知道的事情,可以找一个私密的空间去聊。而互联网本身是一个开放的体系,双方在交换数据的时候会经历大量的第三者——公司的防火墙、ISP 的路由器,还有可能有黑客抓取数据。那么这个时候如果张三和李四有私密的话想聊&…

游戏是怎么做推广的

游戏是怎么做推广的 大家好我是艾西,今天是我们的闲聊日记,大家都知道我是一直做游戏相关的事情,不管是开发、运营还是资源渠道等都是不可少的因素,那么在这长时间的积累下还是有一些直接的心得以及方式方法的。今天我们主要聊的…

企业电子招标采购系统源代码Spring Boot + 二次开发 + 前后端分离

项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及…