简单查询

别名

SELECT
first_name AS "名字",
last_name AS "姓氏"
FROM
employees
;

去重

SELECT
DISTINCT department_id, job_id
FROM
employees
;

对组合进行去重,而不只是department_id

无FROM快速查询

SELECT
1+1 AS "结果",
version() AS "版本"
;

利用查询条件过滤数据

BETWEEN

SELECT
*
FROM
employees
WHERE
hire_date <= '2005-01-01'
AND
salary BETWEEN 10000 AND 12000
;

IN

SELECT
*
FROM
employees
WHERE
salary IN (10000, 11000)
;

字符串的模糊匹配 LIKE

ILIKE 不区分大小写

% 任意多个字符

SELECT
first_name
FROM
employees
WHERE
first_name LIKE 'S%'
OR
first_name LIKE '%s'
;

_ 任意一个字符

SELECT
's ' LIKE 's_'
;

\转义字符

SELECT
*
FROM
employees
WHERE
first_name LIKE 'S\%'
-- first_name LIKE 'S#%' ESCAPE '#'
;

空值判断

IS NULL可以简写为ISNULL,

IS NOT NULL 可以简写为NOTNULL

SELECT
*
FROM
employees
WHERE
manager_id IS NULL
;

IS [NOT] DISTINCT FROM 运算符支持空值比较

SELECT
1 IS DISTINCT FROM null
;

复杂查询

AND

SELECT
*
FROM
employees
WHERE
first_name = 'Steven'
AND
last_name = 'King'
;

OR

SELECT
*
FROM
employees
WHERE
first_name = 'Steven'
OR
last_name = 'King'
;

注意点

OR 短路运算

1/0没有运算,所以不会报错。

SELECT
1=1
OR
1/0=1
;

AND 优先级更高

SELECT
*
FROM
employees
WHERE
salary = 10000
OR
salary = 12000
AND
department_id = 80
;

排序显示

默认为升序 ASC

降序 DESC

null在排序时视为最大值

SELECT
employee_id, first_name, last_name, hire_date, salary
FROM
employees
ORDER BY
first_name DESC
;



也可以用查询字段中的字段序号来排序

SELECT
employee_id, first_name, last_name, hire_date, salary
FROM
employees
ORDER BY
2 DESC
;

使用NULLS FIRST将NULL排到最前面

SELECT
employee_id, manager_id
FROM
employees
ORDER BY
manager_id NULLS FIRST
;

限制返回结果的数量

SELECT
employee_id, manager_id
FROM
employees
FETCH FIRST 10 ROWS ONLY
;
SELECT
employee_id, manager_id
FROM
employees
LIMIT 10
;
SELECT
employee_id, manager_id
FROM
employees
FETCH FIRST 10 ROWS WITH TIES -- 和最后值相同的行都会返回
;

分页查询 OFFSET

查询从第11个开始的10个

SELECT
employee_id, manager_id
FROM
employees
OFFSET 10 ROWS
FETCH FIRST 10 ROWS ONLY
;
SELECT
employee_id, manager_id
FROM
employees
LIMIT 10
OFFSET 10
;

参考资料

[1] 不剪发的Tony老师 PostgreSQL开发指南 第05节~第08节

[2] 不剪发的Tony老师 PostgreSQL开发指南 第09节~第11节

