【学习笔记】PostgreSQL进阶技巧之别名、索引、日期时间和自增

这一节主要包括以下内容:

  • 别名
  • 索引
  • 日期和时间函数
  • 自增

一、别名

说明:

别名(Alias)用于为列或表提供临时名称。通常来说,当您执行自联接时,会创建一个临时表.

1.列别名

语法1:

SELECT column_name AS alias_name 
FROM table_name 
conditions... ;

示例1:

select name, max(salary) as package
from employees
group by name;

结果1:

2.表别名

语法2:

SELECT column1, column2.... 
FROM table_name AS alias_name 
conditions.... ;

示例2:

select e.id, e.name, e.salary
from employees as e;

结果2:

二、索引

说明:

索引是用于加速从数据库检索数据的特殊查找表。数据库索引类似于书的索引(目录)。 索引为出现在索引列中的每个值创建一个条目。

1.创建索引

语法:
单列索引:

CREATE INDEX index_name ON table_name(column_name);

多列索引:

CREATE INDEX index_name ON table_name(column_name1, column_name2);

唯一索引:(创建唯一索引以获取数据的完整性并提高性能。它不允许向表中插入重复的值,或者在原来表中有相同记录的列上也不能创建索引)

CREATE UNIQUE INDEX index_name on table_name (column_name);

示例1:

create index employees_index on employees(name);

结果1:

示例2:

create index multicolumn_index on employees(name,salary);

结果2:

示例3:(如果表中有同样的行,就会报错)

create unique index unique_on_name on employees(name);

结果3:

2.删除索引

语法:

DROP INDEX index_name;

示例:

drop index multicolumn_index;

注意事项:

  • 应该避免在小表上使用索引
  • 不要为具有频繁,大批量更新或插入操作的表创建索引
  • 索引不应用于包含大量null值的列
  • 不要在经常修改的列上创建索引

三、日期和时间函数

下表列出重要的日期和时间的函数:

1.AGE()

示例:

select age(timestamp '2019-05-16', timestamp '1997-03-07');

结果:

2.CURRENT DATE/TIME

参数列表:

示例:

select current_date,current_time;

结果:

四、自动递增

说明:

类型名称serial用于创建整数列。 类型名称bigserial创建一个bigint类型的列。 如果你期望在表的使用期限内使用超过2^31个标识符,则应使用bigserial。 类型名称smallserial创建一个smallint列。

语法:

CREATE TABLE table_name (colname SERIAL);

示例:(之后插入的数据可以不指定id,自动递增插入表中)

CREATE TABLE COMPANY(
    ID SERIAL PRIMARY KEY,
    NAME TEXT NOT NULL,
    AGE INT NOT NULL,
    ADDRESS CHAR(50),
    SALARY REAL);

猜你喜欢

转载自www.cnblogs.com/echizen/p/13379339.html