首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PostgreSQL 教程

连接多个 主题 描述 连接 向您展示 PostgreSQL连接简要概述。 别名 描述如何在查询中使用别名。 内连接 从一个中选择在其他中具有相应行行。...交叉连接 生成两个或多个笛卡尔积。 自然连接 根据连接公共列名称,使用隐式连接条件连接两个或多个。 第 4 节....主题 描述 插入 指导您如何将单行插入中。 插入多行 向您展示如何在插入多行。 更新 更新现有数据。 连接更新 根据另一个值更新值。 删除 删除数据。...删除 删除现有及其所有依赖对象。 截断 快速有效地删除大所有数据。 临时 向您展示如何使用临时。 复制表 向您展示如何将表格复制新表格。 第 13 节....PL/pgSQLPostgreSQL 存储过程部分将逐步向您展示如何使用 PL/pgSQL 过程语言开发 PostgreSQL 用户定义函数

43710

MySQL与PostgreSQL对比

用户定义函数可以用 PL/pgSQL(专用过程语言)、PL/Tcl、PL/Perl、PL/Python 、SQL 和 C 编写。...18)序列支持更好 MySQL 不支持多个从同一个序列中取 id, 而 PostgreSQL 可以。 19)对子查询支持更好 对子查询支持。...PostgreSQL只支持对于每一个用户在一个数据库上或一个数据 INSERT、SELECT和UPDATE/DELETE授权,而MySQL允许你定义一整套不同数据级、级和列级权限。...对于列级权限, PostgreSQL可以通过建立视图,并确定视图权限来弥补。MySQL还允许你指定基于主机权限,这对于目前PostgreSQL是无法实现,但是在很多时候,这是有用。...对于索引组织来说,如果每次在中间插入数据,可能会导致索引分裂,索引分裂会大大降低插入性能。

8.8K10
您找到你想要的搜索结果了吗?
是的
没有找到

PostgreSQL - DML操作汇总

匿名函数 DO关键字用来执行一段一次性匿名函数,具体可以看这篇文章:PostgreSQL - pl/pgsqlDO关键字 遍历数据,变量赋值 遍历操作以及变量赋值操作需要在匿名函数脚本中使用,且匿名函数在执行时必须显示开启事务...,在遍历时会将数据缓存起来,如果在遍历时改变了被遍历数据,是不会影响被缓存数据。...插入其他数据 1 2 3 4 INSERT INTO tab_test (id, name, ref_no, version) select id, name, ref_no, version from...tab_student; 使用insert into ... select from ...来插入其他数据,也可以是同一个,但此时需要起别名来区分数据。...PostgreSQLupdate语句关联外表写法与MySQL不同,具体可以看这篇文章:PostgreSQL - update语句怎么关联多个 此外,update语句也可以连接自身,只要起了别名将二者区分开来就行

78930

POSTGRESQL PG VS SQL SERVER 到底哪家强? (译) 应该是目前最全面的比较

MSSQL 中文:那个数据库更方便使用 PostgreSQL 是一种先进面向对象关系型数据库管理系统,使用了结构化查询语言 (SQL) 以及其自己过程语言 PL/pgSQL。...LOWER()函数允许用户将字符串转换为全小写以进行比较(还有类似的UPPER()函数)。默认情况下,PostgreSQL名和列名转换为小写,除非这些名称放在引号中。...Compare the query in PostgreSQL vs. MSSQL 中文:两种数据库查询语句区别 PostgreSQL PostgreSQL提供PL/pgSQL过程式编程语言。...MSSQL 中文:两种数据库SQL 语句体系不同 PostgreSQL提供PL/pgSQL过程式编程语言。...SQL Server包含对内存中优化磁盘存储扩展性增强。当前版本提供了多个并发线程以保存内存中优化,多线程恢复和合并操作,以及动态管理视图

1.1K20

OushuDB-PL 过程语言-PLpgSQL - SQL过程语言

OushuDB兼容PostgreSQL允许使用除了 SQL 和 C 之外其他语言编写用户定义函数。这些其他 语言通常被称作过程语言(Procedural Language, PL)。...就像任何其他 C 函数一样,处理器本身是一个编译共享对象并且按需 载入 C 语言函数。...PL/pgSQL - SQL过程语言 PL/pgSQLPostgreSQL 数据库系统一个可加载过程语言,它设计目标是创建一种可加载过 程语言,可以: 用于创建函数和触发器过程 为 SQL...一、概述: PL/pgSQL函数在第一次被调用时,其函数源代码(文本)将被解析为二进制指令树,但是函数 达式和SQL命令只有在首次用到它们时候,PL/pgSQL解释器才会为其创建一个准备好执行规划...鉴于以上规则,在PL/pgSQL里直接出现SQL命令必须在每次执行时均引用相同和字段,换句话 说,不能将函数参数用作SQL命令名或字段名。

