日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
PostgreSQL數(shù)據(jù)類型

 本章討論P(yáng)ostgreSQL數(shù)據(jù)類型。在創(chuàng)建表的同時(shí),要求每列都要指定數(shù)據(jù)類型,即什么樣的數(shù)據(jù)要存儲(chǔ)在表中的字段。

成都創(chuàng)新互聯(lián)公司IDC提供業(yè)務(wù):樂山服務(wù)器托管,成都服務(wù)器租用,樂山服務(wù)器托管,重慶服務(wù)器租用等四川省內(nèi)主機(jī)托管與主機(jī)租用業(yè)務(wù);數(shù)據(jù)中心含:雙線機(jī)房,BGP機(jī)房,電信機(jī)房,移動(dòng)機(jī)房,聯(lián)通機(jī)房。

這使幾個(gè)好處:

一致性: 對(duì)相同的數(shù)據(jù)類型的列的操作給出了一致的結(jié)果,通常是最快的。

驗(yàn)證:正確使用的數(shù)據(jù)類型表示數(shù)據(jù)和拒絕的范圍之外的數(shù)據(jù)類型的數(shù)據(jù)格式驗(yàn)證。

壓縮:作為一列可以存儲(chǔ)單一類型的值,它被存儲(chǔ)在一個(gè)緊湊的方式。

性能:適當(dāng)?shù)厥褂玫臄?shù)據(jù)類型給出最有效的數(shù)據(jù)存儲(chǔ)。存儲(chǔ)的值可以被快速處理,從而提高性能。

PostgreSQL支持一系列廣泛的數(shù)據(jù)類型。此外,用戶可以使用SQL命令CREATE TYPE創(chuàng)建自己的自定義數(shù)據(jù)類型。在PostgreSQL中有不同類別的數(shù)據(jù)類型。如下:
數(shù)值類型

數(shù)值類型由兩個(gè)字節(jié),4字節(jié)和8字節(jié)的整數(shù),4字節(jié)和8字節(jié)的浮點(diǎn)數(shù)和可選精度的小數(shù)。下表列出了可用的類型。

貨幣類型

貨幣類型存儲(chǔ)的貨幣金額與一個(gè)固定的分?jǐn)?shù)精度??梢赞D(zhuǎn)換為金錢的數(shù)字,int和bigint數(shù)據(jù)類型的值。不推薦使用浮點(diǎn)數(shù)來處理金錢的潛力,由于舍入誤差。

 字符類型

下表列出了可在PostgreSQL通用字符類型。

二進(jìn)制數(shù)據(jù)類型

bytea數(shù)據(jù)類型允許存儲(chǔ)二進(jìn)制字符串,如下面的表格中說明。

日期/時(shí)間類型

PostgreSQL支持全套的SQL日期和時(shí)間類型,列于下表。根據(jù)公歷日期計(jì)算。在這里,所有的類型有日期類型以外,其分辨率為day1微秒/14位的解析度。

 布爾類型

PostgreSQL提供了標(biāo)準(zhǔn)的SQL類型布爾值。布爾類型可以有幾種狀態(tài):true,false,和第三狀態(tài)null,這是SQL空值表示。

枚舉類型

枚舉(枚舉)類型的數(shù)據(jù)類型,包括靜態(tài),有序設(shè)置的值。在許多編程語言支持枚舉類型,它們是相等。

Unlike other types, Enumerated Types need to be created using CREATE TYPE command. This type is used to store a static, ordered set of values, for example compass directions, i.e. NORTH, SOUTH, EAST, and WEST or days of the week as below:

枚舉一旦產(chǎn)生,它們可以像任何其他類型。

幾何類型

幾何數(shù)據(jù)類型表示二維空間對(duì)象。最根本的不同點(diǎn)是形成的所有其他類型的基礎(chǔ)。

網(wǎng)絡(luò)地址類型

