PgSQL——学习笔记14:别名 & 触发器 & 索引

本文详细介绍了PostgreSQL中的表别名、触发器和索引。别名用于改善表和字段名称的可读性;触发器是数据库的回调函数,可在特定事件如INSERT、UPDATE、DELETE时自动执行;索引则能加速数据检索,包括单列、组合、唯一和局部索引等类型。通过实例展示了如何创建、查看和删除触发器以及索引,强调了合理使用索引的重要性及其对性能的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

PostgreSQL 别名:重命名一张表或者一个字段的名称

PostgreSQL 触发器:数据库的回调函数

创建触发器:

列出触发器:

删除触发器:

PostgreSQL 索引:加速搜索引擎检索数据的一种特殊表查询

CREATE INDEX 语句:创建索引

索引类型

单列索引:是一个只基于表的一个列上创建的索引

组合索引:是基于表的多列上创建的索引

唯一索引:不允许任何重复的值插入到表中

局部索引:是在表的子集上构建的索引

隐式索引:是在创建对象时,由数据库服务器自动创建的索引

列出表中的所有索引:/d table_name

列出数据库中所有索引:/di

删除索引:DROP INDEX index_name;


PostgreSQL 别名:重命名一张表或者一个字段的名称

我们可以用 SQL 重命名一张表或者一个字段的名称,这个名称就叫着该表或该字段的别名。

创建别名是为了让表名或列名的可读性更强。

SQL 中 使用 AS 来创建别名。

/*表的别名语法:*/
SELECT column1, column2....
FROM table_name AS alias_name
WHERE [condition];

/*列的别名语法:*/
SELECT column_name AS alias_name
FROM table_name
WHERE [condition];

 实例:

mydb=# select * from company;
 id | name  | age |                      address                       | salary | join_date
----+-------+-----+----------------------------------------------------+--------+-----------
  1 | Paul  |  32 | California                                         |  20000 |
  2 | Allen |  25 | Texas                                              |  15000 |
  3 | Teddy |  23 | Norway                                             |  20000 |
  4 | Mark  |  25 | Rich-Mond                                          |  65000 |
  5 | David |  27 | South-Hall                                         |  85000 |
  8 | Paul  |  24 | Houston                                            |  20000 |
  9 | James |  44 | Norway                                             |   5000 |
 10 | James |  45 | Texas                                              |   5000 |
  6 | Kim   |  22 |                                                    |        |
  7 | James |  24 |                                                    |        |
(10 行记录)


mydb=# select * from department;
 id |                        dept                        | emp_id
----+----------------------------------------------------+--------
  1 | IT Billing                                         |      1
  2 | Engineering                                        |      2
  3 | Finance                                            |      7
  4 | Engineering                                        |      3
  5 | Finance                                            |      4
  6 | Engineering                                        |      5
  7 | Finance                                            |      6
(7 行记录)

/*下面我们分别用 C 和 D 表示 COMPANY 表和 DEPAERMENT 表的别名:*/
mydb=# SELECT C.ID, C.NAME, C.AGE, D.DEPT FROM COMPANY AS C, DEPARTMENT AS D WHERE  C.ID = D.EMP_ID;
 id | name  | age |                        dept
----+-------+-----+----------------------------------------------------
  1 | Paul  |  32 | IT Billing
  2 | Allen |  25 | Engineering
  7 | James |  24 | Finance
  3 | Teddy |  23 | Engineering
  4 | Mark  |  25 | Finance
  5 | David |  27 | Engineering
  6 | Kim   |  22 | Finance
(7 行记录)

/*下面,我们用 COMPANY_ID 表示 ID 列,COMPANY_NAME 表示 NAME 列,来展示列别名的用法:*/
mydb=# SELECT C.ID AS COMPANY_ID, C.NAME AS COMPANY_NAME, C.AGE, D.DEPT  FROM COMPANY AS C, DEPARTMENT AS D WHERE  C.ID = D.EMP_ID;
 company_id | company_name | age |                        dept
------------+--------------+-----+----------------------------------------------------
          1 | Paul         |  32 | IT Billing
          2 | Allen        |  25 | Engineering
          7 | James        |  24 | Finance
          3 | Teddy        |  23 | Engineering
          4 | Mark         |  25 | Finance
          5 | David        |  27 | Engineering
          6 | Kim          |  22 | Finance
(7 行记录)

PostgreSQL 触发器:数据库的回调函数

PostgreSQL 触发器是数据库的回调函数,它会在指定的数据库事件发生时自动执行/调用。

下面是关于 PostgreSQL 触发器几个比较重要的点:

  • PostgreSQL 触发器可以在下面几种情况下触发:

    • 在执行操作之前(在检查约束并尝试插入、更新或删除之前)。
    • 在执行操作之后(在检查约束并插入、更新或删除完成之后)。
    • 更新操作(在对一个视图进行插入、更新、删除时)。
  • 触发器的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值