PostgreSQL 语法
学习 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 数据。
- 全文搜索:支持全文搜索功能,适用于需要处理大量文本数据的场景。
接下来的学习可以更深入地探索这些功能,并通过实践来巩固这些语法。更多详细内容请关注其他相关文章!😊