資料庫存儲數據類型
『壹』 資料庫的數據類型
資料庫的常用數據類型如下:
一、整數數據類型:整數數據類型是最常用的數據類型之一。二、浮點數據類型:浮點數據類型用於存儲十進制小數。浮點數值的數據在sqlServer中採用上舍入(Rounp或稱為只入不舍)方式進行存儲。三、二進制數據類型。四、邏輯數據類型。五、字元數據類型:字元數據類型是使用最多的數據類型。它可以用來存儲各種字母、數字元號、特殊符號。一般情況下,使用字元類型數據時須在其前後加上單引號』或雙引號」。
以上就是資料庫的常用數據類型。
『貳』 資料庫中數據類型有哪些呢
數據類型 類型 描 述 bit 整型 bit 數據類型是整型,其值只能是0、1或空值。這種數據類型用於存儲只有兩種可能值的數據,如Yes 或No、True 或Fa lse 、On 或Off int 整型 int 數據類型可以存儲從- 231(-2147483648)到231 (2147483 647)之間的整數。存儲到資料庫的幾乎所有數值型的數據都可以用這種數據類型。這種數據類型在資料庫里佔用4個位元組 smallint 整型 smallint 數據類型可以存儲從- 215(-32768)到215(32767)之間的整數。這種數據類型對存儲一些常限定在特定范圍內的數值型數據非常有用。這種數據類型在資料庫里佔用2 位元組空間 tinyint 整型 tinyint 數據類型能存儲從0到255 之間的整數。它在你只打算存儲有限數目的數值時很有用。 這種數據類型在資料庫中佔用1 個位元組 numeric精確數值型 numeric數據類型與decimal 型相同 decimal 精確數值型 decimal 數據類型能用來存儲從-1038-1到1038-1的固定精度和范圍的數值型數據。使用這種數據類型時,必須指定范圍和精度。 范圍是小數點左右所能存儲的數字的總位數。精度是小數點右邊存儲的數字的位數 money 貨幣型 money 數據類型用來表示錢和貨幣值。這種數據類型能存儲從-9220億到9220 億之間的數據,精確到貨幣單位的萬分之一 smallmoney 貨幣型 smallmoney 數據類型用來表示錢和貨幣值。這種數據類型能存儲從-214748.3648 到214748.3647 之間的數據,精確到貨幣單位的萬分之一 float 近似數值型 float 數據類型是一種近似數值類型,供浮點數使用。說浮點數是近似的,是因為在其范圍內不是所有的數都能精確表示。浮點數可以是從-1.79E+308到1.79E+308 之間的任意數 real 近似數值型 real 數據類型像浮點數一樣,是近似數值類型。它可以表示數值在-3.40E+38到3.40E+38之間的浮點數 datetime 日期時間型 datetime數據類型用來表示日期和時間。這種數據類型存儲從1753年1月1日到9999年12月3 1日間所有的日期和時間數據, 精確到三百分之一秒或3.33毫秒 Smalldatetime 日期時間型 smalldatetime 數據類型用來表示從1900年1月1日到2079年6月6日間的日期和時間,精確到一分鍾 cursor 特殊數據型 cursor 數據類型是一種特殊的數據類型,它包含一個對游標的引用。這種數據類型用在存儲過程中,而且創建表時不能用 timestamp 特殊數據型 timestamp 數據類型是一種特殊的數據類型,用來創建一個資料庫范圍內的唯一數碼。 一個表中只能有一個timestamp列。每次插入或修改一行時,timestamp列的值都會改變。盡管它的名字中有「time」, 但timestamp列不是人們可識別的日期。在一個資料庫里,timestamp值是唯一的 Uniqueidentifier 特殊數據型 Uniqueidentifier數據類型用來存儲一個全局唯一標識符,即GUID。GUID確實是全局唯一的。這個數幾乎沒有機會在另一個系統中被重建。可以使用NEWID 函數或轉換一個字元串為唯一標識符來初始化具有唯一標識符的列 char 字元型 char數據類型用來存儲指定長度的定長非統一編碼型的數據。當定義一列為此類型時,你必須指定列長。當你總能知道要存儲的數據的長度時,此數據類型很有用。例如,當你按郵政編碼加4個字元格式來存儲數據時,你知道總要用到10個字元。此數據類型的列寬最大為8000 個字元 varchar 字元型 varchar數據類型,同char類型一樣,用來存儲非統一編碼型字元數據。與char 型不一樣,此數據類型為變長。當定義一列為該數據類型時,你要指定該列的最大長度。 它與char數據類型最大的區別是,存儲的長度不是列長,而是數據的長度 text 字元型 text 數據類型用來存儲大量的非統一編碼型字元數據。這種數據類型最多可以有231-1或20億個字元 nchar 統一編碼字元型 nchar 數據類型用來存儲定長統一編碼字元型數據。統一編碼用雙位元組結構來存儲每個字元,而不是用單位元組(普通文本中的情況)。它允許大量的擴展字元。此數據類型能存儲4000種字元,使用的位元組空間上增加了一倍 nvarchar 統一編碼字元型 nvarchar 數據類型用作變長的統一編碼字元型數據。此數據類型能存儲4000種字元,使用的位元組空間增加了一倍 ntext 統一編碼字元型 ntext 數據類型用來存儲大量的統一編碼字元型數據。這種數據類型能存儲230 -1或將近10億個字元,且使用的位元組空間增加了一倍 binary 二進制數據類型 binary數據類型用來存儲可達8000 位元組長的定長的二進制數據。當輸入表的內容接近相同的長度時,你應該使用這種數據類型 varbinary 二進制數據類型 varbinary 數據類型用來存儲可達8000 位元組長的變長的二進制數據。當輸入表的內容大小可變時,你應該使用這種數據類型 image 二進制數據類型 image 數據類型用來存儲變長的二進制數據,最大可達231-1或大約20億位元組
『叄』 sql資料庫中常用的數據類型有什麼
一、整數數據類型:整數數據類型是最常用的數據類型之一。
1、INT(INTEGER)
INT (或INTEGER)數據類型存儲從-2的31次方 (-2 ,147 ,483 ,648) 到2的31次方-1 (2 ,147 ,483,647) 之間的所有正負整數。每個INT 類型的數據按4 個位元組存儲,其中1 位表示整數值的正負號,其它31 位表示整數值的長度和大小。
2、SMALLINT
SMALLINT 數據類型存儲從-2的15次方( -32, 768) 到2的15次方-1( 32 ,767 )之間的所有正負整數。每個SMALLINT 類型的數據佔用2 個位元組的存儲空間,其中1 位表示整數值的正負號,其它15 位表示整數值的長度和大小。
二、浮點數據類型:浮點數據類型用於存儲十進制小數。浮點數值的數據在SQL Server 中採用上舍入(Round up 或稱為只入不舍)方式進行存儲。
1、REAL數據類型
REAL數據類型可精確到第7 位小數,其范圍為從-3.40E -38 到3.40E +38。 每個REAL類型的數據佔用4 個位元組的存儲空間。
2、FLOAT
FLOAT數據類型可精確到第15 位小數,其范圍為從-1.79E -308 到1.79E +308。 每個FLOAT 類型的數據佔用8 個位元組的存儲空間。 FLOAT數據類型可寫為FLOAT[ n ]的形式。n 指定FLOAT 數據的精度。n 為1到15 之間的整數值。
當n 取1 到7 時,實際上是定義了一個REAL 類型的數據,系統用4 個位元組存儲它;當n 取8 到15 時,系統認為其是FLOAT 類型,用8 個位元組存儲它。
三、二進制數據類型
1、BINARY
BINARY 數據類型用於存儲二進制數據。其定義形式為BINARY( n), n 表示數據的長度,取值為1 到8000 。在使用時必須指定BINARY 類型數據的大小,至少應為1 個位元組。BINARY 類型數據佔用n+4 個位元組的存儲空間。
在輸入數據時必須在數據前加上字元「0X」 作為二進制標識,如:要輸入「abc 」則應輸入「0xabc 」。若輸入的數據過長將會截掉其超出部分。若輸入的數據位數為奇數,則會在起始符號「0X 」後添加一個0,如上述的「0xabc 」會被系統自動變為「0x0abc」。
2、VARBINARY
VARBINARY數據類型的定義形式為VARBINARY(n)。 它與BINARY 類型相似,n 的取值也為1 到8000, 若輸入的數據過長,將會截掉其超出部分。
不同的是VARBINARY數據類型具有變動長度的特性,因為VARBINARY數據類型的存儲長度為實際數值長度+4個位元組。當BINARY數據類型允許NULL 值時,將被視為VARBINARY數據類型。
四、邏輯數據類型
1、BIT:BIT數據類型佔用1 個位元組的存儲空間,其值為0 或1 。如果輸入0 或1 以外的值,將被視為1。 BIT 類型不能定義為NULL 值(所謂NULL 值是指空值或無意義的值)。
五、字元數據類型:字元數據類型是使用最多的數據類型。它可以用來存儲各種字母、數字元號、特殊符號。一般情況下,使用字元類型數據時須在其前後加上單引號』或雙引號」 。
1、CHAR
CHAR 數據類型的定義形式為CHAR[ (n) ]。 以CHAR 類型存儲的每個字元和符號佔一個位元組的存儲空間。n 表示所有字元所佔的存儲空間,n 的取值為1 到8000, 即可容納8000 個ANSI 字元。
若不指定n 值,則系統默認值為1。 若輸入數據的字元數小於n,則系統自動在其後添加空格來填滿設定好的空間。若輸入的數據過長,將會截掉其超出部分。
(3)資料庫存儲數據類型擴展閱讀:
SQL包括了所有對資料庫的操作,主要是由4個部分組成:
1、數據定義:這一部分又稱為「SQL DDL」,定義資料庫的邏輯結構,包括定義資料庫、基本表、視圖和索引4部分。
2、數據操縱:這一部分又稱為「SQL DML」,其中包括數據查詢和數據更新兩大類操作,其中數據更新又包括插入、刪除和更新三種操作。
3、數據控制:對用戶訪問數據的控制有基本表和視圖的授權、完整性規則的描述,事務控制語句等。
4、嵌入式SQL語言的使用規定:規定SQL語句在宿主語言的程序中使用的規則。
『肆』 資料庫中所有的數據類型
SQL 用於各種資料庫的數據類型:
一、MySQL 數據類型:
在 MySQL 中,有三種主要的類型:Text(文本)、Number(數字)和 Date/Time(日期/時間)類型。
1、Text 類型。
『伍』 資料庫中數據類型有哪些
Character 數據類型
Character 數據類型用來存儲字母數字型數據。當你在oracle 中定義一個character 數據時,通常需要制定欄位的長度,它是該欄位的最大長度。ORACLE提供以下幾種character 數據類型:
CHAR() CHAR數據類型是一種有固定長度和最大長度的字元串。存儲在數據類型為CHAR欄位中的數據將以空格的形式補到最大長度。長度定義在1——2000位元組之間。
當你創建一個CHAR型欄位,資料庫將保證在這個欄位中的所有數據是定義長度,如果某個數據比定義長度短,那麼將用空格在數據的右邊補到定義長度。如果長度大於定義長度將會觸發錯誤信息。
VARCHAR() varchar型數據是varchar2型數據的快照。
VARCHAR2() varchar2數據喚巧類型是一種可變長度的、有最大長度的字母數字型數據。Varchar2類型的欄位長度可以達到4000位元組,Varchar2類型的變數長度可以達到32676位元組。
一個空的varchar2(2000)欄位和一個空的varchar2(2)欄位所佔用的空間是一樣的。
NCHAR() 和 NVARCHAR2() NCHAR() 和 NVARCHAR2()數據類型分別與CHAR() 和 VARCHAR2()類型是相同的,只不過它們用來存儲NLS(National Language Support)數據。
LONG LONG 數據類型是一個遺留下來的而且在將來不會被支持的數據類型。它將被LOB(Large Object)數據類型所代替。
比較規則 Varchar2和char數據類型和差鍵根據尾部的空格有不同的比較規則。對Char型數據,尾部的空格將被忽略掉,對於Varchar2型數據尾部帶空格的數據排序比沒有空慶宴格的要大些。比如:
Char 型數據: 『YO』=『YO』
Varchar2型數據:『YO』<』YO』
Numberic 數據類型
Numberic 數據類型用來存儲負的和正的整數、分數和浮點型數據,范圍在-1*10-103 和9.99999*10125之間,有38位的精確度。標識一個數據超出這個范圍時就會出錯。
Number(
) Number數據類型存儲一個有p位精確度的s位等級的數據。
DATE 數據類型
DATE 數據類型用來存儲日期和時間格式的數據。這種格式可以轉換為其他格式的數據去瀏覽,而且它有專門的函數和屬性用來控制和計算。以下的幾種信息都包含在DATE數據類型中:
Century
Year
Month
Day
Hour
Minute
Second
LOB 數據類型
LOB(Large Object) 數據類型存儲非結構化數據,比如二進制文件,圖形文件,或其他外部文件。LOB 可以存儲到4G位元組大小。數據可以存儲到資料庫中也可以存儲到外部數據文件中。LOB數據的控制通過DBMS_LOB 包實現。BLOB, NCLOB, 和CLOB 數據可以存儲到不同的表空間中,BFILE存儲在伺服器上的外部文件中。LOB數據類型有以下幾種:
BLOB: 二進制數據
CLOB: 字元型數據
BFILE: 二進制文件
其他數據類型
ROWID ROWID 數據類型是ORACLE數據表中的一個偽列,它是數據表中每行數據內在的唯一的標識。
『陸』 mysql有哪些數據類型
一.數值類型
Mysql支持所有標准SQL中的數值類型,其中包括嚴格數據類型(INTEGER,SMALLINT,DECIMAL,NUMBERIC),以及近似數值數據類型(FLOAT,REAL,DOUBLE PRESISION),並在此基礎上進行擴展。
擴展後增加了TINYINT,MEDIUMINT,BIGINT這3種長度不同的整形,並增加了BIT類型,用來存放位數據。
整數類型 位元組 范圍(有符號) 范圍(無符號) 用途
TINYINT 1位元組 (-128,127) (0,255) 小整數值
SMALLINT 2位元組 (-32 768,32 767) (0,65 535) 大整數值
MEDIUMINT 3位元組 (-8 388 608,8 388 607) (0,16 777 215) 大整數值
INT或INTEGER 4位元組 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整數值
BIGINT 8位元組 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 極大整數值
FLOAT 4位元組 (-3.402 823 466 E+38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 單精度浮點數值
DOUBLE 8位元組 (1.797 693 134 862 315 7 E+308,2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 雙精度浮點數值
DECIMAL 對DECIMAL(M,D) ,如果M>D,為M+2否則為D+2 依賴於M和D的值 依賴於M和D的值 小數值
INT 類型:
在 MySQL 中支持的 5 個主要整數類型是 TINYINT,SMALLINT,MEDIUMINT,INT 和 BIGINT。這些類型在很大程度上是相同的,只有它們存儲的值的大小是不相同的。
MySQL 以一個可選的顯示寬度指示器的形式對 SQL 標准進行擴展,這樣當從資料庫檢索一個值時,可以把這個值加長到指定的長度。例如,指定一個欄位的類型為 INT(6),
就可以保證所包含數字少於 6 個的值從資料庫中檢索出來時能夠自動地用空格填充。需要注意的是,使用一個寬度指示器不會影響欄位的大小和它可以存儲的值的范圍。
萬一我們需要對一個欄位存儲一個超出許可范圍的數字,MySQL 會根據允許范圍最接近它的一端截短後再進行存儲。還有一個比較特別的地方是,
MySQL 會在不合規定的值插入表前自動修改為 0。
UNSIGNED 修飾符規定欄位只保存正值。因為不需要保存數字的正、負符號,可以在儲時節約一個「位」的空間。從而增大這個欄位可以存儲的值的范圍。
ZEROFILL 修飾符規定 0(不是空格)可以用來真補輸出的值。使用這個修飾符可以阻止 MySQL 資料庫存儲負值。
FLOAT、DOUBLE 和 DECIMAL 類型
MySQL 支持的三個浮點類型是 FLOAT、DOUBLE 和 DECIMAL 類型。FLOAT 數值類型用於表示單精度浮點數值,而 DOUBLE 數值類型用於表示雙精度浮點數值。
與整數一樣,這些類型也帶有附加參數:一個顯示寬度指示器和一個小數點指示器。比如語句 FLOAT(7,3) 規定顯示的值不會超過 7 位數字,小數點後面帶有 3 位數字。
對於小數點後面的位數超過允許范圍的值,MySQL 會自動將它四捨五入為最接近它的值,再插入它。
DECIMAL 數據類型用於精度要求非常高的計算中,這種類型允許指定數值的精度和計數方法作為選擇參數。精度在這里指為這個值保存的有效數字的總個數,
而計數方法表示小數點後數字的位數。比如語句 DECIMAL(7,3) 規定了存儲的值不會超過 7 位數字,並且小數點後不超過 3 位。
忽略 DECIMAL 數據類型的精度和計數方法修飾符將會使 MySQL 資料庫把所有標識為這個數據類型的欄位精度設置為 10,計算方法設置為 0。
UNSIGNED 和 ZEROFILL 修飾符也可以被 FLOAT、DOUBLE 和 DECIMAL 數據類型使用。並且效果與 INT 數據類型相同。
二.字元串類型
MySQL 提供了8個基本的字元串類型,分別:CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM 各SET等多種字元串類型。
可以存儲的范圍從簡單的一個字元到巨大的文本塊或二進制字元串數據。
字元串類型 位元組大小 描述及存儲需求
CHAR 0-255位元組 定長字元串
VARCHAR 0-255位元組 變長字元串
TINYBLOB 0-255位元組 不超過 255 個字元的二進制字元串
TINYTEXT 0-255位元組 短文本字元串
BLOB 0-65535位元組 二進制形式的長文本數據
TEXT 0-65535位元組 長文本數據
MEDIUMBLOB 0-16 777 215位元組 二進制形式的中等長度文本數據
MEDIUMTEXT 0-16 777 215位元組 中等長度文本數據
LOGNGBLOB 0-4 294 967 295位元組 二進制形式的極大文本數據
LONGTEXT 0-4 294 967 295位元組 極大文本數據
VARBINARY(M) 允許長度0-M個位元組的定長位元組符串,值的長度+1個位元組
BINARY(M) M 允許長度0-M個位元組的定長位元組符串
CHAR 和 VARCHAR 類型
CHAR 類型用於定長字元串,並且必須在圓括弧內用一個大小修飾符來定義。這個大小修飾符的范圍從 0-255。比指定長度大的值將被截短,而比指定長度小的值將會用空格作填補。
CHAR 類型可以使用 BINARY 修飾符。當用於比較運算時,這個修飾符使 CHAR 以二進制方式參於運算,而不是以傳統的區分大小寫的方式。
CHAR 類型的一個變體是 VARCHAR 類型。它是一種可變長度的字元串類型,並且也必須帶有一個范圍在 0-255 之間的指示器。CHAR 和 VARCHGAR 不同之處在於 MYSQL 資料庫處理
這個指示器的方式:CHAR 把這個大小視為值的大小,不長度不足的情況下就用空格補足。而 VARCHAR 類型把它視為最大值並且只使用存儲字元串實際需要的長度
(增加一個額外位元組來存儲字元串本身的長度)來存儲值。所以短於指示器長度的 VARCHAR 類型不會被空格填補,但長於指示器的值仍然會被截短。
因為 VARCHAR 類型可以根據實際內容動態改變存儲值的長度,所以在不能確定欄位需要多少字元時使用 VARCHAR 類型可以大大地節約磁碟空間、提高存儲效率。
VARCHAR 類型在使用 BINARY 修飾符時與 CHAR 類型完全相同。
TEXT 和 BLOB 類型
對於欄位長度要求超過 255 個的情況下,MySQL 提供了 TEXT 和 BLOB 兩種類型。根據存儲數據的大小,它們都有不同的子類型。這些大型的數據用於存儲文本塊或圖像、
聲音文件等二進制數據類型。
TEXT 和 BLOB 類型在分類和比較上存在區別。BLOB 類型區分大小寫,而 TEXT 不區分大小寫。大小修飾符不用於各種 BLOB 和 TEXT 子類型。
比指定類型支持的最大范圍大的值將被自動截短。
三.日期和時間類型
在處理日期和時間類型的值時,MySQL 帶有 5 個不同的數據類型可供選擇。它們可以被分成簡單的日期、時間類型,和混合日期、時間類型。
根據要求的精度,子類型在每個分類型中都可以使用,並且 MySQL 帶有內置功能可以把多樣化的輸入格式變為一個標准格式。
類型 大小(位元組) 范圍 格式 用途
DATE 4 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 時間值或持續時間
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和時間值
TIMESTAMP 4 1970-01-01 00:00:00/2037 年某時 YYYYMMDD HHMMSS 混合日期和時間值,時間戳
DATE、TIME 和 TEAR 類型
MySQL 用 DATE 和 TEAR 類型存儲簡單的日期值,使用 TIME 類型存儲時間值。這些類型可以描述為字元串或不帶分隔符的整數序列。如果描述為字元串,
DATE 類型的值應該使用連字型大小作為分隔符分開,而 TIME 類型的值應該使用冒號作為分隔符分開。
需要注意的是,沒有冒號分隔符的 TIME 類型值,將會被 MySQL 理解為持續的時間,而不是時間戳。
MySQL 還對日期的年份中的兩個數字的值,或是 SQL 語句中為 TEAR 類型輸入的兩個數字進行最大限度的通譯。因為所有 TEAR 類型的值必須用 4 個數字存儲。
MySQL 試圖將 2 個數字的年份轉換為 4 個數字的值。把在 00-69 范圍內的值轉換到 2000-2069 范圍內。把 70-99 范圍內的值轉換到 1970-1979 之內。
如果 MySQL 自動轉換後的值並不符合我們的需要,請輸入 4 個數字表示的年份。
DATEYIME 和 TIMESTAMP 類型
除了日期和時間數據類型,MySQL 還支持 DATEYIME 和 TIMESTAMP 這兩種混合類型。它們可以把日期和時間作為單個的值進行存儲。
這兩種類型通常用於自動存儲包含當前日期和時間的時間戳,並可在需要執行大量資料庫事務和需要建立一個調試和審查用途的審計跟蹤的應用程序中發揮良好作用。
如果我們對 TIMESTAMP 類型的欄位沒有明確賦值,或是被賦與了 null 值。MySQL 會自動使用系統當前的日期和時間來填充它。
復合類型
MySQL 還支持兩種復合數據類型 ENUM 和 SET,它們擴展了 SQL 規范。雖然這些類型在技術上是字元串類型,但是可以被視為不同的數據類型。
一個 ENUM 類型只允許從一個集合中取得一個值;而 SET 類型允許從一個集合中取得任意多個值。
ENUM 類型
ENUM 類型因為只允許在集合中取得一個值,有點類似於單選項。在處理相互排拆的數據時容易讓人理解,比如人類的性別。ENUM 類型欄位可以從集合中取得一個值或使用 null 值,
除此之外的輸入將會使 MySQL 在這個欄位中插入一個空字元串。另外如果插入值的大小寫與集合中值的大小寫不匹配,MySQL 會自動使用插入值的大小寫轉換成與集合中大小寫一致的值。
ENUM 類型在系統內部可以存儲為數字,並且從 1 開始用數字做索引。一個 ENUM 類型最多可以包含 65536 個元素,其中一個元素被 MySQL 保留,用來存儲錯誤信息,
這個錯誤值用索引 0 或者一個空字元串表示。
MySQL 認為 ENUM 類型集合中出現的值是合法輸入,除此之外其它任何輸入都將失敗。這說明通過搜索包含空字元串或對應數字索引為 0 的行就可以很容易地找到錯誤記錄的位置。
SET 類型
SET 類型與 ENUM 類型相似但不相同。SET 類型可以從預定義的集合中取得任意數量的值。並且與 ENUM 類型相同的是任何試圖在 SET 類型欄位中插入非預定義的值都會使
MySQL 插入一個空字元串。如果插入一個即有合法的元素又有非法的元素的記錄,MySQL 將會保留合法的元素,除去非法的元素。
一個 SET 類型最多可以包含 64 項元素。在 SET 元素中值被存儲為一個分離的「位」序列,這些「位」表示與它相對應的元素。「位」是創建有序元素集合的一種簡單而有效的方式。
並且它還去除了重復的元素,所以 SET 類型中不可能包含兩個相同的元素。
希望從 SET 類型欄位中找出非法的記錄只需查找包含空字元串或二進制值為 0 的行。
通過對每種數據類型的用途,物理存儲,表示範圍等有一個概要的了解。這樣在面對具體應用時,就可以根據相應的特來來選擇合適的數據類型,使得我們能夠爭取在滿足應用的基礎上,
用較小的存儲代價換來較高的資料庫性能。