PostgreSQL 语法
                           
天天向上
发布: 2025-03-09 18:53:47

原创
27 人浏览过

学习 PostgreSQL 的语法是掌握数据库操作的基础,接下来我们可以从基本的 SQL 语法入手,逐步深入了解 PostgreSQL 特有的功能。

1. 基本的 PostgreSQL SQL 语法

PostgreSQL 支持标准的 SQL 语法,并提供了很多额外的功能。让我们先来了解一些基础语法。

1.1 创建数据库

要创建一个数据库,可以使用 CREATE DATABASE 语句:

CREATE DATABASE dbname;

1.2 创建表

在 PostgreSQL 中,创建表的基本语法如下:

CREATE TABLE table_name (
    column1 datatype [constraint],
    column2 datatype [constraint],
    ...
);

例如,创建一个 employees 表:

CREATE TABLE employees (
    employee_id SERIAL PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    hire_date DATE
);
  • SERIAL 数据类型用于自动生成唯一的整数值,常用于主键。
  • PRIMARY KEY 是唯一约束,确保该列的值是唯一的。

1.3 插入数据

向表中插入数据时,使用 INSERT INTO 语句:

INSERT INTO employees (first_name, last_name, hire_date)
VALUES ('John', 'Doe', '2025-03-10');

1.4 查询数据

基本的查询语法:

SELECT column1, column2 FROM table_name;

例如,查询所有员工的名字:

SELECT first_name, last_name FROM employees;

查询所有列:

SELECT * FROM employees;

1.5 更新数据

更新表中的数据使用 UPDATE 语句:

UPDATE employees
SET first_name = 'Jane'
WHERE employee_id = 1;

1.6 删除数据

删除数据的基本语法:

DELETE FROM employees
WHERE employee_id = 1;

1.7 删除表

如果你不再需要一个表,可以使用 DROP TABLE 语句:

DROP TABLE employees;

2. 数据类型

PostgreSQL 支持多种数据类型,包括:

  • 整数类型INTEGER, BIGINT
  • 浮动点类型FLOAT, NUMERIC
  • 字符类型CHAR, VARCHAR, TEXT
  • 日期和时间类型DATE, TIME, TIMESTAMP
  • 布尔类型BOOLEAN
  • 数组INTEGER[](支持一维或多维数组)
  • JSON 类型JSON, JSONB(用于存储 JSON 数据)

3. 常用操作符

PostgreSQL 支持丰富的操作符,常见的有:

  • 算术操作符+, -, *, /
  • 比较操作符=, !=, >, <, >=, <=
  • 逻辑操作符AND, OR, NOT
  • 字符串操作符||(拼接字符串)
  • 数组操作符@>(数组包含)

4. 聚合函数

PostgreSQL 提供了多个聚合函数来处理数据:

  • COUNT(): 统计行数
  • SUM(): 求和
  • AVG(): 平均值
  • MIN()MAX(): 最小值和最大值

例如,查询所有员工的平均薪资:

SELECT AVG(salary) FROM employees;

5. 连接操作

PostgreSQL 支持多种表连接操作:

  • INNER JOIN:返回匹配的行
  • LEFT JOIN:返回左表所有行,即使右表没有匹配
  • RIGHT JOIN:返回右表所有行,即使左表没有匹配
  • FULL JOIN:返回左右表所有行,不论是否匹配

例如,查询员工与部门信息(假设有 departments 表):

SELECT employees.first_name, employees.last_name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id;

6. 子查询

子查询是嵌套在其他查询中的查询,用于提供数据。例子:

SELECT first_name, last_name
FROM employees
WHERE employee_id IN (SELECT employee_id FROM departments WHERE department_name = 'HR');

7. PostgreSQL 特有的功能

PostgreSQL 提供了许多高级功能,例如:

  • 窗口函数:用于处理分组数据,进行排名、求和等操作。
  • CTE(公共表表达式):让查询更简洁,特别是在需要递归查询时。
  • JSON/JSONB 类型:高效处理 JSON 数据。
  • 全文搜索:支持全文搜索功能,适用于需要处理大量文本数据的场景。

接下来的学习可以更深入地探索这些功能,并通过实践来巩固这些语法。更多详细内容请关注其他相关文章!😊

发表回复 0

Your email address will not be published. Required fields are marked *