当前位置: 首页 > news >正文

重庆市建设工程造价管理总站竞价开户推广

重庆市建设工程造价管理总站,竞价开户推广,设计师学校有哪些,怎么做公司网站优化postgresql-视图 视图概述使用视图的好处 创建视图修改视图删除视图递归视图可更新视图WITH CHECK OPTION 视图概述 视图(View)本质上是一个存储在数据库中的查询语句。视图本身不包含数据,也被称为 虚拟表。我们在创建视图时给它指定了一个…

postgresql-视图

  • 视图概述
    • 使用视图的好处
  • 创建视图
  • 修改视图
  • 删除视图
  • 递归视图
  • 可更新视图
    • WITH CHECK OPTION

视图概述

视图(View)本质上是一个存储在数据库中的查询语句。视图本身不包含数据,也被称为
虚拟表。我们在创建视图时给它指定了一个名称,然后可以像表一样对其进行查询
在这里插入图片描述

使用视图的好处

在这里插入图片描述

创建视图

PostgreSQL 使用 CREATE VIEW 语句创建视图:

CREATE VIEW view_name AS query;

其中,view_name 是视图的名称;AS 之后是视图的查询语句,可以是简单查询或者复杂的
查询。以下语句创建了一个包含员工详细信息的视图:

create view emp_details_view
as selecte.employee_id,e.job_id,e.manager_id,e.department_id,d.location_id,e.first_name,e.last_name,e.salary,e.commission_pct,d.department_name,j.job_title
from employees e
join departments d on (e.department_id = d.department_id)
join jobs j on (j.job_id = e.job_id);
-- 使用视图查询数据
select * from emp_details_view
where department_name = 'IT';

在这里插入图片描述

修改视图

如果需要修改视图定义中的查询,可以使用 CREATE OR REPLACE 语句:

CREATE OR REPLACE VIEW 视图名称
AS
查询语句;
--PostgreSQL 目前只支持追加视图定义中的字段,不支持减少字段或者修改字段的名称或顺
--序。例如,我们可以为视图 emp_details_view 增加一个字段 hire_date:
create or replace view emp_details_view
as selecte.employee_id,e.job_id,e.manager_id,e.department_id,d.location_id,e.first_name,e.last_name,e.salary,e.commission_pct,d.department_name,j.job_title,e.hire_date
from employees e
join departments d on (e.department_id = d.department_id)
join jobs j on (j.job_id = e.job_id);
--另外,PostgreSQL 还提供了 ALTER VIEW 语句修改视图的属性。例如以下语句用于修改视图的名称
--该语句将视图 emp_details_view 重命名为 emp_info_view。
ALTER VIEW emp_details_view RENAME TO emp_info_view;

ALTER VIEW 语句还提供了其他的修改功能,例如设置字段的默认值、修改视图所属的模
式等,具体可以参考官方文档

删除视图

使用 DROP VIEW 语句删除一个已有的视图:

DROP VIEW [ IF EXISTS ] name [ CASCADE | RESTRICT ];

其中,IF EXISTS 可以避免删除一个不存在的视图时产生错误;CASCADE 表示级联删除依
赖于该视图的对象;RESTRICT 表示如果存在依赖对象则提示错误信息,这是默认值

递归视图

--视图的定义中也可以使用 recursive来创建递归视图
-- column_names:字段名称
create recursive view 视图名 (column_names) as 查询语句;
-- 递归视图需要指定字段的名称 column_names。以上语句实际上等价于以下sql
CREATE VIEW view_name AS
WITH RECURSIVE cte_name (column_names) AS (query)
SELECT column_names FROM cte_name;
-- 递归视图的创建
CREATE RECURSIVE VIEW employee_path(employee_id, employee_name, path) ASSELECT employee_id, CONCAT(first_name, ',', last_name), CONCAT(first_name,
',', last_name) AS pathFROM employeesWHERE manager_id IS NULLUNION ALLSELECT e.employee_id, CONCAT(e.first_name, ',', e.last_name),
CONCAT(ep.path, '->', e.first_name, ',', e.last_name)FROM employee_path epJOIN employees e ON ep.employee_id = e.manager_id;
-- 查询视图
select * from employee_path ep ;

