PostgreSQL 实现给查询列表增加序号操作

利用 ROW_NUMBER() over( ) 给查询序列增加排序字段

SELECT ROW_NUMBER() over(ORDER bY biztypename DESC ) AS num,biztypename
FROM (SELECT DISTINCT biztypename FROM bizmaptype) t;

效果如下:

补充:PostgreSql 使用自定义序列(Sequence)向表插入数据 id 自增长

按照以往Oracle建表的流程,我们来新建表,并且向表中导入数据。

1.创建Book表

CREATE TABLE book(
 id INTEGER PRIMARY KEY ,
 name CHARACTER VARYING(50),
 price DOUBLE PRECISION,
 author CHARACTER VARYING(20)
);

PRIMARY KEY 将id设置为主键;

数据类型

类型名称 别名 描述

integer int,int4 有正负之分的4字节整数

character varying [ (n) ] varchar [ (n) ]

可变长度的字符串

double precision float8 双精度浮点数(8字节)

更多类型请参考文档:https://www.postgresql.org/docs/9.3/static/datatype.html

2.创建自动增长序列

CREATE SEQUENCE book_id_seq
 START WITH 1
 INCREMENT BY 1
 NO MINVALUE
 NO MAXVALUE
 CACHE 1;

参数 描述

START WITH 设置起始值,允许序列从任何地方开始

INCREMENT BY 设置增量,指定在哪个值得基础上创建新值,正值将产生递增序列,负值将产生递减序列;默认值为1。

NO MINVALUE 设置序列可以生成的最小值,如果未指定NO MINVALUE,对于升序和降序序列,默认值分别为1和。

NO MAXVALUE 设置序列可以生成的最大值,如果未指定此子句,将使用默认值,对于升序和降序序列,默认值为和-1。

CACHE 设置高速缓存,要分配多少序列号并将其存贮在内存中方便更快的访问,最小值为1,默认值也是1。

3.为book表添加自动增长序列

ALTER TABLE book ALTER COLUMN id SET DEFAULT nextval('book_id_seq');

4.向book表Insert数据

INSERT INTO public.book VALUES (nextval('book_id_seq'),'《本色》',30.5,'乐嘉');
INSERT INTO public.book VALUES (nextval('book_id_seq'),'《平凡世界》',90.5,'路遥');
INSERT INTO public.book VALUES (nextval('book_id_seq'),'《Java编程思想》',60.5,'詹姆斯·高斯林');
INSERT INTO public.book VALUES (nextval('book_id_seq'),'《Web高级编程》',50.5,'李三');

5.查询book表中数据

SELECT * FROM public.book;

查询结果:

6.相关序列操作:

