時間:2024-03-12 20:33作者:下載吧人氣:15
PostgreSQL簡介
PostgreSQL是一種特性非常齊全的自由軟件的對象-關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(ORDBMS),是以加州大學(xué)計算機(jī)系開發(fā)的POSTGRES,4.2版本為基礎(chǔ)的對象關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。POSTGRES的許多領(lǐng)先概念只是在比較遲的時候才出現(xiàn)在商業(yè)網(wǎng)站數(shù)據(jù)庫中。PostgreSQL支持大部分的SQL標(biāo)準(zhǔn)并且提供了很多其他現(xiàn)代特性,如復(fù)雜查詢、外鍵、觸發(fā)器、視圖、事務(wù)完整性、多版本并發(fā)控制等。同樣,PostgreSQL也可以用許多方法擴(kuò)展,例如通過增加新的數(shù)據(jù)類型、函數(shù)、操作符、聚集函數(shù)、索引方法、過程語言等。另外,因?yàn)樵S可證的靈活,任何人都可以以任何目的免費(fèi)使用、修改和分發(fā)PostgreSQL。
我們在使用postgresql數(shù)據(jù)庫的時候,如果一張數(shù)據(jù)表在未做任何約束的情況下,很可能會出現(xiàn)幾條完全一樣的數(shù)據(jù),即重復(fù)數(shù)據(jù)。如下圖所示:
那么如果我們要刪除其中的2條該怎么辦呢?第一種我們可以清空表的內(nèi)容,再使用INSERT INTO語句再將內(nèi)容插入到表中。此方法可行,但對于專業(yè)人士來講,并不推薦
第二種我們可以結(jié)合pg數(shù)據(jù)庫中的ctid(和物理存儲有關(guān),指的是一條記錄位于哪個數(shù)據(jù)塊的哪個位移上面)來進(jìn)行刪除。這里我們使用依然先使用SELECT語句進(jìn)行查詢。
這樣我們就可以使用唯一標(biāo)識的ctid對重復(fù)數(shù)據(jù)進(jìn)行刪除操作,使用以下兩種方式都可以刪除tb_5201351表中2條數(shù)據(jù)。
DELETE FROM tb_5201351 WHERE ctid in (‘(0,2)’,'(0,3)’);
網(wǎng)友評論