PostgreSQL-Tutorial目录 - 教程
PostgreSQL-Tutorial
本 PostgreSQL
教程将从入门到高级全面教你学习 PostgreSQL
。
内容翻译来自
PostgreSQL-Tutorial
第 1 节 PostgreSQL入门
▶ 什么是 PostgreSQL
?解释什么是 PostgreSQL
以及你可以用它做什么。
▶ 创建新表 – 了解如何在 PostgreSQL
中创建新表。
▶ 向表中插入数据– 向您展示如何向表中插入一行或多行数据。
▶ 从表中查询数据– 使用SELECT语句从表中查询数据。
▶ 字符串拼接– 了解如何将多个字符串拼接成一个字符串。
▶ 删除表– 指导您从PostgreSQL数据库中删除表。
第 2 节 筛选表中的行
▶ WHERE
– 使用 WHERE
子句从表中筛选行。
▶ BETWEEN
否介于两个值之间。就是– 检查一个值
▶ IN
– 判断一个值是否在一组值中。
▶ 更新– 更新表中一行或多行的数据。
▶ 删除– 从表中删除一行或多行。
第 3 节 使用表格数据
▶ 数据库设计– 从头开始为库存管理系统设计数据库。
▶ 主键– 向您展示如何为表定义主键。
▶ 非空约束– 介绍NULL,并使用非空约束确保列不包含NULL。
▶ DEFAULT
约束– 为表列设置默认值。
▶ CHECK
约束--向一个或多个列添加验证规则,以确保值满足条件。
▶ 唯一约束– 确保一列或一组列中的值在同一表的各行中是唯一的。
▶ 外键– 了解如何为表创建外键。
第 4 节 排序和限制
▶ ORDER BY
– 按一个或多个列对行进行排序。
▶ LIMIT
– 仅返回查询结果中的一部分行。
▶ FETCH
– 作用类似于 LIMIT
子句,用于跳过部分行并从查询结果中返回一部分行。
▶ IS NULL
否为NULL。就是– 检查一个值
第 5 节 连接表
▶ Inner Join
– 连接两个表,并从第一个表中选择在右表中有匹配行的行。
▶ Left Join
– 将左表与右表连接,并从左表中选择所有行以及右表中匹配的行。
▶ Right Join
– 将左表与右表连接,并从右表中选择所有行以及左表中匹配的行。
▶ Self Join
– 使用内连接、左连接或右连接将一个表与自身连接,以比较同一表中的行。
▶ Full Join
– 合并两个表中的行,并返回两个表中的匹配行和非匹配行。
▶ Cross Join
--连接两个表并返回一个结果集,该结果集包含两个表中所有可能的行组合。
▶ Natural Join
– 基于列名连接两个表。
第 6 节 行分组
▶ GROUP BY
– 按表中一列或多列的值将行分组,并对每个组应用聚合函数。
▶ HAVING
– 根据条件筛选行组。
▶ GROUPING SETS
– 在单个查询中创建多个分组。
▶ ROLLUP
– 创建层级汇总。
▶ CUBE
– 创建指定列的所有可能聚合组合。
第 7 节 集合运算
▶ UNION
--将一个结果集附加到另一个结果集,并返回单个结果集。
▶ INTERSECT
– 返回两个结果集的交集。
▶ EXCEPT
– 找出两个查询的两个结果集之间的差异。
第 8 节 PostgreSQL数据类型
▶ Boolean
– 在数据库中存储布尔数据,包括 true、false
和 NULL
值。
▶ Char
--在数据库中存储固定长度和填充字符串。
▶ Varchar
--在数据库中存储可变长度的字符串。
▶ Text
--存储无大小限制的可变长度字符数据。
▶ Integer
– 使用各种整数类型存储整数。
▶ Decimal
– 使用 decimal
或 numeric
类型存储具有精度的数值数据。
▶ Date
– 在表中存储不含时间数据的日期。
▶ Time
--在表中存储不含日期的时间数据。
▶ Timestamp
– 在数据库中存储不带时区的本地日期和时间。
▶ Timestamp with a time zone
– 了解如何使用 TIMESTAMPTZ
数据类型处理带时区的时间戳值。
▶ Interval
– 存储时间间隔值。
▶ UUID
– 向您展示如何将 UUID
类型用于主键列。
第 9 节 子查询
▶ Subquery
– 了解如何编写嵌套在另一个查询中的查询,以形成更灵活的查询
▶ Correlated Subquery
– 向您展示如何使用关联子查询来选择依赖于外部查询值的数据。
▶ Subquery with IN operator
– 向您展示如何在 WHERE
子句中使用带IN运算符的子查询来筛选行。
▶ EXISTS
– 了解如何使用 EXISTS
运算符检查子查询返回的行是否存在。
▶ ANY
– 将一个值与子查询返回的一组值进行比较,如果至少有一个比较结果为真,则返回真。
▶ ALL
– 将一个值与子查询返回的一组值进行比较,如果所有比较结果都为真,则返回真。
第 10 节 CTE公用表表达式
▶ CTE
– 了解如何使用公用表表达式 CTE
简化复杂查询。
▶ Recursive CTE
– 向你展示如何使用递归 CTE
执行递归查询。
第 11 节 选择不同的行
▶ SELECT DISTINCT
– 凭借一列或多列的值从结果集中消除重复行。
▶ SELECT DISTINCT ON
– 了解如何将行分组为不同的组,并选择每个组中的第一行。
第 12 节 数据库视图
▶ View
– 了解视图以及如何利用视图创建可重用的查询并简化复杂查询。
▶ Materialized Views
– 创建物化视图以提高耗时查询的性能。
第 13 节 条件表达式
▶ CASE expression
– 在查询中添加 if-else
逻辑,以构建更灵活的查询。
▶ COALESCE
– 返回第一个非空参数,允许您将 NULL
替换为非 NULL
值。
▶ NULLIF
– 如果两个参数相同则返回 NULL
,使你能够用 NULL
替换某个值。
▶ GREATEST
– 返回一组值中的最大值。
▶ LEAST
– 返回值列表中的最小值。
第 14 节 增强表结构
▶ ALTER TABLE
– 通过添加列、删除列、重命名表等方式修改表结构。
▶ Sequence
– 了解如何使用序列生成连续整数。
▶ Identity Column
– 使用标识列基于隐式序列自动生成整数。
▶ Adding columns to a table
– 向您展示如何向表中添加一个或多个列。
▶ Renaming tables
– 了解如何将表名更改为新名称。
▶ Renaming columns
– 指导你如何更改现有表列的名称。
▶ Dropping columns
– 向您展示如何从表中删除一个或多个列。
第 15 节 高级文本搜索
▶ LIKE
– 查找与模式匹配的字符串。
▶ Regular Expressions
– 了解如何使用匹配运算符 (~)
来搜索与 POSIX
正则表达式匹配的字符串。
▶ SIMILAR TO
– 搜索与包含通配符 (% and _ )
或正则表达式的模式相匹配的字符串。
▶ Full-text search
– 执行全文搜索
第 16 节 用户定义函数
▶ Create functions
– 了解如何创建用户定义函数。
▶ Drop functions
– 向您展示如何删除一个或多个用户定义函数。
第 17 节 存储过程
▶ Create stored procedures
– 展示如何使用 CREATE PROCEDURE
语句创建存储过程。
▶ Drop procedure
– 了解如何从数据库中移除存储过程。
第 18 节 索引
▶ Index
– 利用索引提高查询性能。
▶ CREATE INDEX
– 为表的一个或多个列创建索引。
▶ DROP INDEX
– 从数据库中删除索引。
▶ Unique index
– 强制表中一列或多列的值具有唯一性。
▶ Expression Index
– 基于涉及表列的表达式结果创建索引,这允许优化含有表达式的查询。
▶ Partial Indexes
– 创建部分索引,其中包含索引列中的部分行,以减小索引大小并提高查询性能。
▶ Index-only Scans
– 利用仅索引扫描从索引中完整检索数据。
第 19 节 非规范化数据类型
▶ Composite types
– 解释什么是复合类型以及如何管理复合类型,例如创建新的复合类型。
▶ Drop Type
– 了解如何从数据库中移除用户定义的类型。
▶ Array
– 使用数组数据类型在一个列中存储多个相同类型的值。
▶ XML
– 使用 XML
数据类型在数据库中存储 XML
文档或 XML
片段。
▶ Enum
– 定义一个接受小型固定值列表的列。
▶ JSON
– 使用 JSON
数据类型在数据库中存储 JSON
。
▶ Cast
– 将一种类型的值转换为另一种类型。
第 20 节 触发器
▶ Triggers
– 了解如何使用触发器自动响应表上发生的事件。
▶ Drop Trigger
– 指导你如何从数据库中的表中删除触发器。
▶ Disabling Triggers
– 向您展示如何关闭表的触发器,以避免在执行批量素材加载时产生性能开销。
▶ Event Triggers
– 了解如何应用事件触发器来监控和控制数据库结构的变化。
▶ BEFORE INSERT Trigger
– 使用插入前触发器可在向表中插入行之前自动调用函数。
▶ AFTER INSERT Trigger
– 在表上发生插入事件后,运用插入后触发器自动调用函数。