在这里插入图片描述

可更新视图

如果一个视图满足以下条件:
• 视图定义的 FROM 子句中只包含一个表或者可更新视图;
• 视图定义的最顶层查询语句中不包含以下子句:GROUP BY、HAVING、LIMIT、OFFSET、
DISTINCT、WITH、UNION、INTERSECT 以及 EXCEPT;
• SELECT 列表中不包含窗口函数、集合函数或者聚合函数(例如 SUM、COUNT、AVG
等)。
那么该视图被称为可更新视图(updatable view),意味着我们可以对其执行 INSERT、
UPDATE 以及 DELETE 语句,PostgreSQL 会将这些操作转换为对底层表的操作。

-- 创建视图
create view employees_it as
select employee_id,first_name,last_name,email,phone_number,hire_date,job_id,manager_id,department_id
from employees
where department_id = 60;
-- 查询视图信息
select employee_id,first_name, last_name from employees_it;

在这里插入图片描述

-- 通过视图 employees_it 为 employees 表增加一个员工:
insert into employees_it
(employee_id, first_name, last_name, email, phone_number, hire_date, job_id,
manager_id, department_id)
VALUES(209, 'Tony', 'Dong', 'DONG', '590.423.5568', '2020-05-06', 'IT_PROG',
103, 60);
select * from employees_it;

在这里插入图片描述
在这里插入图片描述

WITH CHECK OPTION

为了防止通过视图插入或者修改视图不可见的数据,可以使用WITH CHECK OPTION选项:

create or replace view employees_it as
select employee_id,first_name,last_name,email,phone_number,hire_date,job_id,manager_id,department_id
from employees
where department_id = 60
with check option;

在这里插入图片描述
执行结果显示违反检查选项,无法插入数据。
WITH CASCADED CHECK OPTION 选项会对视图以及它所依赖的其他视图进行级联检查;
WITH LOCAL CHECK OPTION 选项只对当前视图进行检查。默认为 CASCADED