67010

CentOS(linux)安装PostgreSQL

一些PostgreSQL系统极限值如下表所列: 极限值: 最大单个数据库大小 不限 最大数据单大小 32 TB 单条记录最大 1.6 TB 单字段最大允许 1 GB 单允许最大记录数 不限 单最大字段数...并且PostgreSQL甚至可以使用此方式实现单级或多级继承。 规则功能是用来调用查询重算功能,允许数据库设计人员根据不同视图来创建规则,以实现动态改变数据库原操作为新操作功能。...高度可定制性 PostgreSQL存储过程开发可以使用众多程序语言,包括Java、Perl、Python、Ruby、Tcl、C/C++和自带PL/pgSQL,其中PL/pgSQL与Oracle...PL/SQL很相似,内置了数百个函数,功能从基本算术计算和字符串处理到加密逻辑计算并与Oracle有高度兼容性。...相应地,PostgreSQL也包括一套框架允许开发人员定义和创建他们自己可在函数中使用数据类型,也可以定义操作符新处理方式,具有了这样能力后,PostgreSQL现已具有了各种高级数据类型,包括几何图形

2.8K20

HAWQ技术解析(十) —— 过程语言

对于习惯了编写存储过程DBA来说,这无疑大大提高了HAWQ易用性,冲这点也得给HAWQ点个赞。这里主要研究HAWQ内建SQL语言函数PL/pgSQL函数编程。...过程语言解决就是这个问题。顾名思义,PL/pgSQLPostgreSQL作为编程语言。它能实现以下功能: 建立plpgsql函数。 为SQL语言增加控制结构。 执行复杂计算。...PL/pgSQL自动在所有HAWQ数据库中安装。         PL/pgSQL函数参数接收任何HAWQ服务器所支持标量数据类型或数组类型,也可以返回这些数据类型。...图3 四、函数         函数返回多行结果集,调用方法就像查询一个from子句中视图或子查询。如果函数返回单列,那么返回列名就是函数名。...图4         与PostgreSQL不同,HAWQ函数不能用于连接。在PostgreSQL中以下查询可以正常执行,如图5所示。

4.2K50

PostgreSQL安装和使用教程

它广泛用于各种类型应用程序,从小型项目大规模企业级系统。本文将向您展示如何在不同平台上安装和配置PostgreSQL,并介绍一些基本数据库操作,让您迅速掌握使用技巧。...连接数据库: 使用psql命令行工具或pgAdmin等工具连接到数据库。 执行SQL操作: 创建插入数据、查询数据等。...可编程性:PostgreSQL支持多种编程语言,如SQL、PL/pgSQLPL/Python、PL/Perl等,可以方便地进行开发和扩展。 安装 postgreSQL下载地址在这里。...我们可以使用pgsql来创建这个表格,并插入一些样本数据。...以上就是一个简单pgsql用法示例,展示了如何创建表格、插入数据和查询数据。 创建外键 在 PostgreSQL 中,创建外键需要以下步骤: 创建主表和从

13410

postgresql 触发器 简介(转)

什么是触发器函数, 触发器函数可以用哪些语言编写? 触发器有哪些分类? 同一个视图上可以建多少个触发器? 如果一个视图上有多个触发器, 调用顺序如何决定?...触发器函数可以用哪些语言编写? 给或者视图创建触发器时需要指定这个触发器被触发时执行函数, 这个函数就是触发器函数....如果一个视图上有多个触发器, 调用顺序如何决定? 同一个视图上可以创建多个触发器, 调用顺序和触发器类型有关....– 同一个触发器函数可以多次被触发器调用, 上面的例子中表和视图14个触发器中都是调用debug()触发器函数. – 触发器函数返回值为空 或者是 视图对应record类型....=1, 但是注意插入表里ID是2.

3.7K20

PG几个有趣插件和工具介绍

