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

news/2025/2/2 13:48:50/
(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.ppmy.cn/news/1568706.html

相关文章

《深入分析 TNN、MNN 和 NCNN:为不同硬件平台挑选最佳深度学习框架》

文章目录 TNN、MNN 和 NCNN 开源深度学习框架对比引言框架概述TNN (Tencent Neural Network)MNN (Mobile Neural Network)NCNN (Neural Network Compression and Inference) 逻辑推理图神经网络推理流程性能对比内存消耗对比硬件支持对比结论个人观点与推荐1. 针对移动端应用2.…

在 AMD GPU 上使用 vLLM 的 Triton 推理服务器

Triton Inference Server with vLLM on AMD GPUs — ROCm Blogs 2025年1月8日&#xff0c;作者&#xff1a;Fabricio Flores&#xff0c;Tiffany Mintz&#xff0c;Eliot Li&#xff0c;Yao Liu&#xff0c;Ted Themistokleous&#xff0c;Brian Pickrell&#xff0c;Vish Vadl…

Janus-Pro 论文解读:DeepSeek 如何重塑多模态技术格局

Janus-Pro&#xff1a;多模态领域的璀璨新星——技术解读与深度剖析 一、引言 在人工智能的浩瀚星空中&#xff0c;多模态理解与生成模型犹如耀眼的星座&#xff0c;不断推动着技术边界的拓展。Janus-Pro作为这一领域的新兴力量&#xff0c;以其卓越的性能和创新的架构&#x…

Vue.js 深度解析:响应式、虚拟 DOM 与编译优化的艺术

1. 响应式系统的底层实现 1.1 依赖收集与派发更新 Vue 3 的响应式系统基于 Proxy API 重构&#xff0c;其核心在于&#xff1a; 依赖收集&#xff1a;通过 track 函数建立 target -> key -> effect 的映射关系 派发更新&#xff1a;通过 trigger 函数根据依赖关系触发…

四.3 Redis 五大数据类型/结构的详细说明/详细使用( hash 哈希表数据类型详解和使用)

四.3 Redis 五大数据类型/结构的详细说明/详细使用&#xff08; hash 哈希表数据类型详解和使用&#xff09; 文章目录 四.3 Redis 五大数据类型/结构的详细说明/详细使用&#xff08; hash 哈希表数据类型详解和使用&#xff09;2.hash 哈希表常用指令(详细讲解说明)2.1 hset …

蓝桥杯备赛练习题01

一、栈 1.单调栈 P2947 [USACO09MAR] Look Up S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 典型的单调栈题型。 #include <iostream> using namespace std; #include <algorithm> #include<map> #include <unordered_map> #include <vecto…

接口管理文档Yapi的安装与配置

部署Yapi接口管理工具创建数据卷根目录创建Yapi数据存储库在根目录创建Yapi授权文件(vim config.json)用于配置Yapi端口、账号和mongo存储库端口、账号等信息创建并启动Yapi服务验证Yapi是否安装成功为Yapi管理平台添加用户Postman接口文档数据批量导入Swagger接口文档数据以…

[论文阅读] (37)CCS21 DeepAID:基于深度学习的异常检测(解释)

祝大家新春快乐&#xff0c;蛇年吉祥&#xff01; 《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座&#xff0c;并分享给大家&#xff0c;希望您喜欢。由于作者的英文水平和学术能力不高&#xff0c;需要不断提升&#xff0c;所以还请大家批评指正&#xff0…