postgresql-视图

PG数据库之视图详解 PostgreSQL中的视图是一种虚拟表,通过SQL查询定义,不实际存储数据,可简化数据访问、提高数据安全、实现数据抽象和逻辑独立性,并有助于性能优化。视图在数据报表、分析、挖掘、安全及数据仓库和OLAP应用中具有重要作用。为优化视图性能,可以简化视图定义、优化基础表、合理使用连接、避免复杂逻辑和计算,以及使用物化视图。在创建和管理视图时,应遵循实用建议和最佳实践,如使用CREATE VIEW和CREATE OR REPLACE VIEW语句、限制用户访问权限、使用触发器进行额外验证、监控和分析视图性能等。 阅读详情

视图概述

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

使用视图的好处

在这里插入图片描述

创建视图

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

CREATE VIEW view_name AS query;

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

create view emp_details_view
as select
 e.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 select
 e.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) AS
 SELECT employee_id, CONCAT(first_name, ',', last_name), CONCAT(first_name,
',', last_name) AS path
 FROM employees
 WHERE manager_id IS NULL
 UNION ALL
 SELECT e.employee_id, CONCAT(e.first_name, ',', e.last_name),
CONCAT(ep.path, '->', e.first_name, ',', e.last_name)
 FROM employee_path ep
 JOIN 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。

PostgreSQL 视图 PostgreSQL 视图是一种强大的数据库功能,它可以帮助用户简化查询、提高安全性、优化性能和实现数据抽象。掌握视图的创建、特性和高级应用,对于数据库开发者来说至关重要。通过本文的介绍,相信您已经对 PostgreSQL 视图有了更深入的了解。# PostgreSQL 视图## 引言PostgreSQL 是一款功能强大的开源关系型数据库管理系统,它支持多种高级功能,包括视图(Views)。视图是数据库中的一个虚拟表,它基于查询的结果集提供数据。视图可以简化复杂的查询,增强数据安全性,以及提高查询性能。 阅读详情

相关推荐

PostgreSQL系统视图

查看所有的系统视图 postgres=# \dv pg_* (1)系统视图 视图名称 描述 pg_available_extensions 可用的扩展 pg_available_extension_versions 所有版本的扩展 pg_config 编译时配置参数 pg_cursors 打开的游标 pg_file_settings 配...

Direction 1740

【学习笔记】PostgreSQL之视图

视图允许用户通过始终如一的接口封装表的结构细节,这样可以避免表结构随着应用的进化而改变。PostgreSQL中的视图(View)是一个虚拟的表,是由一个或多个基本表(或其他视图)生成的结果集。你可以使用视图来隐藏复杂的查询逻辑,简化常见查询,并提高数据的安全性,因为你可以限制用户访问表的特定部分。对视图的更新和删除操作将直接影响基本表,因此在进行此类操作时要格外小心,确保你要执行的操作是正确的。是一个可更新的视图,它允许执行插入、更新和删除操作,这些操作实际上会影响名为。选项可以同时删除依赖于视图的对象,

聪明马的博客 3611

《PostgreSQL开发指南》第32篇 物化视图

物化视图(Materialized View)是 PostgreSQL 提供的一个扩展功能,它是介于视图和表之间的一种对象。

Tony.Dong的专栏 2521

PostgreSql 视图

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

脑子进水养啥鱼?的博客 6467

PostgreSQL: 十. 视图

十. 视图 10.1 视图概述 1、视图是一个虚拟表,是从数据库中一个或多个表中导出来的表。 2、视图的作用: 简单化,经常使用的查询可以被定义为视图,用户不必为以后的操作每次指定全部的条件; 安全性,通过视图,用户只能查询和修改他们能见到的数据; 逻辑数据独立性,视图可帮助用户屏蔽真实表结构变化带来的影响。 10.2 创建视图 【例10.1】在数据t上创建一个名为view_t的视图,代码如下...

数据知道的博客 3万+

【PostgreSQL教程】PostgreSQL 高级篇之 视图

View(视图)是一张假表,只不过是通过相关的名称存储在数据库中的一个 PostgreSQL 语句。 View(视图)实际上是一个以预定义的 PostgreSQL 查询形式存在的表的组合。 View(视图)可以包含一个表的所有行或从一个或多个表选定行。 View(视图)可以从一个或多个表创建,这取决于要创建视图的 PostgreSQL 查询。

No8g攻城狮的博客 1509

PostgreSQL——视图