--查询序列 (每查询一次,序列就做了一次+1操作,即查询下一次的value)
SELECT nextval('book_id_seq');
--移除序列
DROP SEQUENCE 'book_id_seq';

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • postgresql insert into select无法使用并行查询的解决

    本文信息基于PG13.1. 从PG9.6开始支持并行查询.PG11开始支持CREATE TABLE - AS.SELECT INTO以及CREATE MATERIALIZED VIEW的并行查询. 先说结论: 换用create table as 或者select into或者导入导出. 首先跟踪如下查询语句的执行计划: select count(*) from test t1,test1 t2 where t1.id = t2.id ; postgres=# explain analyze se

  • 解决postgresql insert into select无法使用并行查询的问题

    本文信息基于PG13.1. 从PG9.6开始支持并行查询.PG11开始支持CREATE TABLE - AS.SELECT INTO以及CREATE MATERIALIZED VIEW的并行查询. 先说结论: 换用create table as 或者select into或者导入导出. 首先跟踪如下查询语句的执行计划: select count(*) from test t1,test1 t2 where t1.id = t2.id ; postgres=# explain analyze se

  • 关于PostgreSQL错误日志与慢查询日志收集

    PostgreSQL错误日志与慢查询日志对于线上系统分析.问题预警.问题排查起到非常重要的作用,在此不做赘述. 此文档记录错误日志与慢查询日志的收集.分析与存储展示的方法. 一.总体思路 PostgreSQL日志输出可以配置多种多样的格式,其中以csvlog格式输出的日志信息最全面.但是CSV日志只能以本地文件的方式收集,不能直接写入网络,实时上传日志服务器. 日志收集: PostgreSQL服务器分布在不同的机器,我们使用rsyslog客户端-服务器的方式来收集日志到日志服务器.具体方法:在P

  • postgresql 补齐空值、自定义查询字段并赋值操作

    查询出的数据自定义url字段并赋值 select id,name,'/index/' url from table_name 补充:postgresql 判断是空的_postgresql 数字类型存空值或null值.字段查询处理 1.存储数字类型,包含Integer,Double等,拼接字符串时,数字类型的值拼接成以下 一个stqyghmj 为数据库字段名,第二个stqyghmj 是值变量 stqyghmj = cast(nullif(" + stqyghmj + ", null)AS

  • 基于postgresql查询某个字段属于哪个表的说明

    一.场景还原 前端小林问我,它从前端的返回的某些字段,想知道那个表有这个字段,它想操作这个表-- 二.sql语句 SELECT * FROM information_schema. COLUMNS WHERE COLUMN_NAME = 'storename'; SELECT c.relname AS "表名",a.attname AS "字段名",c.oid FROM pg_class c LEFT JOIN pg_attribute a ON a.attreli

  • postgresql 实现查询出的数据为空,则设为0的操作

    我就废话不多说了~ select name,price from odoo_sale; select name,COALESCE(price, 0) from odoo_sale; 补充:postgresql查询某列的最大值时,对查询结果为空做默认为0的处理 实例如下: select coalesce(max(max_grade),0) from exam_grade where examinee_id = 12345 and exam_id = 1; 查询某个考生在某个指定试卷的最高分,如果没

  • PostgreSQL 实现给查询列表增加序号操作

    利用 ROW_NUMBER() over( ) 给查询序列增加排序字段 SELECT ROW_NUMBER() over(ORDER bY biztypename DESC ) AS num,biztypename FROM (SELECT DISTINCT biztypename FROM bizmaptype) t; 效果如下: 补充:PostgreSql 使用自定义序列(Sequence)向表插入数据 id 自增长 按照以往Oracle建表的流程,我们来新建表,并且向表中导入数据. 1.创

  • PHP+Mysql+jQuery查询和列表框选择操作实例讲解

    本文讲解如何通过ajax查询mysql数据,并将返回的数据显示在待选列表中,再通过选择最终将选项加入到已选区,可以用在许多后台管理系统中.本文列表框的操作依赖jquery插件. HTML <form id="sel_form" action="post.php" method="post"> <p><input type="text" name="keys" id="

  • Yii框架数据库查询、增加、删除操作示例

    本文实例讲述了Yii框架数据库查询.增加.删除操作.分享给大家供大家参考,具体如下: Yii 数据库查询 模型代码: <?php namespace app\models; use yii\db\ActiveRecord; class Test extends ActiveRecord{ } 控制器代码: public function actionTest(){ //方法一 $sql = 'select * from test where id=:id'; $data = Test::find

  • PostgreSQL数据库事务插入删除及更新操作示例

    目录 INSERT DELETE UPDATE 事务 INSERT 使用INSERT语句可以向表中插入数据. 创建一个表: CREATE TABLE ProductIns (product_id CHAR(4) NOT NULL, product_name VARCHAR(100) NOT NULL, product_type VARCHAR(32) NOT NULL, sale_price INTEGER DEFAULT 0, purchase_price INTEGER , regist_d

  • Python 遍历列表里面序号和值的方法(三种)

    三种遍历列表里面序号和值的方法: 最近学习python这门语言,感觉到其对自己的工作效率有很大的提升,特在情人节这一天写下了这篇博客,下面废话不多说,直接贴代码 #!/usr/bin/env python # -*- coding: utf-8 -*- if __name__ == '__main__': list = ['html', 'js', 'css', 'python'] # 方法1 print '遍历列表方法1:' for i in list: print ("序号:%s 值:%s&

  • Python Learning 列表的更多操作及示例代码

    遍历列表-for循环 列表中存储的元素可能非常多,如果想一个一个的访问列表中的元素,可能是一件十分头疼的事.那有没有什么好的办法呢?当然有!使用 for循环 假如有一个食物名单列表,通过 for循环 将列表中的食物名称都打印出来 # 定义一个食物名单列表 foods = ['potato', 'tomato', 'noodles', 'apple', 'pizza'] # 循环访问foods列表 for food in foods: print(food) 输出: potato  tomato 

  • python列表切片和嵌套列表取值操作详解

    给出列表切片的格式: [开头元素::步长] # 输出直到最后一个元素,(最后一个冒号和步长可以省略,下同) [开头元素:结尾元素(不含):步长] # 其中,-1表示list最后一个元素 首先来看最简单的单一列表: a = [1,2,3,4] a[:] a[::] a[:3] a[1:3:2] a[3] 输出依次为: [1,2,3,4] [1,2,3,4] [1,2,3] [2] 4 注意,这里只有最后一个输出是不带[]的,表明只有最后一个输出是元素,其他在切片中只用了:符号的输出均为list,不

  • el-table树形表格表单验证(列表生成序号)

    树形表格表单验证预览 树形列表生成序号 首先需要生成一个序号用来确定表单验证的目标row,通过广度优先遍历,以1,1.1,1.1.1的规则对树形列表生成确定唯一值的索引,因为列表自身可以做CURD,因此需要每次列表的item增加或减少时重新调用生成索引的方法. setIndex = (data) => { let queue = [...data]; let loop = 0; while (queue.length > 0) { loop++ [...queue].forEach((chil

  • Python中关于列表的常规操作范例以及介绍

    目录 1.列表的介绍 2.打印出列表的数据 1.我们可以根据下标取值进行打印 2.使用for循环遍历 3.使用while循环遍历 3.列表的添加操作 1.append()方法 2.extend()方法 3.insert()方法 4.列表的修改操作 5.列表的查找操作 1.in 方法 2.not in 方法 3.index 方法 4.count 方法 6.列表中的删除操作 1.del 方法 2.pop 方法 3.remove 方法 7.列表的排序操作 8.小练习送给你们 (一) (二) 1.列表的

  • python中列表的常见操作梳理总结(一)

    目录 python中列表的常见操作 列表元组的简单操作 列表/元组的长度 列表/元组之间的累加与乘法 判断列表/元组中是否包含某元素 列表的append()函数 列表的insert()函数 列表的count()函数 列表的remove()函数 列表的reverse()函数 列表的sort()函数 列表的clear()函数 列表的copy()函数 列表的extend()函数 python中列表的常见操作 列表元组的简单操作 前面我们已经学过了关于len()函数.赋值运算符及身份运算符的使用,下面简

随机推荐