但它不是PostgreSQL优化设置灵丹妙药。许多设置不仅取决于硬件配置,还取决于数据库大小、客户端数量和查询复杂性。只有考虑所有这些参数,才能对数据库进行最佳配置。...虚拟索引并不是真实存在索引,因此不耗费CPU、磁盘或其他资源,可以有效验证索引是否有效。 创建插入测试数据。...可以在PostgreSQL上使用Oracle特殊函数和包,并且兼容Oracle部分语法、数据类型、函数、字典等。 通过orafce可以和Oracle兼容功能。...plprofiler https://github.com/bigsql/plprofiler 查找PL/pgSQL函数和存储过程中性能问题可能很困难,尤其是在代码嵌套情况下。...img 在页面顶部突出是两个函数tpcb_fetch_balance()和它调用者tpcb_upd_accounts()。可以看到它实际上占了PL/pgSQL函数内部总执行时间99%以上。

39230

Linux环境下PG 14安装部署

以下方法已在9.614版本测试过: -- 下载源码包 wget https://ftp.postgresql.org/pub/source/v14.2/postgresql-14.2.tar.gz...这个端口可以在以后修改,不过如果你在这里声明,那么服务器和客户端将有相同编译好了默认值。这样会非常方便些。通常选取一个非默认值理由是你企图在同一台机器上运行多个PostgreSQL服务器。...--with-perl 制作PL/Perl服务器端编程语言。 --with-python 制作PL/Python服务器端编程语言。...这是内存储和I/O单位。默认值(8K字节)适合于大多数情况,但是在特殊情况下可能其他值更有用。这个值必须是2幂并且在 1 和 32 (K字节)之间。注意修改这个值需要一次 initdb。...PGDATABASE 数据库名 PGUSER 要连接PostgreSQL用户名。缺省是与运行该应用用户操作系统名同名用户。 PGPASSWORD 如果服务器要求口令认证,所用口令。

2.8K20

CMU 15-445 -- Embedded Database Logic - 12

/SQL Postgres:PL/pgSQL MySQL/Sybase:Transact-SQL 以下是 PL/pgSQL 例子: CREATE OR REPLACE FUNCTION sum_foo...这意味着一旦数据被选择并复制中,新内容将保持不变,即使原始数据发生更改也不会影响新内容。 在总结上述两个概念: 视图是动态,每次引用视图时都会生成最新结果。...SELECT…INTO创建一个静态,一旦数据复制中,该内容不会随原始更改而更新。...它不能是多个组合,也不能包含子查询。 不包含分组、去重、联合或聚合:该视图不能涉及GROUP BY、HAVING、UNION或聚合函数(例如SUM、COUNT、AVG等)等操作。...它应该是对单个基本简单、直接数据表示。 如果一个视图满足以上两个条件,就被认为是可更新。这意味着应用程序可以对该视图执行修改(插入、更新、删除)操作,并且这些更改将应用到底层基本中。

21540

CentOS7下安装PostgreSQL12

PostgreSQL是一个功能强大开源数据库系统。经过长达15年以上积极开发和不断改进,PostgreSQL已在可靠性、稳定性、数据一致性等获得了业内极高声誉。...PostgreSQL是完全事务安全性数据库,完整地支持外键、联合、视图、触发器和存储过程(并支持多种语言开发存储过程)。...PostgreSQL对很多高级开发语言有原生编程接口,作为一种企业级数据库,PostgreSQL以它所具有的各种高级功能而自豪,像多版本并发控制(MVCC)、按时间点恢复(PITR)、空间、异步复制...它也在所能管理大数据量和所允许大用户量并发访问时间具有完全高伸缩性 ---- 下面介绍在CentOS7下安装PostgreSQL12 本文参考官网安装指导进行安装 https://www.postgresql.org...7、使用客户端连接数据库,并测试创建插入数据 ?

3.3K11

进阶数据库系列(十一):PostgreSQL 存储过程

PostgreSQL 概述 在 PostgreSQL 中,除了标准 SQL 语句之外,通过创建复杂过程和函数来满足程序需要,我们称为存储过程和自定义函数(User-Defined Function)。...它有助于您执行通常在数据库中单个函数中进行多次查询和往返操作操作。 PL/pgSQL 简单易学,无论是否具有编程基础都能够很快学会。...PL/pgSQL 存储过程,它和 Oracle PL/SQL 非常类似,是 PostgreSQL默认支持存储过程,下面针对优缺点给大家做了简要分析。 优点 减少应用和数据库之间网络传输。...val值,如下图: 并且在a中会插入一条数据,如下图。...游标是 PL/pgSQL一个强大数据处理功能,更多使用方法可以参考官方文档:https://www.postgresql.org/docs/current/plpgsql-cursors.html

