PostgreSQL 数据查询操作(排序、筛选、连接、分组、子查询)

news/2025/2/2 23:43:51 标签: postgresql, 数据库
(1)排序查询与筛选查询操作

排序查询使用ORDER BY,对某个表中的列1按照列升序(ASC,默认升序)降序(DESC)排序,排序后展示列1列2两列。此外,也可以按照多列的值对结果进行排序,

SELECT1,2 FROM 表名 ORDER BY1 ASC/DESC; 
# 按照多列排序
SELECT1,2 FROM 表名 ORDER BY1,2 ASC/DESC; 

筛选查询可以使用=><LIKEILIKE等筛选器,其中LIKEILIKE用于查询文本,但LIKE区分大小写,ILIKE不区分大小写。ILIKE 运算符主要在 PostgreSQL 中使用。如果使用的MySQL等,可以使用 LOWER 函数。

 SELECT1,2 FROM 表名 WHERE id<2;
 # 筛选具有R字符的记录,其中%是通配符
 SELECT1,2 FROM 表名 WHERE2 LIKE '%R%';
 # 忽略大小写
 SELECT1,2 FROM 表名 WHERE2 ILIKE '%r%';
 # 可以灵活的使用通配符%,匹配以 "R" 结尾的字符串
 SELECT1,2 FROM 表名 WHERE2 LIKE 'R%';
 # 使用lower函数将字符串中的所有字符转换为小写进行匹配
 SELECT1,2 FROM 表名 WHERE LOWER(2) LIKE '%r%';

此外,还可以将排序查询与筛选查询结合。

 SELECT1,2 FROM 表名  WHERE id<2 ORDER BY1;
(2)连接查询、子查询、分组查询

**连接查询(Join Queries)**用于将两个或多个表中的数据组合在一起,基于某些共同的列进行匹配。联结类型包括内联结(INNER JOIN)、左外联结(LEFT JOIN)、右外联结(RIGHT JOIN)和全外联结(FULL JOIN)。内连接返回两个表中满足条件的交集;左外连接返回左表中的所有记录,以及右表中匹配的记录;右外连接返回右表中的所有记录,以及左表中匹配的记录;全外连接返回两个表中的所有记录。

SELECT table1.column1, table2.column2,
FROM table1
INNER JOIN table2 ON table1.column3 = table2.column3;
# INNER JOIN/LEFT JOIN/RIGHT JOIN/FULL JOIN

**子查询(Subquery)**指的是在 PostgreSQL 查询中的 WHERE 子句中嵌入查询语句,形成外层和里层两层查询,里面的那层便是子查询。假设在 table1 的每一行中,子查询查找 表2中的列2等于table1.column2时 列1的值,子查询返回对应的列1值,将结果列命名为 table_subsqery。外层查询输出column1, column2。

SELECT column1, column2, 
	(SELECT1 FROM2 WHERE2 = table1.column2) AS table_subsqery
FROM table1;

为了更清晰和准确,还可以使用别名来引用外层查询的表,这样可以避免潜在的歧义。此外,外层查询还可以再加上一个WHERE语句。

# 为table1表指定别名t1
SELECT t1.column1, t1.column2,
    (SELECT1 FROM2 WHERE2 = t1.column2) AS table_subsqery
FROM table1 t1
WHERE t1.column1=1;

分组查询主要是使用GROUP BYGROUP BY 子句用于将结果集按一个或多个列的值进行分组。每个组可以包含一个或多个记录,通常与聚合函数(如 COUNTSUMAVGMAXMIN 等)一起使用,以对每个组进行统计或计算。

# 使用聚合函数COUNT,按照列1和列2分组,统计每组列3出现的次数,将结果列命名为 列3_count
SELECT1,2 COUNT(3) AS3_count
FROM 表名
GROUP BY1,2;

http://www.niftyadmin.cn/n/5840371.html

相关文章

【数据结构-前缀树】力扣208. 实现 Trie (前缀树)

Trie&#xff08;发音类似 “try”&#xff09;或者说 前缀树 是一种树形数据结构&#xff0c;用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景&#xff0c;例如自动补全和拼写检查。 请你实现 Trie 类&#xff1a; Trie() 初始化前缀树对象。 void…

代码随想录 Day 15 | 【第六章 二叉树】110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和、222.完全二叉树的节点个数

一、110.平衡二叉树 再一次涉及到&#xff0c;什么是高度&#xff0c;什么是深度&#xff0c;可以巩固一下。 题目链接/文章讲解/视频讲解&#xff1a;代码随想录 1. 整体逻辑 一棵高度平衡二叉树定义为平衡二叉树 是指该树所有节点的左右子树的高度相差不超过 1。通过比较两两…

洛谷 P8724 [蓝桥杯 2020 省 AB3] 限高杆

洛谷题目传送门 题目描述 某市有 n 个路口&#xff0c;有 m 段道路连接这些路口&#xff0c;组成了该市的公路系统。其中一段道路两端一定连接两个不同的路口。道路中间不会穿过路口。 由于各种原因&#xff0c;在一部分道路的中间设置了一些限高杆&#xff0c;有限高杆的路…

工作流引擎Camunda

一&#xff0c;什么是Camunda&#xff1f; Camunda是一个开源的工作流引擎和业务流程管理平台&#xff0c;基于Java和Spring框架构建。它支持BPMN 2.0标准&#xff0c;允许用户通过图形界面或编程方式定义复杂的工作流和业务流程。Camunda可以嵌入到任何Java应用程序中&#x…

如何为用户设置密码

[rootxxx ~]# passwd aa #交互式的为用户设置密码 或者 [rootxxx ~]# echo 123 | passwd --stdin aa #不交互式的为用户设置密码 &#xff08;适用于批量的为用户更改密码&#xff0c;比如一次性为100个用户初始化密码&#xff09;

Windsurf cursor vscode+cline 与Python快速开发指南

Windsurf简介 Windsurf是由Codeium推出的全球首个基于AI Flow范式的智能IDE&#xff0c;它通过强大的AI助手功能&#xff0c;显著提升开发效率。Windsurf集成了先进的代码补全、智能重构、代码生成等功能&#xff0c;特别适合Python开发者使用。 Python环境配置 1. Conda安装…

攻防世界 php2

你能验证这个网站吗&#xff1f; 根据提示是PHP&#xff0c;我们知道PHP代码在服务器端执行,可以连接数据库&#xff0c;查询数据&#xff0c;并根据查询结果动态生成网页内容。 PHP代码通常是保存在以.PHP为扩展名的文件上,这些文件存储在web 服务器的文档根目录中&#xff…

文本复制兼容方案最佳实现落地。

文章目录 一、navigator.clipboard.writeText二、方案落地总结 一、navigator.clipboard.writeText navigator.clipboard.writeText 是一个Web API&#xff0c;它允许网页脚本将文本数据写入用户的系统剪贴板。这个API是异步的&#xff0c;并且设计用于提高安全性和用户体验&a…