视图是一个虚拟表,是从数据库中一个或多个表中导出来的表。视图还可以从己经存在的视图基础上定义。视图一经定义便存储在数据库中,与其相对应的数据并没有像表那样在数据库中再存储一份,通过视图看到的数据只是存放在基本表中的数据。对视图的操作与对表的操作一样,可以对其进行查询、修改和删除。当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化,同时,若基本表的数据发生变化,则这种变化也可以自动地反映到视图中。

吴声子夜歌的博客 1682

PostgreSQL 实战:一文理解视图与物化视图

PostgreSQL中视图(View)和物化视图(Materialized View)是两种重要的数据库对象。视图是虚拟表,不存储数据,每次查询实时计算,适用于简化复杂查询和权限控制;物化视图则物理存储查询结果,查询速度快但数据非实时,适合报表等低频更新场景。视图支持部分更新操作,物化视图需手动刷新数据。选择时需权衡实时性与性能:视图提供即时数据,物化视图优化查询速度但存在延迟。典型应用包括API接口(视图)、报表系统(物化视图)和复杂权限过滤(视图+RLS)。合理使用可构建高效安全的数据访问层。

数据知道的博客 2699

PostgreSQL15——视图

视图(View)本质上是一个存储在数据库中的查询语句。视图本身不包含数据,也被称为虚拟表。我们在创建视图时给它指定了一个名称,然后可以像表一样对其进行查询。替代复杂查询,减少复杂性。将复杂的查询语句定义为视图,然后使用视图进行查询,可以隐藏具体的实现;提供一致性接口,实现业务规则。在视图的定义中增加业务逻辑,对外提供统一的接口;当底层表结构发生变化时,只需要修改视图接口,而不需要修改外部应用,可以简化代码的维护并减少错误;控制对于表的访问,提高安全性。通过视图为用户提供数据访问,而不是直接访问表。

吴声子夜歌的博客 1237

超详细网安学习路线(Day1-Day2)

渗透测试(Penetration Testing),就是一种通过模拟恶意攻击者的技术与方法,挫败目标系统安全控制措施,取得访问控制权,并发现具备业务影响后果安全隐患的一种安全测试与评估方法。简单来说,就是合法去入侵别人的系统,来帮助其找出漏洞,增强防护能力。

aobulaien001的博客 3389

IMU数据处理避坑指南:从理论到实践的加速度计重力消除方案

本文详细解析了IMU数据处理中的重力消除技术,从理论基础到实践应用,涵盖了加速度计和陀螺仪的核心问题。通过ROS2实战案例,介绍了静态标定与动态校准的技术对比,以及多传感器融合的进阶策略,帮助开发者避免常见陷阱,提升IMU数据处理的精度和效率。

purple的博客 739

PostgreSQL物化视图详解

随着数据库规模的增大和查询复杂性的提高,数据库查询的性能问题变得越来越突出。为了优化查询性能,数据库系统引入了物化视图的概念。物化视图是一种预先计算和存储的查询结果,它可以在需要时直接提供查询结果,而无需重新执行复杂的查询操作。

谦谦均的博客 1929

ThinkAdmin后台Getshell

通过文件包含或者图片马的方式Getshell。修改其可允许的文件类型,php不允许,可添加。系统管理->系统参数配置->本地服务器存储。

hot_milk1的博客 1862

PostgreSQL视图

在PostgreSQL中,视图(VIEW)是一个伪表。 它不是物理表,而是作为普通表选择查询。 视图也可以表示连接的表。 它可以包含表的所有行或来自一个或多个表的所选行。 视图便于用户执行以下操作: 它以自然和直观的方式构建数据,并使其易于查找。 它限制对数据的访问,使得用户只能看到有限的数据而不是完整的数据。 它归总来自各种表中的数据以生成报告。 PostgreSQL创建视图 可以使用...

Orbita_wangtao 5787

Claude Code 错误解决方案: Request Timed Out 超时 原因、配置与解决方案

Claude Code 抛出 Request Timed Out 不仅可 能是网络问题,更大概率是 API 高负载或超大响应导致。本文从 默认超时机制出发,拆解三种根因场景,给出 API_TIMEOUT_MS 环境变量调优与任务拆分策略,帮助开发者在保证稳定性的同时 避免误判网络故障。

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 898

一文吃透 OData Deep Insert:从框架原理到 ABAP 实战

