域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過
這篇文章主要介紹了PostgreSQL 實(shí)現(xiàn)給查詢列表增加序號(hào)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧。
利用 ROW_NUMBER() over( ) 給查詢序列增加排序字段
SELECT ROW_NUMBER() over(ORDER bY biztypename DESC ) AS num,
biztypename FROM (SELECT DISTINCT biztypename FROM bizmaptype) t;
效果如下:
補(bǔ)充:PostgreSql 使用自定義序列(Sequence)向表插入數(shù)據(jù) id 自增長(zhǎng)
按照以往Oracle建表的流程,我們來(lái)新建表,并且向表中導(dǎo)入數(shù)據(jù)。
1.創(chuàng)建Book表
CREATE TABLE book(
id INTEGER PRIMARY KEY ,
name CHARACTER VARYING(50),
price DOUBLE PRECISION,
author CHARACTER VARYING(20)
);
PRIMARY KEY 將id設(shè)置為主鍵;
數(shù)據(jù)類型
類型名稱 別名 描述
integer int,int4 有正負(fù)之分的4字節(jié)整數(shù)
character varying [ (n) ] varchar [ (n) ]
可變長(zhǎng)度的字符串
double precision float8 雙精度浮點(diǎn)數(shù)(8字節(jié))
更多類型請(qǐng)參考文檔:https://www.postgresql.org/docs/9.3/static/datatype.html
2.創(chuàng)建自動(dòng)增長(zhǎng)序列
CREATE SEQUENCE book_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
參數(shù) 描述
START WITH 設(shè)置起始值,允許序列從任何地方開始
INCREMENT BY 設(shè)置增量,指定在哪個(gè)值得基礎(chǔ)上創(chuàng)建新值,正值將產(chǎn)生遞增序列,負(fù)值將產(chǎn)生遞減序列;默認(rèn)值為1。
NO MINVALUE 設(shè)置序列可以生成的最小值,如果未指定NO MINVALUE,對(duì)于升序和降序序列,默認(rèn)值分別為1和。
NO MAXVALUE 設(shè)置序列可以生成的最大值,如果未指定此子句,將使用默認(rèn)值,對(duì)于升序和降序序列,默認(rèn)值為和-1。
CACHE 設(shè)置高速緩存,要分配多少序列號(hào)并將其存貯在內(nèi)存中方便更快的訪問,最小值為1,默認(rèn)值也是1。
3.為book表添加自動(dòng)增長(zhǎng)序列
1ALTER TABLE book ALTER COLUMN id SET DEFAULT nextval('book_id_seq');
4.向book表Insert數(shù)據(jù)
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高級(jí)編程》',50.5,'李三');
5.查詢book表中數(shù)據(jù)
1SELECT * FROM public.book;
查詢結(jié)果:
6.相關(guān)序列操作:
--查詢序列 (每查詢一次,序列就做了一次+1操作,即查詢下一次的value)
SELECT nextval('book_id_seq');
--移除序列
DROP SEQUENCE 'book_id_seq';
文章來(lái)源:腳本之家
來(lái)源地址:https://www.jb51.net/article/204268.htm
申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!