PostgreSQL 如整数、浮点数、字符串、日期时间、布尔值等,以及对JSON、XML等复杂数据类型的支持。
PostgreSQL的基本操作
安装与配置:
- 从PostgreSQL的官方网站下载对应操作系统的安装包。
- 安装过程中,设置管理员密码、数据目录等配置。
连接和退出:
- 使用命令行工具
psql
连接到数据库:psql -U username -d databasename
。 - 退出连接使用命令:
\q
。
- 使用命令行工具
数据库操作:
- 创建数据库:
CREATE DATABASE mydb;
。 - 删除数据库:
DROP DATABASE mydb;
。 - 切换数据库:
\c mydb;
。
- 创建数据库:
表操作:
- 创建表:
CREATE TABLE users (id SERIAL PRIMARY KEY, name VARCHAR(50) NOT NULL);
。 - 删除表:
DROP TABLE users;
。 - 插入数据:
INSERT INTO users (name) VALUES ('John');
。
- 创建表:
查询数据:
- 基本查询:
SELECT * FROM users;
。 - 条件查询:
SELECT * FROM users WHERE name = 'John';
。
- 基本查询:
更新数据:
- 更新操作:
UPDATE users SET name = 'Jane' WHERE id = 1;
。
- 更新操作:
删除数据:
- 删除操作:
DELETE FROM users WHERE id = 1;
。
- 删除操作:
PostgreSQL的高级特性
- 函数和过程:PostgreSQL支持创建自定义函数和存储过程。
- 触发器:可以自动执行的数据库操作,通常用于维护数据完整性。
- 规则:允许对视图进行操作,如插入、更新、删除。
- 索引:提高查询效率的数据结构。
- 全文检索:支持文本数据的高级搜索。
- 并发控制:多版本并发控制(MVCC)系统,提供数据库的"快照"。
- 数据类型:支持任意精度的数值、数组、JSON、XML等。
- NoSQL特性:支持JSON、JSONB等NoSQL数据类型。
- 数据仓库:支持数据仓库技术,如FDW进行ETL操作 。
代码示例
以下是PostgreSQL的一些基本操作的代码示例:
创建数据库:
CREATE DATABASE mydb;
创建表:
CREATE TABLE employees ( id SERIAL PRIMARY KEY, name VARCHAR(100), department VARCHAR(100) );
插入数据:
INSERT INTO employees (name, department) VALUES ('John Doe', 'Sales');
查询数据:
SELECT * FROM employees WHERE department = 'Sales';
更新数据:
UPDATE employees SET department = 'Marketing' WHERE id = 1;
删除数据:
DELETE FROM employees WHERE id = 1;
递归查询:
WITH RECURSIVE org_chart AS ( SELECT employee_id, manager_id, employee_name FROM employees WHERE manager_id IS NULL UNION ALL SELECT e.employee_id, e.manager_id, e.employee_name FROM employees e INNER JOIN org_chart o ON e.manager_id = o.employee_id ) SELECT * FROM org_chart;
数学函数:
SELECT CEIL(salary) FROM employees;
集合操作符:
SELECT employee_name FROM employees WHERE department = 'Sales' UNION SELECT employee_name FROM employees WHERE department = 'Marketing';