序列數(shù)可以增加postgresql數(shù)據(jù)表的檢索速度,同時(shí)降低數(shù)據(jù)查詢時(shí)的資源消耗。那么如何在postgresql中創(chuàng)建序列數(shù)并且應(yīng)用呢?下面我給大家分享一下。
創(chuàng)新互聯(lián)建站2013年至今,先為久治等服務(wù)建站,久治等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為久治企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
工具/材料
pgAdmin4
創(chuàng)建序列數(shù)
首先打開pgAdmin4,展開postgresql數(shù)據(jù)庫,找到模式下面的public選項(xiàng),如下圖所示
接下來在public下面右鍵單擊序列,然后點(diǎn)擊Create下面的sequence選項(xiàng),如下圖所示
在彈出的創(chuàng)建Sequence界面中首先給序列數(shù)起一個(gè)名字,如下圖所示,注意都用英文
然后切換到Definition頁卡,定義一下序列的增加量,如下圖所示,其中maximum根據(jù)自己的需要進(jìn)行設(shè)置
最后回到數(shù)據(jù)庫主界面,你會(huì)看到序列下面多出了一個(gè)項(xiàng),這就是我們創(chuàng)建的序列數(shù)了,如下圖所示
在數(shù)據(jù)表中應(yīng)用序列數(shù)
首先選中一個(gè)數(shù)據(jù)表,點(diǎn)擊右側(cè)的編輯按鈕,如下圖所示
在彈出的編輯界面中切換到Columns頁卡,點(diǎn)擊ID簽名的編輯按鈕,如下圖所示
最后在字段的編輯界面中切換到Variables選項(xiàng)卡,然后在Value列中通過nextval函數(shù)帶入剛才定義的序列數(shù)即可,如下圖所示
1、通過命令行查詢
\d 數(shù)據(jù)庫 —— 得到所有表的名字
\d 表名 —— 得到表結(jié)構(gòu)
2、通過SQL語句查詢
"select * from pg_tables" —— 得到當(dāng)前db中所有表的信息(這里pg_tables是系統(tǒng)視圖)
"select tablename from pg_tables where schemaname='public'" —— 得到所有用戶自定義表的名字(這里"tablename"字段是表的名字,"schemaname"是schema的名字。用戶自定義的表,如果未經(jīng)特殊處理,默認(rèn)都是放在名為public的schema下)
1. 查詢表名稱
在psql狀態(tài)下查詢表名稱:\dt
SQL方式查看表名稱:
SELECT?tablename?FROM?pg_tables;
SELECT ? viewname ? FROM ? pg_views ?
WHERE ? ? schemaname ='public'
PostgreSQL獲取數(shù)據(jù)庫中所有view名?視圖
SELECT ? viewname ? FROM ? pg_views
WHERE ? ? schemaname ='public'
2. 查詢表結(jié)構(gòu)
在psql狀態(tài)下查詢表結(jié)構(gòu) \d?tablename
SQL方式查看表結(jié)構(gòu)
SELECT a.attnum,
a.attname AS field,
t.typname AS type,
a.attlen AS length,
a.atttypmod AS lengthvar,
a.attnotnull AS notnull,
b.description AS comment
FROM pg_class c,
pg_attribute a
LEFT OUTER JOIN pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid,
pg_type t
WHERE c.relname = 'udoc_saldiscount'
and a.attnum 0
and a.attrelid = c.oid
and a.atttypid = t.oid
ORDER BY a.attnum;
擴(kuò)展資料:
PostgreSQL存儲(chǔ)系統(tǒng)是由以下幾個(gè)子模塊所構(gòu)成的:
1)頁面管理子模塊:對(duì)PostgreSQL緩沖區(qū)頁面的組織結(jié)構(gòu)進(jìn)行定義以及提供頁面操作的方法。
2)緩沖區(qū)管理子模塊:管理PostgreSQL的緩沖區(qū),包括本地緩沖區(qū)和共享緩沖區(qū)。
3)存儲(chǔ)設(shè)備管理子模塊:數(shù)據(jù)庫記錄是存儲(chǔ)在存儲(chǔ)介質(zhì)上的,存儲(chǔ)設(shè)備管理子模塊將屏蔽不同物理存儲(chǔ)設(shè)備(塊設(shè)備,流設(shè)備)接口函數(shù)的差異,向上層緩沖區(qū)管理子模塊提供統(tǒng)一的訪問接口函數(shù)。
4)文件管理子模塊:一般的操作系統(tǒng)對(duì)一個(gè)進(jìn)程允許打開的文件數(shù)是有限制的,而PostgreSQL服務(wù)器有些時(shí)候需要打開的文件數(shù)是很多的,因此PostgreSQL文件管理子模塊自身為了突破這個(gè)瓶頸,封裝了文件的讀寫操作。
1、在postgresql中實(shí)現(xiàn)‘刪除表中一個(gè)月前的的數(shù)據(jù)’,打開AdminIII的Query tool,編輯框中輸入對(duì)應(yīng)的SQL語句,執(zhí)行查詢就可以了;
2、具體舉例:設(shè)要?jiǎng)h除記錄的表格名稱為table1,字段a的值為table1中標(biāo)注記錄日期的字段;
DELETE FROM table1
WHERE table1.a(select current_date);
說明:
1)、SELECT current_date;
得到的結(jié)果如下:
'2015-7-30';
插入數(shù)據(jù)的時(shí)候,會(huì)根據(jù)address_id算出它的hashcode值,然后落入到對(duì)應(yīng)的分區(qū)表上。查詢數(shù)據(jù)的時(shí)候,只要帶入這個(gè)address_id作為查詢條件,就會(huì)算出對(duì)應(yīng)的hashcode的值,然后就可以直接去指定的分區(qū)表中查詢檢索數(shù)據(jù),避免大表掃描,提升查詢效率。
舉個(gè)例子,有2000萬的數(shù)據(jù),做了hash分區(qū),分出來20張表,在插入數(shù)據(jù)的時(shí)候把2000萬的數(shù)據(jù)均勻分布到這20張表中,平均每張表的數(shù)據(jù)只有100萬,那么查詢某個(gè)數(shù)據(jù)的時(shí)候,就可以只查詢其中的一個(gè)分區(qū)表,因?yàn)閿?shù)據(jù)只有100萬,遠(yuǎn)遠(yuǎn)比2000萬小,所以速度更快
網(wǎng)站題目:包含postgresql表格的詞條
文章轉(zhuǎn)載:http://www.rwnh.cn/article44/dscojee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、外貿(mào)網(wǎng)站建設(shè)、商城網(wǎng)站、網(wǎng)站改版、網(wǎng)站導(dǎo)航、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)