<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

GaussDB 數據類型介紹

YG科技 ? 來源:jf_81200783 ? 作者:jf_81200783 ? 2023-06-05 16:40 ? 次閱讀

GaussDB 數據庫

GaussDB 是華為基于 openGauss 自研生態推出的云化企業級分布式關系型數據庫,它支持多種數據類型,包括數值、字符、日期等。在使用 GaussDB 時,可能需要進行數據類型轉換,以滿足不同的需求。本文將以示例的形式羅列并介紹一些常見的數據類型轉換方法等。

數據類型概念及特點

數據類型是一組值的集合以及定義在這個值集上的一組操作。GaussDB 數據庫是由表的集合組成的,而各表中的列定義了該表,每一列都屬于一種數據類型,GaussDB 根據數據類型有相應函數對其內容進行操作,例如 GaussDB 可對數值型數據進行加、減、乘、除操作等。

數據類型是用來定義數據存儲格式和數據范圍的規范。每種數據類型都有自己的特點和適用范圍,它們在數據庫中的作用主要有以下幾點:

wKgaomR9n2OAH_SBAADpw3AtE6c828.png

存儲數據:數據庫中的每個字段都必須指定數據類型,這樣才能確定它們在數據庫中的存儲格式。不同的數據類型使用不同的存儲方式,例如整型會以二進制形式存儲,而字符型則以 ASCII 碼或 Unicode 編碼形式存儲。

約束數據范圍:數據類型可以限制某個字段存儲的數據范圍,例如整型只能存儲整數值,小數型只能存儲浮點數等。這樣可以確保數據的準確性和完整性,防止非法值進入數據庫。

提高查詢效率:數據庫在查詢數據時會根據字段的數據類型進行優化,例如對整型字段的查詢會比對字符型字段的查詢更快,因為整型字段的數據存儲格式更簡單,計算也更快。

降低存儲空間:不同的數據類型使用不同的存儲方式,一些數據類型可以在存儲時減少存儲空間的占用。例如使用整型可以減少存儲空間的占用,因為整型在存儲時只需要占用 4 個字節,而字符型則需要占用更多的存儲空間。

提高數據安全性:數據類型可以幫助數據庫對數據進行有效的過濾和驗證,限制不合法的數據輸入,增強數據的安全性和可靠性。

綜上所述,數據類型在數據庫中扮演著極為重要的角色,它們不僅僅用于存儲數據,還可以提高查詢效率、降低存儲空間、提高數據安全性等。數據庫開發人員在設計數據庫時必須充分了解各種數據類型的特點和使用場景,合理選用數據類型,才能保證數據庫的高效性和穩定性。

常用數據類型

1、常用字符串類型介紹

在進行字段設計時,需要根據數據特征選擇相應的數據類型。字符串類型在使用時比較容易混淆,下表羅列了 GaussDB 中常見的字符串類型。

1)常用字符串類型

wKgZomR9n2SAGK9UAAEhvS7nfe4378.png

2、布爾類型

1)說明

“真”值的有效文本值是:TRUE、't'、'true'、'y'、'yes'、'1'以及所有非 0 整數。

“假”值的有效文本值是:FALSE、'f'、'false'、'n'、'no'、'0'、0。

使用 TRUE 和 FALSE 是比較規范的用法(也是 SQL 兼容的用法)。

3、數值類型

1)整數類型

wKgaomR9n2SAC1bDAACJsmgSJnE585.png

TINYINT、SMALLINT、INTEGER 和 BIGINT 類型存儲各種范圍的數字,也就是整數。試圖存儲超出范圍以外的數值將會導致錯誤。

常用的類型是 INTEGER,因為它提供了在范圍、存儲空間、性能之間的最佳平衡。一般只有取值范圍確定不超過 SMALLINT 的情況下,才會使用 SMALLINT 類型。而只有在 INTEGER 的范圍不夠的時候才使用 BIGINT,因為前者相對快得多。

4、日期/時間類型

1)日期輸入說明:日期和時間的輸入幾乎可以是任何合理的格式,包括 ISO-8601 格式、SQL-兼容格式、傳統 POSTGRES 格式或者其它的形式。系統支持按照日、月、年的順序自定義日期輸入。如果把 DateStyle 參數設置為 MDY 就按照“月-日-年”解析,設置為 DMY 就按照“日-月-年”解析,設置為 YMD 就按照“年-月-日”解析。

