Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Postgresql中的values list常量表

Postgresql中的values list常量表

作者头像
mingjie
发布于 2023-04-27 07:01:21
发布于 2023-04-27 07:01:21
49200
代码可运行
举报
运行总次数:0
代码可运行

values lists用于构建常量表,常量表的数据只存在于SQL中,无需在磁盘上创建出来。

values独立使用

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
VALUES ('Peter', 'Griffin'), ('Bart', 'Simpson');

postgres=# VALUES ('Peter', 'Griffin'), ('Bart', 'Simpson');
 column1 | column2 
---------+---------
 Peter   | Griffin
 Bart    | Simpson

同时values支持fetch、order by等操作符,使用方法和select类似。

排序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
VALUES (1, 2, 3), (4, 5, 6), (7, 8, 9) ORDER BY column1 DESC;

postgres=# VALUES (1, 2, 3), (4, 5, 6), (7, 8, 9) ORDER BY column1 DESC;
 column1 | column2 | column3 
---------+---------+---------
       7 |       8 |       9
       4 |       5 |       6
       1 |       2 |       3

fetch:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
VALUES 
    (1, 'Peter', 'Griffin'), 
    (2, 'Homer', 'Simpson'), 
    (3, 'Ned', 'Flanders'), 
    (4, 'Barney', 'Rubble'), 
    (5, 'George', 'Costanza') FETCH FIRST 3 ROWS ONLY; 

postgres=# VALUES 
postgres-#     (1, 'Peter', 'Griffin'), 
postgres-#     (2, 'Homer', 'Simpson'), 
postgres-#     (3, 'Ned', 'Flanders'), 
postgres-#     (4, 'Barney', 'Rubble'), 
postgres-#     (5, 'George', 'Costanza')
postgres-# FETCH FIRST 3 ROWS ONLY; 
 column1 | column2 | column3  
---------+---------+----------
       1 | Peter   | Griffin
       2 | Homer   | Simpson
       3 | Ned     | Flanders

values与select结合使用

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
postgres=# select * from (values (1, 'a'), (2, 'b'), (3, 'c'));
 column1 | column2 
---------+---------
       1 | a
       2 | b
       3 | c

postgres=# SELECT * FROM (VALUES (1, 'one'), (2, 'two'), (3, 'three')) AS t (num,letter);
 num | letter 
-----+--------
   1 | one
   2 | two
   3 | three

在insert时也比较常用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
drop table t1;
create table t1(
    c1 serial primary key,
    c2 text default lpad('',500,md5(random()::text))
);
insert into t1 (values(1, 'a'), (2, 'b'), (3, 'c') );
insert into t1 select * from (values(4, 'a'), (5, 'b'), (6, 'c') );


postgres=# select * from t1;
 c1 | c2 
----+----
  1 | a
  2 | b
  3 | c
  4 | a
  5 | b
  6 | c

需要注意的是,如果常量表需要定义列名给投影部分使用,必须添加column definition list,即AS t (num,letter);,加上CDL之后就可以完全当做一个普通表来使用。

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
postgres=# select format(c1, c2) from (values ('hello %s', 'world'), ('hi %s', 'siri'), ('who %s you', 'are')) t(c1, c2);
   format    
-------------
 hello world
 hi siri
 who are you
(3 rows)

postgres=# select power(a, 2) from generate_series(1, 10) t(a);
 power 
