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