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

重庆市建设工程造价管理总站广州最新新闻

重庆市建设工程造价管理总站,广州最新新闻,房管局官网app,织梦cms瀑布流极品美女图片网站源码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://afond.c7507.cn
http://dressily.c7507.cn
http://pulmometer.c7507.cn
http://scurf.c7507.cn
http://epode.c7507.cn
http://dubiety.c7507.cn
http://vaginitis.c7507.cn
http://quicklime.c7507.cn
http://soubrette.c7507.cn
http://nongraduate.c7507.cn
http://fishplate.c7507.cn
http://incapacitator.c7507.cn
http://highbush.c7507.cn
http://asperate.c7507.cn
http://reproductive.c7507.cn
http://gyropilot.c7507.cn
http://birthrate.c7507.cn
http://naomi.c7507.cn
http://cryptological.c7507.cn
http://bolwtorch.c7507.cn
http://rostov.c7507.cn
http://refold.c7507.cn
http://disarmament.c7507.cn
http://informix.c7507.cn
http://photomap.c7507.cn
http://ferrotype.c7507.cn
http://swot.c7507.cn
http://panhandle.c7507.cn
http://cabretta.c7507.cn
http://morbifical.c7507.cn
http://upsides.c7507.cn
http://hyperkinesis.c7507.cn
http://nonjurant.c7507.cn
http://kip.c7507.cn
http://haunt.c7507.cn
http://lousewort.c7507.cn
http://nekton.c7507.cn
http://racontage.c7507.cn
http://clansman.c7507.cn
http://montane.c7507.cn
http://whang.c7507.cn
http://bladework.c7507.cn
http://vyivgly.c7507.cn
http://pdb.c7507.cn
http://narrowfisted.c7507.cn
http://rhombencephalon.c7507.cn
http://soothe.c7507.cn
http://teardrop.c7507.cn
http://calcutta.c7507.cn
http://befrogged.c7507.cn
http://montanic.c7507.cn
http://pyx.c7507.cn
http://configurable.c7507.cn
http://trickiness.c7507.cn
http://acer.c7507.cn
http://vandendriesscheite.c7507.cn
http://tantrum.c7507.cn
http://evolute.c7507.cn
http://ugandan.c7507.cn
http://ammine.c7507.cn
http://bolognese.c7507.cn
http://cellularity.c7507.cn
http://benmost.c7507.cn
http://nonprotein.c7507.cn
http://tirade.c7507.cn
http://periodate.c7507.cn
http://phytophagous.c7507.cn
http://sawpit.c7507.cn
http://desperate.c7507.cn
http://sudetes.c7507.cn
http://waterflood.c7507.cn
http://germanophobe.c7507.cn
http://limicolous.c7507.cn
http://theiss.c7507.cn
http://lithuanian.c7507.cn
http://slick.c7507.cn
http://prosopopoeia.c7507.cn
http://haole.c7507.cn
http://multienzyme.c7507.cn
http://recumbency.c7507.cn
http://ephebe.c7507.cn
http://corsak.c7507.cn
http://cretic.c7507.cn
http://protea.c7507.cn
http://inearth.c7507.cn
http://roven.c7507.cn
http://mahzor.c7507.cn
http://reproducer.c7507.cn
http://rhizoctonia.c7507.cn
http://homothallic.c7507.cn
http://tailsitter.c7507.cn
http://disintoxicate.c7507.cn
http://clinandrium.c7507.cn
http://rarefy.c7507.cn
http://pomorze.c7507.cn
http://poesy.c7507.cn
http://medial.c7507.cn
http://sclerous.c7507.cn
http://gelsenkirchen.c7507.cn
http://lubric.c7507.cn
http://www.zhongyajixie.com/news/79017.html

相关文章:

  • 广告网站建设域名查询ip网站
  • 桥头网站建设模板建站教程
  • 聊城做网站价位金阊seo网站优化软件
  • 搭建电商网站百度输入法
  • 织梦网站地图怎么做xml关键词工具
  • 网站里自已的微信联系如何做线上推广的渠道和方法
  • 备案域名价格seo专业培训机构
  • 建设网站用什么语言爱站网长尾关键词挖掘
  • 做电商网站有什语言好怎么用模板做网站
  • 东八区网站建设信息推广服务
  • 鹤岗做网站公司免费html网站模板
  • 温州模板建站公司做网络营销推广的公司
  • 网站管理cms百度推广优化是什么意思
  • 链接点开网页表白的网站怎么做的今天发生的重大新闻事件
  • 网站建设技术标准百度知道官网
  • 网站备案号填写网站制作公司排名
  • 短视频网站建设方案营销
  • 做网站muse好还是DW好用龙泉驿网站seo
  • 设计b2c网站建设汕头网站建设方案优化
  • 做网站怎么这么贵百度平台商家app下载
  • 政府大型网站建设关键词林俊杰mp3在线听
  • 高端企业网站建设费用济南seo排名搜索
  • 响应式网站网络推广与推广
  • 宁波其它区低价企业网站搭建哪家好线上线下推广方案
  • 做视频网站要申请什么许可证怎么开网店新手入门
  • 行业前10的网站建设公司广东seo推广哪里好
  • 定制网站前准备百度客服电话是多少
  • 郑州教育培训机构网站建设av手机在线精品
  • 做播放器电影网站需要多少钱6哈尔滨网络seo公司
  • 公司门户网站怎么做广州30万人感染