日期的文本輸入需要加單引號包圍,語法:type [ ( p ) ] 'value',可選的精度聲明中的 p 是一個整數,表示在秒域中小數部分的位數。

wKgZomR9n2WAa9H3AAGN_UT2tWk516.png

2)時間段輸入說明:reltime 的輸入方式可以采用任何合法的時間段文本格式,包括數字形式(含負數和小數)及時間形式,其中時間形式的輸入支持 SQL 標準格式、ISO-8601 格式、POSTGRES 格式等。另外,文本輸入需要加單引號。

wKgaomR9n2WAAB5PAAGFeOkntRw387.png

數據類型選擇建議

選擇數據類型,在字段設計時,基于查詢效率的考慮,一般遵循以下原則:

選擇數值類型時,在滿足業務精度的情況下,選擇數據類型的優先級從高到低依次為整數、浮點數、NUMERIC。

使用一致的數據類型,當多個表存在邏輯關系時,表示同一含義的字段應該使用相同的數據類型。

對于字符串數據,建議使用變長字符串數據類型,并指定最大長度。請務必確保指定的最大長度大于需要存儲的最大字符數,避免超出最大長度時出現字符截斷現象。除非明確知道數據類型為固定長度字符串,否則,不建議使用 CHAR(n)、BPCHAR(n)、NCHAR(n)、CHARACTER(n)。

索引字段的總長度不超過 50 字節。否則,索引大小會膨脹比較嚴重,帶來較大的存儲開銷,同時索引性能也會下降。

盡量使用執行效率比較高的數據類型,一般來說整型數據運算(包括=、>、<、≧、≦、≠等常規的比較運算,以及 group by)的效率比字符串、浮點數要高。比如某客戶場景中對列存表進行點查詢,filter 條件在一個 numeric 列上,執行時間為 10+s;修改 numeric 為 int 類型之后,執行時間縮短為 1.8s 左右。

盡量使用短字段的數據類型:長度較短的數據類型不僅可以減小數據文件的大小,提升 IO 性能;同時也可以減小相關計算時的內存消耗,提升計算性能。比如對于整型數據,如果可以用 smallint 就盡量不用 int,如果可以用 int 就盡量不用 bigint。

表關聯列盡量使用相同的數據類型。如果表關聯列數據類型不同,數據庫必須動態地轉化為相同的數據類型進行比較,這種轉換會帶來一定的性能開銷。

附:GaussDB 數據庫涉及的數據類型

“數值類型、貨幣類型、布爾類型、字符類型、二進制類型、日期/時間類型、幾何類型、網絡地址類型、位串類型、文本搜索類型、UUID 類型、JSON/JSONB 類型、HLL 數據類型、范圍類型、對象標識符類型、偽類型、列存表支持的數據類型、賬本數據庫使用的數據類型”。

審核編輯黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 華為
    +關注

    關注

    215

    文章

    33863

    瀏覽量

    247765
  • SQL
    SQL
    +關注

    關注

    1

    文章

    740

    瀏覽量

    43547
  • 數據庫
    +關注

    關注

    7

    文章

    3627

    瀏覽量

    63689
  • 華為云
    +關注

    關注

    3

    文章

    2210

    瀏覽量

    16942