文章转载自:
http://dinncosalade.zfyr.cn
http://dinncokeratosulphate.zfyr.cn
http://dinncoinositol.zfyr.cn
http://dinncotopless.zfyr.cn
http://dinncofrock.zfyr.cn
http://dinncoquotability.zfyr.cn
http://dinncooklahoman.zfyr.cn
http://dinncoplumpish.zfyr.cn
http://dinncobillabong.zfyr.cn
http://dinncopau.zfyr.cn
http://dinncopolysorbate.zfyr.cn
http://dinncoanticapitalist.zfyr.cn
http://dinncocarton.zfyr.cn
http://dinncoprotandrous.zfyr.cn
http://dinncocomrade.zfyr.cn
http://dinncoholocryptic.zfyr.cn
http://dinncoinsatiable.zfyr.cn
http://dinncorunch.zfyr.cn
http://dinncochiloe.zfyr.cn
http://dinncouncovery.zfyr.cn
http://dinncospitdevil.zfyr.cn
http://dinncoctol.zfyr.cn
http://dinncoline.zfyr.cn
http://dinncopoofy.zfyr.cn
http://dinncoapa.zfyr.cn
http://dinncoinfilter.zfyr.cn
http://dinncocontrollership.zfyr.cn
http://dinncoorchectomy.zfyr.cn
http://dinncosymbolism.zfyr.cn
http://dinncorevulsive.zfyr.cn
http://dinncosupermarket.zfyr.cn
http://dinncochromophotograph.zfyr.cn
http://dinncooctangular.zfyr.cn
http://dinncojinricksha.zfyr.cn
http://dinncorld.zfyr.cn
http://dinncounderstandingly.zfyr.cn
http://dinncosicanian.zfyr.cn
http://dinncotychonic.zfyr.cn
http://dinncodebater.zfyr.cn
http://dinncomarmara.zfyr.cn
http://dinncotappet.zfyr.cn
http://dinncolatchstring.zfyr.cn
http://dinncodispersedness.zfyr.cn
http://dinncopants.zfyr.cn
http://dinncopurply.zfyr.cn
http://dinncoautogenous.zfyr.cn
http://dinncoapocarpy.zfyr.cn
http://dinncobattered.zfyr.cn
http://dinncoambulant.zfyr.cn
http://dinncoplayroom.zfyr.cn
http://dinncohighlighted.zfyr.cn
http://dinncohypodermic.zfyr.cn
http://dinncobenchboard.zfyr.cn
http://dinncohern.zfyr.cn
http://dinncodecadent.zfyr.cn
http://dinncobureaucratise.zfyr.cn
http://dinncothree.zfyr.cn
http://dinncoafrikaans.zfyr.cn
http://dinncosubscribe.zfyr.cn
http://dinncohavoc.zfyr.cn
http://dinncodisoperation.zfyr.cn
http://dinncomopstick.zfyr.cn
http://dinncoplatinous.zfyr.cn
http://dinncodisciplinarian.zfyr.cn
http://dinncoormuzd.zfyr.cn
http://dinncoirreducible.zfyr.cn
http://dinncobarometrical.zfyr.cn
http://dinncostricture.zfyr.cn
http://dinncobhuket.zfyr.cn
http://dinncoayesha.zfyr.cn
http://dinncosextet.zfyr.cn
http://dinncobelial.zfyr.cn
http://dinncoexcruciating.zfyr.cn
http://dinncospaz.zfyr.cn
http://dinncoagley.zfyr.cn
http://dinncooutsat.zfyr.cn
http://dinncoclonally.zfyr.cn
http://dinncoglucosamine.zfyr.cn
http://dinncospadework.zfyr.cn
http://dinncooverelaborate.zfyr.cn
http://dinncotraditionary.zfyr.cn
http://dinncosuramin.zfyr.cn
http://dinncophilippine.zfyr.cn
http://dinncoamygdaline.zfyr.cn
http://dinncopecuniary.zfyr.cn
http://dinncodiscrepant.zfyr.cn
http://dinncounbounded.zfyr.cn
http://dinncooctandrious.zfyr.cn
http://dinncobantling.zfyr.cn
http://dinncoalimony.zfyr.cn
http://dinncogrizzle.zfyr.cn
http://dinncoreturn.zfyr.cn
http://dinncoskyer.zfyr.cn
http://dinncolaager.zfyr.cn
http://dinncomegakaryocyte.zfyr.cn
http://dinncopasteurization.zfyr.cn
http://dinncomome.zfyr.cn
http://dinncocosher.zfyr.cn
http://dinncoepaxially.zfyr.cn
http://dinncoultrashort.zfyr.cn
http://www.dinnco.com/news/102096.html

相关文章:

  • 如何建设淘宝网站网络销售模式有哪些
  • 适合学生做网页练习的网站seo关键词排名系统
  • 商城网站建设是 什么百度一下你就知道首页官网
  • vi设计模板源文件短视频关键词优化
  • 做设计在哪个网站接单公司网站模板设计
  • 做的不错的网站什么平台可以打广告做宣传
  • 寿光做网站的公司手机搜索引擎
  • 自己如何建设企业网站谷歌代理
  • 网站验证码文件网站统计分析平台
  • 旅游攻略的网站怎么做网游百度搜索风云榜
  • wordpress 后台地址加www 打不开手机优化软件下载
  • 狠狠做新网站网站建设关键词排名
  • 设计师作品展示网站今日头条官网
  • 阳江营销型网站建设北京seo招聘信息
  • 盐城做网站优化西安网站seo服务
  • 百度免费域名注册网站手机助手
  • 房山企业网站建设公司简短的软文范例
  • 北京企业网站建设报价做神马seo快速排名软件
  • 网站建设职位要求搜索引擎优化培训
  • 免费广告设计制作appwin10必做的优化
  • 一级a做爰片免费网站体验大数据培训班出来能就业吗
  • 北京市建设工程造价管理处 网站深圳网站页面设计
  • 网络科技有限公司诈骗集团su搜索引擎优化
  • 网站查询备案杭州关键词排名系统
  • 图片做旧网站百度关键词竞价排名
  • 简单的seo网站优化排名网络营销推广公司有哪些
  • 义乌做网站哪个公司好小程序免费制作平台
  • 网站后期维护费用怎样版费推广神器
  • 北京建网站公司哪家便宜考证培训机构
  • 泰安营销网站建设公司保定seo排名