-------
     1
     4
     9
    16
    25
    36
    49
    64
    81
   100
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【黑魔法】Covering Indexes、STRAIGHT_JOIN
今天给大家介绍两个黑魔法,这都是压箱底的法宝。大家在使用时,一定要弄清他们的适用场景及用法,用好了,就是一把开天斧,用不好那就是画蛇添足。自从看过耗子哥(左耳朵耗子)的博客,都会给对相应专题有兴趣的小伙伴列出几篇拓展文章,我觉得这种方式还是非常不错,所以这篇文章我也会列出几篇扩展的文章,供想更深入思考的小伙伴查阅。
猿人谷
2018/08/22
5180
Postgresql FDW技术的应用
Ubuntu 16.04 LTS云主机2台,主机名为pg1(192.168.0.10)和pg2(192.168.0.11)。
伊泽瑞尔
2022/06/01
5660
进阶数据库系列(十四):PostgreSQL 事务与并发控制
当多个事务并发执行时, 即使每个单独的事务都正确执行, 数据库的一致性也可能被破坏.。
民工哥
2023/08/22
2K0
进阶数据库系列(十四):PostgreSQL 事务与并发控制
PostgreSQL基础知识整理
ALTER TABLE用来添加,删除或修改现有表中的列,也可以用来添加和删除现有表上的各种制约因素。语法如下:
Abalone
2022/07/14
3.6K0
PostgreSQL-快速启动,新手上路
快速安装启动PostgreSQL,完成基本操作。通过实践,逐步揭开PostgreSQL的面纱。 1.安装 yum install -y postgresql-server postgresql postgresql-libs 2.初始化数据库 postgresql-setup initdb 3.服务停止、服务启动 [root@mysql8 ~]# systemctl stop postgresql.service   [root@mysql8 ~]# systemctl status postgresql.
朱明豪
2020/03/15
1.2K0
PostgreSQL-快速启动,新手上路
Postgresql中plpgsql事务管理实例(commit/rollback)
对于事务系统来说,内层函数、外层函数都在一个事务中,内层提交就等于把事务提交了,所以外层数据也在。
mingjie
2022/09/30
2.2K0
PostgreSQL全局临时表插件pgtt的使用
PostgreSQL目前到最新12版本只支持本地临时表不支持全局临时表特性 ,会话退出后临时表定义和数据被删除,创建临时表语法如下:
数据和云
2020/09/22
1.6K0
数据库内核分析之GPDB and PostgreSQL Portal
Portal(门户),也称为策略选择模块,根据sql语句类型选择不同的执行模块(ProcessUtility、Executor)。
公众号guangcity
2022/12/02
7640
数据库内核分析之GPDB and PostgreSQL Portal
用一个脚本学习 python
# -*- coding: utf-8 -*- # Python 2.7 学习参考脚本 # print 打印函数 print "Hello World!" ### impo
MachineLP
2018/01/09
1.3K0
肝通宵写了三万字把SQL数据库的所有命令,函数,运算符讲得明明白白讲解,内容实在丰富,建议收藏+三连好评!
大家可能不习惯SQL大写的习惯,但是真正的规范就是要大写,所以大家要慢慢习惯我用大写的方式讲解。在下面所有的讲解中,我将会以基本语法,案例,联系形式讲解,从而加强对每一个语句的使用和认识。本篇文章是笔者整理了整整一个通宵才写出,希望大家三连好评,谢谢。当然,拥有本篇文章,你将会完全掌握mysql的所有命令使用,不再用去购买或者杂乱学习。本篇内容暂时讲解数据库的筛选部分,因为数据库的最初入门如创建,备份等都有讲过,魔法传送:传送门 该传送门内容有:
全栈程序员站长
2022/08/10
10K0
肝通宵写了三万字把SQL数据库的所有命令,函数,运算符讲得明明白白讲解,内容实在丰富,建议收藏+三连好评!
Postgresql游标使用介绍(cursor)
游标一般适用于大结果集,大结果集在内存中放不下 且 数据可以一条一条处理的情况 比较适合使用游标。
mingjie
2022/07/14
2.7K0
Postgresql游标使用介绍(cursor)
你知道MySQL 8.0中的索引有哪些新特性吗?看这一篇就够了!!!
在之前MySQL的版本中,只能通过显式的方式删除索引,如果删除后发现索引删错了,又只能通过创建索引的方式将删除的索引添加回来,如果数据库中的数据量非常大,或者表比较大,这种操作的成本非常高。在MySQL 8.0中,只需要将这个索引先设置为隐藏索引,使查询优化器不再使用这个索引,但是,此时这个索引还是需要MySQL后台进行维护,当确认将这个索引设置为隐藏索引系统不会受到影响时,再将索引彻底删除。这就是软删除功能。
冰河
2020/10/29
1.2K0
你知道MySQL 8.0中的索引有哪些新特性吗?看这一篇就够了!!!
MySQL 常用技能
explain select * from user where age = 20 and phone = '18730658760' and pos = 'cxy';
半路出学
2022/01/12
4520
SQL 语法面试备忘录,建议收藏!
在这个越来越卷的行当——数据科学,其找工作面试必然难以驾驭。而它的多学科领域性质决定了你需要翻阅大量材料才能感觉准备充分,而这很可能会让你不知所措,无从下手。
数据STUDIO
2021/10/27
1.2K0
【YashanDB知识库】共享从 MySQL异常处理CONTINUE HANDLER的改写方法
MySQL的CONTINUE HANDLER 迁移MySQL业务时,遇到了MySQL的CONTINUE HANDLER FOR not found用法。详情如下:
用户10349277
2025/03/03
800
PostgreSQL 14中TOAST的新压缩算法LZ4,它有多快?
对于列压缩选项,PostgreSQL 14提供了新的压缩方法LZ4。与TOAST中现有的PGLZ压缩方法相比,LZ4压缩更快。本文介绍如何使用整个选项,并和其他压缩算法进行性能比较。
yzsDBA
2021/11/26
3.3K0
PostgreSQL 14中TOAST的新压缩算法LZ4,它有多快?
Greenplum 7 新特性整理
参考:https://www.xmmup.com/zaidockerzhongkuaisutiyangreenplum-7-0-0.html
AiDBA宝典
2023/10/16
1.4K0
Greenplum 7 新特性整理
布隆过滤器在PostgreSQL中的应用
作为学院派的数据库,postgresql在底层的架构设计上就考虑了很多算法层面的优化。其中在postgresql9.6版本中推出bloom索引也是十足的黑科技。
数据库架构之美
2021/04/07
2.5K0
布隆过滤器在PostgreSQL中的应用
HAWQ中的行列转置
该文介绍了如何在PostgreSQL中实现交叉表查询,包括定义表、定义列、创建索引、查询结果集合并以及应用函数处理结果集等步骤。同时介绍了如何使用PL/SQL和SQL进行交叉表查询,以及如何使用PostGIS进行空间数据查询和处理。
用户1148526
2018/01/03
1.7K0
深入OceanBase分布式数据库:MySQL 模式下的 SQL 基本操作
在当今的大数据时代,数据库技术的选择对于企业的信息化发展至关重要。OceanBase作为一种高性能、高可用的分布式关系数据库,在与MySQL模式的兼容性方面展现出了显著的优势,为企业数据迁移、整合与升级提供了极大的便利。
公众号:码到三十五
2024/05/06
7590
深入OceanBase分布式数据库:MySQL 模式下的 SQL 基本操作
推荐阅读
相关推荐
【黑魔法】Covering Indexes、STRAIGHT_JOIN
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验