程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

Postgresql数据库查询和操作语句(postgresql数据库查询和操作语句详解)

balukai 2025-03-30 14:22:40 文章精选 6 ℃


1. SQL简介

SQL(Structured Query Language)是一种用于管理关系型数据库的标准语言。它主要包括以下四类操作:

  • 数据查询语言(DQL):用于查询数据,如SELECT
  • 数据操作语言(DML):用于操作数据,如INSERTUPDATEDELETE
  • 数据定义语言(DDL):用于定义数据库结构,如CREATEALTERDROP
  • 数据控制语言(DCL):用于控制数据库访问权限,如GRANTREVOKE

2. 数据查询语言(DQL)

2.1 基本查询(SELECT)

SELECT语句用于从表中查询数据。

  • 查询所有列
Bash
SELECT * FROM employees;
  • 查询特定列
Bash
SELECT name, salary FROM employees;
  • 使用别名: 可以为列或表设置别名,使查询结果更易读。
SELECT name AS employee_name, salary AS employee_salary FROM employees;

2.2 条件查询(WHERE)

WHERE子句用于过滤满足特定条件的记录。

  • 简单条件
SELECT * FROM employees WHERE salary > 50000;
  • 多条件组合: 使用ANDOR组合多个条件。
SELECT * FROM employees WHERE salary > 50000 AND position = 'Software Engineer';
  • 模糊查询: 使用LIKE进行模糊匹配。
SELECT * FROM employees WHERE name LIKE 'J%'; -- 查询名字以J开头的员工

2.3 排序(ORDER BY)

ORDER BY子句用于对查询结果进行排序。

  • 升序排序
SELECT * FROM employees ORDER BY salary ASC;
  • 降序排序
SELECT * FROM employees ORDER BY salary DESC;
  • 多列排序
SELECT * FROM employees ORDER BY position ASC, salary DESC;

2.4 限制结果集(LIMIT)

LIMIT子句用于限制查询结果的数量。

  • 限制行数
SELECT * FROM employees LIMIT 10;
  • 分页查询: 使用OFFSET跳过前几行。
SELECT * FROM employees LIMIT 10 OFFSET 20; -- 跳过前20行,返回接下来的10行

2.5 聚合函数

聚合函数用于对一组值进行计算并返回单个值。

  • 常用聚合函数
    • COUNT():计算行数。
    • SUM():计算总和。
    • AVG():计算平均值。
    • MAX():返回最大值。
    • MIN():返回最小值。
  • 示例
SELECT COUNT(*) FROM employees; -- 计算员工总数
SELECT AVG(salary) FROM employees; -- 计算平均薪水
SELECT MAX(salary) FROM employees; -- 查询最高薪水

2.6 分组查询(GROUP BY)

GROUP BY子句用于将结果集按某列分组,通常与聚合函数一起使用。

  • 按职位分组计算平均薪水
SELECT position, AVG(salary) FROM employees GROUP BY position;
  • 过滤分组结果(HAVING)HAVING子句用于过滤分组后的结果。
SELECT position, AVG(salary) FROM employees GROUP BY position HAVING AVG(salary) > 60000;

3. 数据操作语言(DML)

3.1 插入数据(INSERT)

INSERT语句用于向表中插入新记录。

  • 插入单条记录
INSERT INTO employees (name, position, salary) VALUES ('Alice', 'Data Scientist', 90000);
  • 插入多条记录
INSERT INTO employees (name, position, salary) VALUES
('Bob', 'Software Engineer', 80000),
('Charlie', 'Product Manager', 95000);

3.2 更新数据(UPDATE)

UPDATE语句用于更新表中的记录。

  • 更新单条记录
UPDATE employees SET salary = 85000 WHERE id = 1;
  • 更新多条记录
UPDATE employees SET salary = salary * 1.1 WHERE position = 'Software Engineer';

3.3 删除数据(DELETE)

DELETE语句用于删除表中的记录。

  • 删除单条记录
DELETE FROM employees WHERE id = 1;
  • 删除所有记录
DELETE FROM employees;

注意DELETE语句会永久删除数据,请谨慎使用。

最近发表
标签列表