收藏 人收藏

    評論

    相關推薦

    Redis數據類型介紹

    Redis 作為一個內存數據庫已經被許許多多的公司使用,它的性能非常的優秀,讀寫速度支持非??於抑С?10W 的 QPS 。今天我們就來學習下它的豐富的數據類型。 Redis 數據類型 Redis
    的頭像 發表于 10-09 10:53 ?592次閱讀
    Redis<b class='flag-5'>數據類型</b><b class='flag-5'>介紹</b>

    vhdl數據類型

    VHDL中的標識符可以是常數、變量、信號、端口、子程序或參數的名字。VHDL中的數據類型可以分成四大類: 標量型(SCALAR TYPE):屬單元素的最基本的數據類型,通常用于描述一個單值數據對象
    發表于 03-30 15:59 ?11次下載

    51單片機學習筆記(9)——C51的基本數據類型和擴充數據類型

    基本數據類型:擴充數據類型
    發表于 11-14 13:36 ?1次下載
    51單片機學習筆記(9)——C51的基本<b class='flag-5'>數據類型</b>和擴充<b class='flag-5'>數據類型</b>

    Struct結構數據類型

    Struct類型是一種由多個不同數據類型元素組成的數據結構,其元素可以是基本數據類型,也可以是Struct、數組等復雜數據類型以及PLC
    的頭像 發表于 07-25 17:02 ?2585次閱讀

    結構數據類型(Struct)及應用案例

    Struct數據類型使用非常靈活,隨時可以使用,但是相對于PLC數據類型 (UDT) 有以下缺點,所以建議需要使用Struct類型時,可以使用PLC數據類型(UDT)代替。
    的頭像 發表于 07-27 16:10 ?1433次閱讀

    結構數據類型Struct介紹

    Struct類型是一種由多個不同數據類型元素組成的數據結構,其元素可以是基本數據類型,也可以是Struct、數組等復雜數據類型以及PLC
    的頭像 發表于 01-30 10:15 ?1407次閱讀

    什么是數據類型轉換

    常用的3種數據類型:1、Python數據類型第一種:字符串(str)。 2、Python數據類型第二種:整數(int)。 3、Python數據類型第三種:浮點數(float)。
    的頭像 發表于 02-23 15:21 ?1270次閱讀

    定義數據類型

    在運算之前我們必須首先定義出數據類型,定義出腳本支持的數據類型,這是運算的基礎。 這一小節我們將定義出數據類型,在這里我們暫時定義四個數據類型:
    的頭像 發表于 03-03 10:10 ?681次閱讀

    S71500-硬件數據類型介紹

    硬件數據類型:硬件數據類型由 CPU 提供??捎糜布?b class='flag-5'>數據類型的數目取決于 CPU。
    的頭像 發表于 05-16 09:21 ?4023次閱讀
    S71500-硬件<b class='flag-5'>數據類型</b><b class='flag-5'>介紹</b>

    GaussDB數據類型轉換介紹

    數據類型轉換在實際應用中非常常見。GaussDB 作為一款企業級分布式關系型數據庫,在實際業務場景使用中,也會避免不了數據類型的轉換。以下是一些數據
    的頭像 發表于 06-05 16:29 ?591次閱讀
    <b class='flag-5'>GaussDB</b><b class='flag-5'>數據類型</b>轉換<b class='flag-5'>介紹</b>

    ARRAY 數據類型的變量

    要求 全局數據塊已打開。 操作步驟 要聲明一個 ARRAY 數據類型的變量,請按以下步驟操作: 在“名稱”(Name) 列中,輸入變量的名稱。 在“數據類型”列中輸入“Array”數據類型
    的頭像 發表于 07-06 11:08 ?738次閱讀

    淺談PLC定義數據類型的應用

    PLC定義數據類型以下用一個例子介紹PLC定義數據類型的應用,以便進一步理解PLC定義數據類型。
    的頭像 發表于 07-24 16:07 ?949次閱讀
    淺談PLC定義<b class='flag-5'>數據類型</b>的應用

    Redis的數據類型有哪些

    Redis的數據類型有哪些?有五種常用數據類型:String、Hash、Set、List、SortedSet。以及三種特殊的數據類型:Bitmap、HyperLogLog、Geospatial
    的頭像 發表于 10-09 10:51 ?476次閱讀

    oracle的數據類型有哪些

    Oracle數據庫中有許多數據類型可供選擇,每種數據類型都有其各自的特點和適用場景。下面是對Oracle數據庫中最常用的數據類型的詳盡說明,
    的頭像 發表于 12-05 16:45 ?927次閱讀

    plc數據類型怎么理解和應用

    PLC(可編程邏輯控制器)是一種工業自動化設備,用于控制機械和工業過程。在PLC編程中,數據類型是非常重要的概念,因為它決定了程序中數據的存儲和處理方式。正確理解和應用PLC數據類型是編寫有效、可靠
    的頭像 發表于 12-19 11:39 ?2254次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>