PostgreSQL提供的數(shù)據(jù)類型來存儲(chǔ)的IPv4,IPv6的地址和MAC地址。這是更好地使用這些類型,而不是純文本類型存儲(chǔ)網(wǎng)絡(luò)地址,因?yàn)檫@些類型提供輸入錯(cuò)誤檢查和特殊的操作和函數(shù)。

 位串類型

位串類型用于存儲(chǔ)位掩碼。他們要么是0或1。 SQL位類型有兩種:(n)的位而變位(n)的,其中n是一個(gè)正整數(shù)

文本搜索類型

這個(gè)類型支持全文檢索,這是通過自然語言文檔的集合的搜索,找到那些***查詢活動(dòng)。這有兩種數(shù)據(jù)類型

UUID類型

一個(gè)UUID(通用唯一標(biāo)識(shí)符)寫成小寫的十六進(jìn)制數(shù)字序列,由連字號(hào),特別是一組8位數(shù)字,然后由三組4位數(shù)字,然后由一組12位數(shù)字分開幾組,總32位,128位代表。

一個(gè)UUID的例子是: 550e8400-e29b-41d4-a716-446655440000

XML Type

xml數(shù)據(jù)類型可以用來存儲(chǔ)XML數(shù)據(jù)。對(duì)于存儲(chǔ)XML數(shù)據(jù),首先創(chuàng)建XML值函數(shù)XMLPARSE如下:

 
 
 
 
  1. XMLPARSE (DOCUMENT ' 
  2.  
  3. PostgreSQL Tutorial  
  4.    ... 
  5. ') 
  6.  
  7. XMLPARSE (CONTENT 'xyzbarfoo') 

JSON類型

JSON數(shù)據(jù)類型可以用來存儲(chǔ)JSON(JavaScript對(duì)象符號(hào))數(shù)據(jù)。這樣的數(shù)據(jù)也可以被存儲(chǔ)為文本,但json數(shù)據(jù)類型具有的優(yōu)點(diǎn)是檢查每個(gè)存儲(chǔ)的值是否為有效的JSON值。也有相關(guān)的支持功能可以直接用來處理JSON數(shù)據(jù)類型,如下所示:

陣列/數(shù)組類型

PostgreSQL的機(jī)會(huì)定義為可變長度的多維數(shù)組的列一個(gè)表。任何內(nèi)置或用戶定義的基本類型數(shù)組,枚舉類型,或者可以創(chuàng)建復(fù)合型。

DECLARATION OF ARRAYS

數(shù)組類型可以聲明為:

 
 
 
 
  1. CREATE TABLE monthly_savings ( 
  2.    name text, 
  3.    saving_per_quarter integer[], 
  4.    scheme text[][] 
  5. ); 

 或通過使用關(guān)鍵字“ARRAY”:

 
 
 
 
  1. CREATE TABLE monthly_savings ( 
  2.    name text, 
  3.    saving_per_quarter integer ARRAY[4], 
  4.    scheme text[][] 
  5. ); 

插入值

數(shù)組的值可以插入一個(gè)文本常量,內(nèi)附大括號(hào)內(nèi)的元素值,并用逗號(hào)將它們隔開。例子如下:

 
 
 
 
  1. INSERT INTO monthly_savings 
  2. VALUES ('Manisha', 
  3. '{20000, 14600, 23500, 13250}', 
  4. '{{"FD", "MF"}, {"FD", "Property"}}'); 

 訪問數(shù)組

用于訪問陣列的一個(gè)例子如下所示。下面的命令將選擇人員,他們存儲(chǔ)在第二,第四個(gè)。

 
 
 
 
  1. UPDATE monthly_savings SET saving_per_quarter = '{25000,25000,27000,27000}' 
  2. WHERE name = 'Manisha'; 

 或數(shù)組表達(dá)式語法:

 
 
 
 
  1. UPDATE monthly_savings SET saving_per_quarter = ARRAY[25000,25000,27000,27000] 
  2. WHERE name = 'Manisha'; 

 尋找ARRAYS

搜索數(shù)組的一個(gè)例子如下所示。

 
 
 
 
  1. SELECT * FROM monthly_savings WHERE saving_per_quarter[1] = 10000 OR 
  2. saving_per_quarter[2] = 10000 OR 
  3. saving_per_quarter[3] = 10000 OR 
  4. saving_per_quarter[4] = 10000; 

 如果數(shù)組的大小是已知的上述搜索方法都可以使用。否則,下面的例子說明如何時(shí)要搜索的大小是不知道的。

 
 
 
 
  1. SELECT * FROM monthly_savings WHERE 10000 = ANY (saving_per_quarter); 

復(fù)合類型

此類型代表一個(gè)字段名和數(shù)據(jù)類型,即結(jié)構(gòu)的一個(gè)表中的行或記錄列表。

復(fù)合類型聲明

下面的例子演示如何聲明一個(gè)復(fù)合類型:

 
 
 
 
  1. CREATE TYPE inventory_item AS ( 
  2.    name text, 
  3.    supplier_id integer, 
  4.    price numeric 
  5. ); 

 此數(shù)據(jù)類型可用于在創(chuàng)建表如下所示:

 
 
 
 
  1. CREATE TABLE on_hand ( 
  2.    item inventory_item, 
  3.    count integer 
  4. ); 

 復(fù)合值輸入

復(fù)合值可以插入文字常量,封裝領(lǐng)域括號(hào)內(nèi)的值,并用逗號(hào)將它們隔開。一個(gè)例子是如下:

此有效的定義同上的inventory_item的。行關(guān)鍵字實(shí)際上是可選的表達(dá)式中,只要有一個(gè)以上的字段。

訪問復(fù)合類型

要訪問一個(gè)復(fù)合列的字段,字段名,使用點(diǎn)很像選擇字段從一個(gè)表名。例如,要選擇一些子字段,on_hand示例表的查詢將如下所示:

甚至可以使用表名(例如,在一個(gè)多表查詢),像這樣:

范圍類型

范圍類型的數(shù)據(jù)類型,采用了一系列數(shù)據(jù)。范圍類型可以是離散的范圍(例如,所有的整數(shù)值1到10)或連續(xù)范圍(例如任何時(shí)間點(diǎn)的上午10:00到上午11:00)。

內(nèi)置的范圍類型范圍包括:

 
 
 
 
  1. int4range - Range of integer 
  2.  
  3. int8range - Range of bigint 
  4.  
  5. numrange - Range of numeric 
  6.  
  7. tsrange - Range of timestamp without time zone 
  8.  
  9. tstzrange - Range of timestamp with time zone 
  10.  
  11. daterange - Range of date 

 可以創(chuàng)建自定義的范圍類型,做出新的類型的適用范圍,如使用int類型為基礎(chǔ)的IP地址范圍,或者使用浮點(diǎn)數(shù)據(jù)類型為基礎(chǔ)的浮動(dòng)范圍。

范圍類型支持包容性和排他性的范圍邊界分別使用[]和()個(gè)字符,例如: [4,9]'代表所有從包括4但不包括9的整數(shù)。

 對(duì)象標(biāo)識(shí)符類型

對(duì)象標(biāo)識(shí)符(OID)內(nèi)部使用PostgreSQL作為各種系統(tǒng)表的主鍵。 OIDS IfWITH指定或default_with_oids配置變量,只有在這樣的情況下啟用的OID被添加到用戶創(chuàng)建的表。下表列出了幾個(gè)別名類型。 OID別名類型有沒有自己的操作,除了專門的輸入和輸出過程。

偽類型

PostgreSQL類型系統(tǒng)包含了一些特殊用途的統(tǒng)稱為偽類型的項(xiàng)。一個(gè)偽類型不能被用作列的數(shù)據(jù)類型,但它可以用來聲明一個(gè)函數(shù)的參數(shù)或結(jié)果類型。下表列出了現(xiàn)有的偽類型。


文章標(biāo)題:PostgreSQL數(shù)據(jù)類型
本文路徑:http://www.dlmjj.cn/article/dhgidep.html