1.4K20

RazorSQL for Mac(数据库查询工具)

RazorSQL Mac版是一款专门为mac用户推出数据库管理软件,允许您从一个数据库工具查询,更新,导航和管理所有主要数据库;RazorSQL for Mac(数据库查询工具)1、用于浏览数据库对象数据库导航器...3、用于创建,编辑,删除,描述,更改和查看表格,视图,索引和序列可视化工具4、Visual Tools用于创建,编辑,删除和执行存储过程,函数和触发器5、强大编程编辑器,嵌入强大EditRocket...6、导出工具 - 以各种格式导出数据7、导入工具 - 将分隔文件,Excel文件或固定宽度文件中数据导入表格中8、内置关系数据库引擎(HSQLDB),开箱即用,不需要最终用户管理9、生成DDL工具以生成表格...10、/ SQL查询比较工具,用于跨多个连接比较或查询11、 数据库数据搜索工具,用于搜索单个或多个数据库和查看数据。12、数据库对象搜索工具,用于搜索数据库对象。...13、备份工具,如数据库备份工具和备份工具14、 数据库转换工具,用于许多流行数据库,如MySQL,Oracle,DB2,PostgreSQL,SQLite,MS SQL Server和MS Access

77410

Ora2pg 把oracle数据导入postgres

4、导出Oracle模式一个PostgreSQL(7.3以后)模式中。 5、导出预定义函数、触发器、程序、包和包体。 6、导出范围和列表分区。 7、导出所有的数据或跟随一个WHERE子句。...13、Ora2Pg尽力将Oracle数据库转换到PostgreSQL中,但是仍需一部分手动工作。...Oracle特定PL/SQL代码生成函数、过程 和触发器时必须进行审查,以便匹配PostgreSQL语法 2 Ora2pg支持导出对象 这是允许导出不同格式,默认是TABLE: table 提取所有包括索引...(以下两条是10.0新加) fdw 提取外部数据封装 partition 提取作为快照刷新视图所建立视图 3 Ora2pg数据类型转换对照 oracle类型 postgresql类型 date...--client_encoding code: 设置 PostgreSQL 客户端编码。 --view_as_table str: 将视图导出为多个视图使用逗号分隔。

3.6K41

Ora2pg 把oracle数据导入postgres

4、导出Oracle模式一个PostgreSQL(7.3以后)模式中。 5、导出预定义函数、触发器、程序、包和包体。 6、导出范围和列表分区。 7、导出所有的数据或跟随一个WHERE子句。...13、Ora2Pg尽力将Oracle数据库转换到PostgreSQL中,但是仍需一部分手动工作。...Oracle特定PL/SQL代码生成函数、过程 和触发器时必须进行审查,以便匹配PostgreSQL语法 2 Ora2pg支持导出对象 这是允许导出不同格式,默认是TABLE: table 提取所有包括索引...(以下两条是10.0新加) fdw 提取外部数据封装 partition 提取作为快照刷新视图所建立视图 3 Ora2pg数据类型转换对照 oracle类型 postgresql类型 date...--client_encoding code: 设置 PostgreSQL 客户端编码。 --view_as_table str: 将视图导出为多个视图使用逗号分隔。

3.7K40

OushuDB-PL 过程语言-基本语句

赋值: PL/pgSQL中赋值语句形式为:identIFier := expression,等号两端变量和表达式类型或者一致, 或者可以通过PostgreSQL转换规则进行转换,否则将会导致运行时错误...执行动态命令: 如果在PL/pgSQL函数中操作或数据类型在每次调用该函数时都可能会发生变化,在这样情况下, 可以考虑使用PL/pgSQL提供EXECUTE语句:EXECUTE command-string...这里需要特别注意是,该命令字符串将不会发生 任何PL/pgSQL变量代换,变量数值必需在构造命令字符串时插入该字符串中。...和所有其它PL/pgSQL命令不同是,一个由EXECUTE语句运行命令在服务器内并不会只prepare和保 存一次。相反,该语句在每次运行时候,命令都会prepare一次。...因此命令字符串可以在函数里动态 生成以便于对各种不同和字段进行操作,从而提高函数灵活性。然而由此换来却是性能上 折损。

46520
领券