【PostgreSQL 17】3 查询的更多相关文章

  1. PostgreSQL的权限查询

    查看哪些用户对表sns_log_member_b_aciton有哪些权限: sns_log=> \z sns_log_member_b_aciton Access privileges Sche ...

  2. postgreSQL中跨库查询在windows下的实现方法

    以下是在postgreSQL 8.1版本中的实践,其他版本类似: 1.将C:\Program Files\PostgreSQL\8.1\share\contrib下的dblink.sql复制到C:\P ...

  3. PostgreSQL中如何查询在当前的哪个数据库中

    [pgsql@localhost bin]$ ./psql -d tester psql () Type "help" for help. tester=# select curr ...

  4. JavaEE(17) - JPA查询API和JPQL

    1. 获取查询结果 2. JPQL函数和JPQL表达式 #1. 使用from子句 #2. 查询部分属性 #3. 查询中使用构造器 3. JPQL的关联查询和多态查询 #1. 多态查询 #2. 隐式连接 ...

  5. postgresql大数据查询加索引和不加索引耗时总结

    1.创建测试表 CREATE TABLE big_data(  id character varying(50) NOT NULL,  name character varying(50),  dat ...

  6. PostgreSQL函数:查询包含时间分区字段的表,并更新dt分区为最新分区

    一.需求 1.背景 提出新需求后,需要在www环境下进行验收.故需要将www环境脚本每天正常调度 但由于客户库无法连接,ods数据无法每日取,且连不上客户库任务直接报错,不会跑ods之后的任务 故需要 ...

  7. Postgresql 或GreenPlum 查询结果部分字段转json格式并保留字段名(row_to_json)

    -- 一些搜索结果给出 部分字段转json保留原字段的方式是用子查询select row_to_json(t) from ( select id, text from words ) t 但是如果子查 ...

  8. postgresql jsonb类型查询

    select * from (select * from ud_order where user_id=10 and status=2unionselect * from ud_order where ...

  9. Oracle PLSQL Demo - 17.游标查询个别字段(非整表)

    declare Type ref_cur_variable IS REF cursor; cur_variable ref_cur_variable; v_empno scott.emp.empno% ...

  10. Postgresql 直接在查询结果中生成唯一ID

    不需要排序 select (row_number() over()) as id from generate_series(1,100)1根据指定的字段排序 select (row_number() ...

随机推荐

  1. hot100之栈

    有效的括号(020) 跳过 最小栈(155) class MinStack { private final Deque<int[]> stack = new ArrayDeque<& ...

  2. Idea 2021.2 破解激活

    官网下载安装 官网 启动软件->试用 (Evaluate for free) -> Evaluate,进入欢迎界面(没有试用按钮见下面常见问题) 插件(Plugins)->齿轮按钮- ...

  3. Kong入门学习实践(6)HTTPS与TCP流代理

    最近在学习Kong网关,因此根据老习惯,我会将我的学习过程记录下来,一来体系化整理,二来作为笔记供将来翻看.由于我司会直接使用Kong企业版,学习过程中我会使用Kong开源版. 本篇,我们学习快速配置 ...

  4. 西门子成都工厂的DevSecOps实践

    大家好,我是Edison. 4月15日,成都.NET线下技术沙龙活动中,我分享了一个主题<西门子成都工厂的DevSecOps实践>,向大家介绍了我们为什么要做DevSecOps 以及 我们 ...

  5. 一个C#二维码图片识别

    https://www.cnblogs.com/xuezhizhang/p/8968515.html 关键是这个 ThoughtWorks.QRCode.Codec; NuGet直接下载就可以了 // ...

  6. java日常问题和技巧2

    整理到一个工具类里面,用到了spring和alibaba.fastjson package common; import java.text.ParseException; import java.t ...

  7. SciTech-Mathmatics-Probability+Statistics:Quantifing Uncertainty_统计数据分析:朱怀球PKU-3-Sampling Theory 统计抽样理论基础

    Statistics & Data Analysis - Zhu Huaiqiu, Peking University <统计与数据分析>, 朱怀球, 北京大学 7 Steps § ...

  8. linux安装ActiveMQ,并配置开机自启--九五小庞

    1.解压activemq压缩包,重命名文件夹 # cd /usr/local# tar -zxvf apache-activemq-5.11.1-bin.tar.gz# mv apache-activ ...

  9. win11正式版如何关闭快速启动的问题

    有不少雨林木风官网的小伙伴,都可能不知道什么是快速启动.其实,它是windows11正式版里面的快速启动功能,是让计算机不真正关闭并保存某些数据,以便用户下次启动时能够快速关闭计算机系统.那么有小伙伴 ...

  10. Unity编辑器UI

    如果使用的是2020及其之前的版本,只能使用unity老版本进行编辑器UI开发 https://blog.51cto.com/u_15296378/4969538?b=totalstatisticht ...