PostgreSQL 數(shù)據(jù)類型介紹(一)

  • 查看當(dāng)前數(shù)據(jù)庫(kù)的數(shù)據(jù)類型
postgres=# \d pg_type ;
        Table "pg_catalog.pg_type"
     Column     |     Type     | Modifiers 
----------------+--------------+-----------
 typname        | name         | not null
 typnamespace   | oid          | not null
----
//顯示所有的type類型以及對(duì)應(yīng)的存儲(chǔ)類型:
postgres=# select typname, typstorage  from pg_type ;
                typname                | typstorage 
---------------------------------------+------------
 bool                                  | p
 bytea                                 | x
 char                                  | p
 name                                  | p
 int8                                  | p
 int2                                  | p
 int2vector                            | p
 int4                                  | p
 regproc                               | p
 text                                  | x
 oid                                   | p
 tid                                   | p
 xid                                   | p
 cid                                   | p
 oidvector                             | p
 pg_type                               | x
 pg_attribute                          | x
 pg_proc                               | x
 pg_class                              | x
 json                                  | x
 xml                                   | x
 _xml                                  | x

關(guān)于存儲(chǔ)類型 p x e m 的含義 ,請(qǐng)自行搜索括改,代表了各自 不同的存儲(chǔ)方式腻豌。



  左側(cè)為數(shù)據(jù)類型的分類
Paste_Image.png
  • 常見的數(shù)據(jù)類型,數(shù)字
Paste_Image.png

關(guān)于 serial類型嘱能,效果其實(shí)和integer + next sequence 一樣吝梅。
當(dāng)你創(chuàng)建了 serial 數(shù)據(jù)類型,其實(shí)也幫你自動(dòng)創(chuàng)建了 序列

postgres=# create table t (id serial);
CREATE TABLE

postgres=# \d+ t
                                             Table "public.t"
 Column |  Type   |                   Modifiers                    | Storage | Stats target | Description 
--------+---------+------------------------------------------------+---------+--------------+-------------
 id     | integer | not null default nextval('t_id_seq'::regclass) | plain   |              | 
可以看出焰檩,自動(dòng)創(chuàng)建了 t_id_seq 這個(gè)序列憔涉,同時(shí)添加了 not null 約束。

研究下這個(gè)序列:
postgres=# \d+ t_id_seq
               Sequence "public.t_id_seq"
    Column     |  Type   |        Value        | Storage 
---------------+---------+---------------------+---------
 sequence_name | name    | t_id_seq            | plain
 last_value    | bigint  | 1                   | plain
 start_value   | bigint  | 1                   | plain
 increment_by  | bigint  | 1                   | plain
 max_value     | bigint  | 9223372036854775807 | plain
 min_value     | bigint  | 1                   | plain
 cache_value   | bigint  | 1                   | plain
 log_cnt       | bigint  | 0                   | plain
 is_cycled     | boolean | f                   | plain
 is_called     | boolean | f                   | plain
Owned by: public.t.id

  • 常見的字符類型
Paste_Image.png

SQL 定義了兩種基本的字符類型析苫,varchar(n)和char(n)兜叨,這里的n是一個(gè)正整數(shù)穿扳。兩種類型都可以存儲(chǔ)最多n個(gè)字符長(zhǎng)的字串,試圖存儲(chǔ)更長(zhǎng)的字串到這些類型的字段里會(huì)產(chǎn)生一個(gè)錯(cuò)誤国旷,除非超出長(zhǎng)度的字符都是空白矛物,這種情況下該字串將被截?cái)酁樽畲箝L(zhǎng)度。如果沒有長(zhǎng)度聲明跪但,char等于char(1)履羞,而varchar則可以接受任何長(zhǎng)度的字串。
char 類型屡久,如果不夠長(zhǎng)度用 空格填充忆首。

         注意 無(wú)論是那種字符集,這里和的單位是 字符被环,而不是字節(jié)糙及,和 ORACLE不同。

text:表面是無(wú)限長(zhǎng)度筛欢,其實(shí)最大可以支持到1個(gè)GB(依據(jù)版本而定)

           下面都是和字節(jié)有關(guān)的類型浸锨,上面則是和字符有關(guān)的類型

“char” 單字節(jié)的內(nèi)部使用的類型
name 內(nèi)部使用的類型

postgres=# create table t2(c1 varchar(3));
字段 c1 最多允許3個(gè)“字符”,不是字節(jié)0婀谩柱搜!
CREATE TABLE
postgres=# insert into t2 values ('你好呀');
INSERT 0 1
postgres=# insert into t2 values ('abc');
INSERT 0 1
postgres=# insert into t2 values ('abcd');
這時(shí)候就報(bào)錯(cuò)了,因?yàn)閍bcd是4個(gè)字符剥险。
ERROR:  value too long for type character varying(3)

postgres=# select  pg_column_size (c1),c1 from t2 ;
 pg_column_size |   c1   
----------------+--------
             10 | 你好呀
              4 | abc
(2 rows)

-常用的事件類型

Paste_Image.png

interval :是一個(gè)時(shí)間間隔類型聪蘸。

Paste_Image.png

時(shí)間的輸出格式

Paste_Image.png
postgres=# show datestyle; 
 DateStyle 
-----------
 ISO, MDY
(1 row)

postgres=# select now() ;
              now              
-------------------------------
 2017-05-26 09:32:35.197556+08   指的是8區(qū)
(1 row)

interval 類型:

postgres=# select now()-current_date;
?column?     
-----------------
 09:35:29.864559
(1 row)
Paste_Image.png
  • Boolean 類型
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市表制,隨后出現(xiàn)的幾起案子宇姚,更是在濱河造成了極大的恐慌,老刑警劉巖夫凸,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浑劳,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡夭拌,警方通過查閱死者的電腦和手機(jī)魔熏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)鸽扁,“玉大人蒜绽,你說(shuō)我怎么就攤上這事⊥跋郑” “怎么了躲雅?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)骡和。 經(jīng)常有香客問我相赁,道長(zhǎng)相寇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任钮科,我火速辦了婚禮唤衫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘绵脯。我一直安慰自己佳励,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布蛆挫。 她就那樣靜靜地躺著赃承,像睡著了一般。 火紅的嫁衣襯著肌膚如雪悴侵。 梳的紋絲不亂的頭發(fā)上楣导,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音畜挨,去河邊找鬼。 笑死噩凹,一個(gè)胖子當(dāng)著我的面吹牛巴元,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播驮宴,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼逮刨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了堵泽?” 一聲冷哼從身側(cè)響起修己,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎迎罗,沒想到半個(gè)月后睬愤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡纹安,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年尤辱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厢岂。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡光督,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出塔粒,到底是詐尸還是另有隱情结借,我是刑警寧澤,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布卒茬,位于F島的核電站船老,受9級(jí)特大地震影響咖熟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜努隙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一球恤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧荸镊,春花似錦咽斧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至岭洲,卻和暖如春宛逗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盾剩。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工雷激, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人告私。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓屎暇,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親驻粟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子根悼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容