Skip to content

Latest commit

 

History

59 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 -- 在表上发生插入事件后,使用插入后触发器自动调用函数。

About

本PostgreSQL教程将从入门到高级全面教你学习PostgreSQL。

Topics

Resources

Stars

13 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages