📜  PostgreSQL – 备忘单

📅  最后修改于: 2022-05-13 01:57:15.177000             🧑  作者: Mango

PostgreSQL – 备忘单

PostgreSQL是一个功能强大的开源对象关系数据库系统,旨在帮助开发人员构建应用程序、管理员保护数据完整性和构建容错环境。它支持高级数据类型和性能优化功能,如 Ms-SQL Server 和 Oracle。

PostgreSQL 的特点:

  • 开源数据库管理系统
  • 支持 ACID 属性
  • 多样化的索引技术
  • 基于日志和基于触发器的复制 SSL
  • 支持 JSON
  • 支持地理对象
  • 面向对象且兼容 ANSI-SQL 2008

PostgreSQL 中的数据类型:

下表列出了 PostgreSQL 中可用的所有数据类型:

PostgreSQL Data Types

NumericCharacterDate/TimeMonetaryBinary
BooleanGeometricJSONEnumeratedText-Search
UUIDNetwork Address TypesCompositeObject IdentifiersPseudo
BitStringXMLRangeArrayspg_lsn

  • 数字 数据类型: smallint、integer、bigint、decimal、numeric、real、serial。
  • 字符数据类型: varchar(n)、text、char(n)。
  • 日期/时间数据类型:时间戳、日期、时间、间隔。
  • 货币数据类型:货币。
  • 二进制数据类型: bytea(支持十六进制和转义格式)。
  • 布尔数据类型:布尔值。
  • 几何数据类型:点、线、框、路径、多边形、圆、lseg。
  • JSON 数据类型:字符串、数字、布尔值、空值。
  • 枚举数据类型:枚举。
  • UUID 数据类型: uuid(存储通用唯一标识符)。
  • 网络地址类型:cidr、inet、macaddr。
  • 伪类型: any、anyelement、anyarray、anyenum、anyrange、internal、record、trigger、event_trigger。
  • BitString 类型:位(n),位变化(n)。
  • 范围数据类型:int4range、int8range、numrange、tsrange(时间戳范围)、daterange。
  • pg_lsn 类型:pg_lsn(存储日志序列号)。

PostgreSQL 中的运算符:

运算符操作单个数据项并返回结果。这些是 WHERE 子句中用于执行操作的保留字。

Operators



Arithmetic Operators+, -, *, /, %, ^, !
Comparison Operators=, !=, <>, >, <, >=, <=
Logical OperatorsAND, NOT, OR
Bitwise Operators&, |

安装

  • 要安装 PostgreSQL,请运行以下命令:
sudo apt install postgresql

OR

sudo apt install postgresql postgresql-contrib

postgresql-contrib将添加一些额外的实用程序和功能。

  • 安装完成后,切换到Postgres账号:
sudo -i -u postgres
  • 现在,您可以使用psql访问 Postgres 提示符 命令。

使用数据库:

CREATE DATABASE命令用于创建数据库。

句法:

CREATE DATABASE database_name;

例子:

创建数据库

现在,为了存储数据,我们需要表格。 CREATE TABLE语句用于创建表。

句法:

CREATE TABLE table_name
(column_1 data_type,
column_2 data_type,
...
column_n data_type);

例子:

创建表

INSERT命令用于将新记录(行)插入表中。



句法:

INSERT INTO table_name (column_1, column_2 ,...)
VALUES(value_1, value_2, ...);

例子:

插入表格

SELECT语句用于从数据库表中获取数据,该语句以结果表的形式返回数据。

句法:

SELECT  
column_1, column_2, .. column_n
FROM
table_name;

例子:

选择命令

Note: We can fetch all the fields of the table using an asterisk(*) sign.

WHERE子句用于过滤 SELECT 语句返回的结果。

句法:

SELECT column_name
FROM 
table_name 
WHERE condition;

例子:

Where子句

LIMIT子句用于获取查询生成的行的子集。它是 SELECT 语句的可选子句。 OFFSET n在开始返回行之前跳过“n”行。

句法:



SELECT * 
FROM table_name 
LIMIT n;

例子:

限制与抵消

可以使用ALTER TABLE语句修改现有表的结构。 PostgreSQL 支持使用 ALTER TABLE 执行的各种操作,如下所示:

  • 向现有表添加列
ALTER TABLE table_name ADD COLUMN new_column_name TYPE;
  • 从现有表中删除一列
ALTER TABLE table_name DROP COLUMN column_name;
  • 重命名现有表中的列
ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name;
  • 重命名现有表中的列
ALTER TABLE table_name ALTER COLUMN column_name [SET DEFAULT value | DROP DEFAULT];
  • 更改 NOT NULL 约束
ALTER TABLE table_name ALTER COLUMN column_name [SET NOT NULL| DROP NOT NULL];
  • 向列添加 CHECK 约束
ALTER TABLE table_name ADD CHECK expression;
  • 添加约束
ALTER TABLE table_name ADD CONSTRAINT constraint_name constraint_definition;
  • 重命名现有表
ALTER TABLE table_name RENAME TO new_table_name;

UPDATE语句用于更新或修改表中的现有数据。

句法:

UPDATE table_name
SET column_1 = value_1,
   column_2 = value_2, ...
WHERE
   condition_1 AND condition_2;

例子:

更新

DELETE语句用于从表中删除行。

句法:

DELETE FROM table_name
WHERE condition;

例子:

删除