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

devtools/2025/2/2 21:08:03/
(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/devtools/155539.html

相关文章

MySQL数据类型转换应注意什么?

文章目录 1. **隐式转换**2. **显式转换**3. **数据截断**4. **字符集与排序规则**5. **日期和时间转换**6. **数值转换**7. **NULL 处理**8. **性能影响**9. **错误处理**10. **函数选择**示例总结 在 MySQL 中进行数据类型转换时&#xff0c;需要注意以下几个关键点&#xff…

基于Cipher的Java加密工具类

一、什么是Cipher Cipher是一种用于加密和解密信息的算法或方法。它将原始的明文转化为密文&#xff0c;从而保护信息的安全性和机密性。使用密码学中的数学原理和技术&#xff0c;Cipher可以对数据进行加密处理&#xff0c;使其在传输或存储过程中对未授权的访问者不可读。在必…

LVGL+FreeRTOS实战项目:智能健康助手(lcd篇)

1.8寸彩色TFT显示屏简介 接线图 我们选用的是分辨率为128*160的彩色显示屏&#xff0c;采用的SPI接口&#xff0c;通过我们STM32的SPI外设&#xff0c;来和我们的屏幕进行通信&#xff0c;以显示我们需要显示的图片。 软件部分 #include "lcd_driver.h"//液晶IO初始…

2015年蓝桥杯第六届CC++大学B组真题及代码

目录 1A&#xff1a;奖券数目&#xff08;填空_简单枚举&#xff09; 2B&#xff1a;星系炸弹&#xff08;填空_日期计算&#xff09; 3C&#xff1a;三羊献瑞&#xff08;填空_全排列&#xff09; 4D&#xff1a;格子中输出&#xff08;代码填空&#xff09; 5E&#xff1…

C# 拖入文件 只能拖入txt文件

要实现只能将 .txt 文件拖入 Button 控件&#xff08;如 button1&#xff09;并获取其路径&#xff0c;可以在之前的基础上添加文件类型的检查逻辑。以下是具体实现步骤和示例代码&#xff1a; 1. 创建 Windows Forms 项目 打开 Visual Studio&#xff0c;创建一个新的 Window…

ASP.NET Core WebAPI的异步及返回值

目录 Action方法的异步 Action方法参数 捕捉URL占位符 捕捉QueryString的值 JSON报文体 其他方式 Action方法的异步 Action方法既可以同步也可以异步。异步Action方法的名字一般不需要以Async结尾。Web API中Action方法的返回值如果是普通数据类型&#xff0c;那么返回值…

【BQ3568HM开发板】深入解析智能家居中控屏工程的NAPI接口设计

目录 引言 一、NAPI接口概述 二、NAPI接口设计 1. 接口定义 2. 接口实现 三、NAPI接口在智能家居中控屏中的应用 1. 灯光控制 2. 窗帘控制 四、总结 本文收发于电子发烧友论坛&#xff1a;https://bbs.elecfans.com/jishu_2474863_1_1.html。 引言 在智能家居中控屏…

开源智慧园区管理系统对比五款主流产品探索智能运营新模式

内容概要 在这个数字化迅速发展的时代&#xff0c;园区管理也迎来了全新的机遇和挑战。众所周知&#xff0c;开源智慧园区管理系统作为一种创新解决方案&#xff0c;正逐步打破传统管理的局限性。它的开放性不仅使得系统可以根据具体需求进行灵活调整&#xff0c;也为用户提供…