本文面向ABAP工程师,解析OData服务中的Deep Insert技术。文章首先阐述Deep Insert的业务背景,说明其适用于父子层级数据必须成组创建的场景(如销售订单与行项目)。随后深入框架实现机制,介绍SAP Gateway如何通过CREATE_DEEP_ENTITY方法处理嵌套请求,并强调开发者的责任边界。通过销售订单案例,文章对比了Deep Insert与$batch的适用场景差异,提供请求负载示例和DPC_EXT实现骨架代码。最后给出MPC_EXT声明深结构的三种套路,以及事务处理和错误处理

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 225

PostgreSQL创建视图

在PostgreSQL中,视图(VIEW)是一个伪表。 它不是物理表,而是作为普通表选择查询。视图也可以表示连接的表。 它可以包含表的所有行或来自一个或多个表的所选行。 视图便于用户执行以下操作: 它以自然和直观的方式构建数据,并使其易于查找。 它限制对数据的访问,使得用户只能看到有限的数据而不是完整的数据。 它归总来自各种表中的数据以生成报告。 PostgreSQL创建视图 可以使用CREATE VIEW语句来在PostgreSQL中创建视图。 您可以从单个表,多个表以及另一个视图创建它。 语法 CR

极客神殿 8726

基于YOLOv11的人脸识别系统:从构建到应用的全流程指南

深度学习是机器学习的一个分支,旨在通过多层神经网络模拟人脑的认知能力。它能够从大量数据中自动提取特征,并进行准确的预测和分类。在计算机视觉领域,深度学习技术已经取得了显著的成果,尤其是在图像识别、目标检测等方面。YOLOv11是YOLO系列模型的最新版本,结合了卷积神经网络(CNN)和其他创新技术。它在保持高精度的同时,显著提高了推理速度。YOLOv11的结构轻量且高效,非常适合实时目标检测任务。人脸检测的目标是从图像或视频中定位所有人脸的位置。

FJN110的博客 184

PostgreSQL View(视图)

PostgreSQL视图实战手册摘要 本手册全面介绍PostgreSQL视图技术,涵盖基础语法、高级特性与最佳实践。主要内容包括: 视图基础:虚拟表概念与核心优势(简化复杂查询、数据安全、权限控制等) 语法详解:创建/修改/删除视图的标准语法与示例 高级视图类型: 可更新视图(自动与触发器强制) 物化视图(高性能查询场景) 递归视图(处理层级数据) 安全视图(结合行级安全策略) 关键特性:WITH CHECK OPTION安全机制、权限管理独立于底层表 性能优化:索引策略、物化视图使用场景、EXPLAIN分

likuoelie的博客 844

Linux内核配置选项详解及编译过程

在内核编译完成后,可以通过重启系统并选择新编译的内核来使用它。可以在该菜单下选择需要编译进内核的设备驱动,也可以选择将设备驱动编译为模块。可以在该菜单下选择需要编译进内核的设备驱动,也可以选择将设备驱动编译为模块。可以选择需要的调试选项,并根据需要启用或禁用相应的功能。可以选择需要的文件系统类型,并根据需要启用或禁用相应的选项。可以选择需要的网络协议和功能,并根据需要启用或禁用相应的选项。可以选择需要的调试选项,并根据需要启用或禁用相应的功能。可以选择需要的文件系统类型,并根据需要启用或禁用相应的选项。

TechGlide的博客 745

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

PostgreSQL 视图VIEW详解:从基础到高级应用

PostgreSQL视图(VIEW)详解:从创建到高级应用 摘要: PostgreSQL视图是一种基于SQL查询的虚拟表,不存储实际数据但提供动态查询结果。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 6454

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

3.4 PostgreSQL视图的创建与使用

在 PostgreSQL 中,视图(View)是基于 SQL 语句的虚拟表。它不存储数据,而是根据定义的查询动态生成结果集。视图可以包含一个或多个表的列,甚至可以包含复杂计算和多表连接。在创建视图时,可以定义要包含的字段(列)和筛选条件。选择特定字段在SELECT语句中指定需要的字段。设置筛选条件使用WHERE子句来定义视图的数据筛选条件。示例这将创建一个名为的视图,显示所有活跃状态的客户信息。修改视图定义涉及到删除旧视图并创建一个新视图。重新创建视图。

Python老吕的博客 2054

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

PostgreSQL视图和物化视图

PostgreSQL 视图、物化视图

weixin_45706122的博客 8662
上一篇: postgresql-索引与优化
下一篇: postgresql-存储过程
迷失的小鹿
博客等级 码龄8年 1万+粉丝 199原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值