mysql數據庫text是什么意思
mysql中text,longtext,mediumtext字段類型的意思,以及區別
MySQL支持大量的列類型,它可以被分為3類:數字類型、日期和時間類型以及字符串(字符)類型。本節首先給出可用類型的一個概述,并且總結每個列類型的存儲需求,然后提供每個類中的類型性質的更詳細的描述。概述有意簡化,更詳細的說明應該考慮到有關特定列類型的附加信息,例如你能為其指定值的允許格式。
由MySQL支持的列類型列在下面。下列代碼字母用于描述中:
M 指出最大的顯示尺寸。最大的合法的顯示尺寸是 255 。
D 適用于浮點類型并且指出跟隨在十進制小數點后的數碼的數量。最大可能的值是30,但是應該不大于M-2。
方括號(“[”和“]”)指出可選的類型修飾符的部分。
注意,如果你指定一個了為ZEROFILL,MySQL將為該列自動地增加UNSIGNED屬性。
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
一個很小的整數。有符號的范圍是-128到127,無符號的范圍是0到255。
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
一個小整數。有符號的范圍是-32768到32767,無符號的范圍是0到65535。
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
一個中等大小整數。有符號的范圍是-8388608到8388607,無符號的范圍是0到16777215。
INT[(M)] [UNSIGNED] [ZEROFILL]
一個正常大小整數。有符號的范圍是-2147483648到2147483647,無符號的范圍是0到4294967295。
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
這是INT的一個同義詞。
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
一個大整數。有符號的范圍是-9223372036854775808到9223372036854775807,無符號的范圍是0到
18446744073709551615。注意,所有算術運算用有符號的BIGINT或DOUBLE值完成,因此你不應該使用大于9223372036854775807(63位)的有符號大整數,除了位函數!注意,當兩個參數是INTEGER值時,-、+和*將使用BIGINT運算!這意味著如果你乘2個大整數(或來自于返回整數的函數),如果結果大于9223372036854775807,你可以得到意外的結果。一個浮點數字,不能是無符號的,對一個單精度浮點數,其精度可以是<=24,對一個雙精度浮點數,是在25 和53之間,這些類型如FLOAT和DOUBLE類型馬上在下面描述。FLOAT(X)有對應的FLOAT和DOUBLE相同的范圍,但是顯示尺寸和小數位數是未定義的。在MySQL3.23中,這是一個真正的浮點值。在更早的MySQL版本中,FLOAT(precision)總是有2位小數。該句法為了ODBC兼容性而提供。
FLOAT[(M,D)] [ZEROFILL]
一個小(單精密)浮點數字。不能無符號。允許的值是-3.402823466E+38到-1.175494351E-38,0 和1.175494351E-38到3.402823466E+38。M是顯示寬度而D是小數的位數。沒有參數的FLOAT或有<24 的一個參數表示一個單精密浮點數字。
DOUBLE[(M,D)] [ZEROFILL]
一個正常大小(雙精密)浮點數字。不能無符號。允許的值是-1.7976931348623157E+308到-2.2250738585072014E-308、 0和2.2250738585072014E-308到1.7976931348623157E+308。M是顯示寬度而D是小數位數。沒有一個參數的DOUBLE或FLOAT(X)(25 < = X < = 53)代表一個雙精密浮點數字。
DOUBLE PRECISION[(M,D)] [ZEROFILL]
REAL[(M,D)] [ZEROFILL]
這些是DOUBLE同義詞。
DECIMAL[(M[,D])] [ZEROFILL]
一個未壓縮(unpack)的浮點數字。不能無符號。行為如同一個CHAR列:“未壓縮”意味著數字作為一個字符串被存儲,值的每一位使用一個字符。小數點,并且對于負數,“-”符號不在M中計算。如果D是0,值將沒有小數點或小數部分。DECIMAL值的最大范圍與DOUBLE相同,但是對一個給定的DECIMAL列,實際的范圍可以通過M和D的選擇被限制。如果D被省略,它被設置為0。如果M被省掉,它被設置為10。注意,在MySQL3.22里,M參數包括符號和小數點。
NUMERIC(M,D) [ZEROFILL]
這是DECIMAL的一個同義詞。
DATE
一個日期。支持的范圍是'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式來顯示DATE值,但是允許你使用字符串或數字把值賦給DATE列。
DATETIME
一個日期和時間組合。支持的范圍是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL以'YYYY-MM-DD HH:MM:SS'格式來顯示DATETIME值,但是允許你使用字符串或數字把值賦給DATETIME的列。
TIMESTAMP[(M)]
一個時間戳記。范圍是'1970-01-01 00:00:00'到2037年的某時。MySQL以YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或YYMMDD格式來顯示TIMESTAMP值,取決于是否M是14(或省略)、12、8或6,但是允許你使用字符串或數字把值賦給TIMESTAMP列。一個TIMESTAMP列對于記錄一個INSERT或UPDATE操作的日期和時間是有用的,因為如果你不自己給它賦值,它自動地被設置為最近操作的日期和時間。你以可以通過賦給它一個NULL值設置它為當前的日期和時間。
TIME
一個時間。范圍是'-838:59:59'到'838:59:59'。MySQL以'HH:MM:SS'格式來顯示TIME值,但是允許你使用字符串或數字把值賦給TIME列。
YEAR[(2|4)]
一個2或4位數字格式的年(缺省是4位)。允許的值是1901到2155,和0000(4位年格式),如果你使用2位,1970-2069( 70-69)。MySQL以YYYY格式來顯示YEAR值,但是允許你把使用字符串或數字值賦給YEAR列。(YEAR類型在MySQL3.22中是新類型。)
CHAR(M) [BINARY]
一個定長字符串,當存儲時,總是是用空格填滿右邊到指定的長度。M的范圍是1 ~ 255個字符。當值被檢索時,空格尾部被刪除。CHAR值根據缺省字符集以大小寫不區分的方式排序和比較,除非給出BINARY關鍵詞。NATIONAL CHAR(短形式NCHAR)是ANSI SQL的方式來定義CHAR列應該使用缺省字符集。這是MySQL的缺省。CHAR是CHARACTER的一個縮寫。
[NATIONAL] VARCHAR(M) [BINARY]
一個變長字符串。注意:當值被存儲時,尾部的空格被刪除(這不同于ANSI SQL規范)。M的范圍是1 ~ 255個字符。 VARCHAR值根據缺省字符集以大小寫不區分的方式排序和比較,除非給出BINARY關鍵詞值。 VARCHAR是CHARACTER VARYING一個縮寫。
TINYBLOB
TINYTEXT
一個BLOB或TEXT列,最大長度為255(2^8-1)個字符。
BLOB
TEXT
一個BLOB或TEXT列,最大長度為65535(2^16-1)個字符。
MEDIUMBLOB
MEDIUMTEXT
一個BLOB或TEXT列,最大長度為16777215(2^24-1)個字符。
LONGBLOB
LONGTEXT
一個BLOB或TEXT列,最大長度為4294967295(2^32-1)個字符。
ENUM('value1','value2',...)
枚舉。一個僅有一個值的字符串對象,這個值式選自與值列表'value1'、'value2', ...,或NULL。一個ENUM最多能有65535不同的值。
SET('value1','value2',...)
一個集合。能有零個或多個值的一個字符串對象,其中每一個必須從值列表'value1', 'value2', ...選出。一個SET最多能有64個成員。
你好,mysql當中的text是文本的哦
SQL數據庫中數據類型ntext和text的區別
ntext和text一樣用來保存大量的文字數據,不過text用單字節保存數據 ,ntext固定用雙字節保存數據. ntext保存的是Uncode的字符 ,
ntext支持跨語言平臺。
ntext:
可變長度 Unicode 數據的最大長度為 230 -
1 (1,073,741,823) 個字符。存儲大小是所輸入字符個數的兩倍(以字節為單位)。ntext 在 SQL-92 中的同義詞是 national
text。
ntext中存數據是按雙字節存的 ,顯示不了NTEXT你換一下recordset打開方式就行了
text:
服務器代碼頁中的可變長度非 Unicode 數據的最大長度為 231-1 (2,147,483,647)
個字符。當服務器代碼頁使用雙字節字符時,存儲量仍是 2,147,483,647 字節。存儲大小可能小于 2,147,483,647 字節(取決于字符串)。
char、varchar、text和nchar、nvarchar、ntext的區別
1、CHAR。CHAR存儲定長數據很方便,CHAR字段上的索引效率級高,比如定義char(10),那么不論你存儲的數據是否達到了10個字節,都要占去10個字節的空間,不足的自動用空格填充。
2、VARCHAR。存儲變長數據,但存儲效率沒有CHAR高。如果一個字段可能的值是不固定長度的,我們只知道它不可能超過10個字符,把它定義為
VARCHAR(10)是最合算的。VARCHAR類型的實際長度是它的值的實際長度+1。為什么“+1”呢?這一個字節用于保存實際使用了多大的長度。從空間上考慮,用varchar合適;從效率上考慮,用char合適,關鍵是根據實際情況找到權衡點。
3、TEXT。text存儲可變長度的非Unicode數據,最大長度為2^31-1(2,147,483,647)個字符。
4、
NCHAR、NVARCHAR、NTEXT。這三種從名字上看比前面三種多了個“N”。它表示存儲的是Unicode數據類型的字符。我們知道字符中,英
文字符只需要一個字節存儲就足夠了,但漢字眾多,需要兩個字節存儲,英文與漢字同時存在時容易造成混亂,Unicode字符集就是為了解決字符集這種不兼
容的問題而產生的,它所有的字符都用兩個字節表示,即英文字符也是用兩個字節表示。nchar、nvarchar的長度是在1到4000之間。和
char、varchar比較起來,nchar、nvarchar則最多存儲4000個字符,不論是英文還是漢字;而char、varchar最多能存儲
8000個英文,4000個漢字。可以看出使用nchar、nvarchar數據類型時不用擔心輸入的字符是英文還是漢字,較為方便,但在存儲英文時數量
上有些損失。
對于什么時候用varchar和nvarchar沒有說一定的.
也就是說一個漢字既可以存在varchar中,也可以存在nvarchar中.
那么對于漢字或者Unicode
數據到底存在varchar和nvarchar有什么區別呢?
下面例子說明一下:一個漢字占varchar(2),只占nvarchar(1),
而字母只占varchar(1),那么在數據庫字段求長度的時候,用varchar你就不一定知道它確切的知道它到底有幾個字,如果用nvarchar,
那么漢字也是nvarchar(1),字母也是nvarchar(1),那么已經很明顯了.
區別2:varchar的檢索快于nvarchar,雖然是這樣但微軟下一個版本將統一nvarchar,聽說的
管理 ntext、text 和 image
數據
Microsoft? SQL Server? 的 ntext、text 和 image 數據類型在單個值中可以包含非常大的數據量(最大可
達
2 GB)。單個數據值通常比應用程序在一個步驟中能夠檢索的大;某些值可能還會大于客戶端的可用虛擬內存。因此,
在檢索這些值時,通常需要一些特殊的步驟。
如果 ntext、text 和 image 數據值不超過 Unicode
串、字符串或二進制串的長度(分別為 4,000 個字符、8,000 個字
符和 8,000 個字節),就可以在 SELECT、UPDATE 和
INSERT 語句中引用它們,其引用方式與較小的數據類型相同。例
如,包含短值的 ntext 列可以在 SELECT 語句的選擇列表中引用,這與
nvarchar 列的引用方式相同。引用時必須遵守一
些限制,例如不能在 WHERE 子句中直接引用 ntext、text 或 image
列。這些列可以作為返回其它數據類型(例如
ISNULL、SUBSTRING 或 PATINDEX)的某個函數的參數包含在 WHERE
子句中,也可以包含在 IS NULL、IS NOT NULL 或
LIKE 表達式中。
處理較大的數據值
但是,如果 ntext、text 和 image 數據值較大,則必須逐塊處理。Transact-SQL 和數據庫 API 均包含使應用程序可以
逐塊處理 ntext、text 和 image 數據的函數。
數據庫 API 按照一種通用的模式處理長 ntext、text 和
image 列:
若要讀取一個長列,應用程序只需在選擇列表中包含 ntext、text 或 image
列,并將該列綁定到一個程序變量,該變量
應足以容納適當的數據塊。然后,應用程序就可以執行該語句,并使用 API
函數或方法將數據逐塊檢索到綁定的變量中。
若要寫入一個長列,應用程序可使用參數標記 (?) 在相應位置代替
ntext、text 或 image 列中的值,以執行 INSERT
或 UPDATE 語句。參數標記(對 ADO
而言則為參數)被綁定到一個足以容納數據塊的程序變量上。應用程序進入循環,在
循環中先將下一組數據移到綁定的變量中,然后調用 API
函數或方法寫入數據塊。這一過程將反復進行,直到整個數據值
發送完畢。
使用 text in row
在 Microsoft
SQL Server 2000 中,用戶可以在表上啟用 text in row 選項,以使該表能夠在其數據行中存儲 text、
ntext 或
image 數據。
若要啟用該選項,請執行 sp_tableoption 存儲過程,將 text in row 指定為選項名并將 on
指定為選項值。BLOB(二進
制大對象:text、ntext 或 image 數據)行中可以存儲的默認最大大小為 256 字節,但是值的范圍可以從
24 到 7000。
若要指定默認值以外的最大大小,請指定該范圍內的整數作為選項值。
如果應用下列條件,則將
text、ntext 或 image 字符串存儲在數據行中:
啟用 text in row。
字符串的長度比 @OptionValue 所指定的限制短
數據行中有足夠的可用空間。
當 BLOB
字符串存儲在數據行中時,讀取和寫入 text、ntext 或 image 字符串可以與讀取或寫入字符串和二進制字符串
一樣快。SQL Server
不必訪問單獨的頁以讀取或寫入 BLOB 字符串。
如果 text、ntext 或 image
字符串比行中所指定的限制或可用空間大,則將指針存儲在該行中。在行中存儲 BLOB 字符
串的條件仍然適用,但是:數據行中必須有足夠的空間容納指針。
有關更多信息,請參見 sp_tableoption。
使用文本指針
如果未指定 text in
row 選項,text、ntext 或 image 字符串將存儲在數據行外;只有這些字符串的文本指針駐留在數
據行中。文本指針指向由內部指針生成的樹的根節點,而這些內部指針映射到實際存儲(text、ntext 或 image 數據的)
字符串段的頁。
SQL Server 2000 中的行文本指針與 SQL Server 早期版本中的文本指針不同。行文本指針的行為就象 BLOB
數據的文件
句柄;早期的文本指針功能則象 BLOB 數據的地址。因此,在使用行文本指針時,請記住下列特性:
重要 雖然游標中允許有行文本,但卻不允許有行文本指針。如果嘗試聲明包含行文本指針的游標,SQL Server 將返回錯
誤信息(8654、16、1、"A cursor plan could not be generated for the given statement
because it contains
textptr(inrow lob)."、1033)。
數字
對于每個數據庫,每個事務最多允許 1024 個活動行文本指針。
鎖定
當用戶獲取活動文本指針時,SQL Server
2000 在第一個用戶控制文本指針時鎖定數據行,并確保沒有其他用戶修改或刪
除該行。鎖在文本指針變為無效時被釋放。若要使文本指針無效,請使用
sp_invalidate_textptr。
當事務的隔離級別是未提交讀或者數據庫為"只讀"模式時,文本指針不能用于更新 BLOB
值。
當數據庫為"單用戶"模式時,SQL Server 2000 不鎖定數據行。
為舉例說明,給出下面的表:
CREATE TABLE t1 (c1 int, c2 text)
EXEC
sp_tableoption 't1', 'text in row', 'on'
INSERT t1 VALUES ('1', 'a')
下面的事務將會成功:
INSERT t1 VALUES ('1','This is text.')
SET
TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
GO
BEGIN TRAN
DECLARE @ptr varbinary(16)
SELECT @ptr = textptr(c2)
FROM t1
WHERE c1 = 1
READTEXT t1.c2 @ptr 0 5
COMMIT TRAN
GO
下面的事務將會失敗:
SET TRANSACTION ISOLATION LEVEL READ
UNCOMMITTED
GO
BEGIN TRAN
DECLARE @ptr varbinary(16)
SELECT @ptr = textptr(c2)
FROM t1
WHERE c1 = 1
WRITETEXT t1.c2
@ptr 'xx'
COMMIT TRAN
GO
持續時間
行文本指針僅在事務內有效。提交事務時,文本指針變為無效。
在某個事務內,當發生下列任一操作時,行文本指針可能無效:
會話結束。
刪除該事務中的數據行。(其它事務無法刪除數據行,因為該行包含鎖。)
文本指針所在的表的架構已更改。使文本指針無效的架構更改操作包括:創建或除去聚集索引,改變或除去表,截斷表,
通過
sp_tableoption 更改 text in row 選項,以及執行 sp_indexoption。
使用前面的示例,下列腳本在 SQL
Server 早期版本中有效,但在 SQL Server 2000 中將生成錯誤。
DECLARE @ptrval
varbinary(16)
PRINT 'get error here'
SELECT @ptrval =
TEXTPTR(c2)
FROM t1
WHERE c1 = 1
READTEXT t1.c2 @ptrval 0
1
在 SQL Server 2000 中,必須在事務內使用行文本指針:
BEGIN TRAN
DECLARE @ptrval varbinary(16)
SELECT @ptrval = TEXTPTR(c2)
FROM
t1
WHERE c1 = 1
READTEXT t1.c2 @ptrval 0 1
COMMIT
NULL 文本
可以在由 INSERT 生成的 NULL 文本上獲得行文本指針。而在以前,只有將 BLOB 更新為 NULL
后才能獲得文本指針。
例如,下列代碼在 SQL Server 7.0 中無效,但在 SQL Server 2000
中有效。
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
GO
INSERT INTO t1 VALUES (4, NULL)
BEGIN TRAN
DECLARE @ptrval
VARBINARY(16)
SELECT @ptrval = TEXTPTR(c2)
FROM t1
WHERE c1 =
4
WRITETEXT t1.c2 @ptrval 'x4'
COMMIT
在 SQL Server 7.0
中,必須執行下列操作:
INSERT INTO t1 VALUES (4, NULL)
UPDATE t1
SET c2 = NULL
WHERE c1 = 4
DECLARE @ptrval VARBINARY(16)
SELECT @ptrval = TEXTPTR(c2)
FROM t1
WHERE c1 = 4
WRITETEXT
t1.c2 @ptrval 'x4'
下表匯總差別。
差別 行文本指針 非行文本指針
數字
對于每個數據庫,每個事務最多允許 1024 個活動行文本指針。 無限制。
鎖定 將數據行一直 S 鎖定到指針變為無效為止。
當事務為"未提交讀"或數據庫為"單用戶"或"只讀"模式時不獲取鎖。
不鎖定數據行。
持續時間
事務或會話結束、刪除行或更改表的架構時變為無效。 刪除行時變為無效。
NULL 文本 插入 NULL 文本后可立即獲取。 只有更新后才能獲取。
通過數據庫 API 使用 ntext、text 和 image 數據
這一部分概述數據庫 API 處理
ntext、text 和 image 數據的方式:
ADO
ADO 可以將 ntext、text 或 image
列或參數映射為 Field 或 Parameter 對象。使用 GetChunk 方法逐塊檢索數據,使
用 AppendChunk
方法逐塊寫數據。有關更多信息,請參見管理 Long 數據類型。
OLE DB
OLE DB 使用
ISequentialStream 接口支持 ntext、text 和 image 數據類型。ISequentialStream::Read
方法逐塊讀取
長數據,ISequentialStream::Write 方法將長數據逐塊寫入數據庫。有關更多信息,請參見 BLOB 和 OLE
對象。
ODBC
ODBC 具有一種稱為"執行中的數據"的功能,可用于處理長數據的 ODBC
數據類型:SQL_WLONGVARCHAR (ntext)、
SQL_LONGVARCHAR (text) 和 SQL_LONGVARBINARY
(image)。這些數據類型被綁定到某個程序變量上。這樣一來,就可以調
用 SQLGetData 逐塊檢索長數據,調用 SQLPutData
逐塊發送長數據。有關更多信息,請參見管理 text 和 image 列。
DB-Library
DB-Library
應用程序也是將 ntext、text 和 image 列綁定到程序變量上。DB-Library 函數 dbtxtptr 用于獲取指向數
據庫中長列出現位置的指針,dbreadtext 則用來逐塊讀取長數據。dbwritetext、dbupdatetext 和 dbmoretext
之類的函
數用于逐塊寫入長數據。
說明 不支持使用 DB-Library 訪問行文本
mysql中text,longtext,mediumtext字段類型的意思,以及區別
另外mysql中mediumblob,longblob字段類型的意思和區別text字段類型是允許存放65535字節內的文字字符串字段類型。
longtext字段類型是允許存放2147483647字節內的文字字符串字段類型。
mediumtext字段類型是允許存放16777215字節內的文字字符串字段類型。
mysql中text,longtext,mediumtext字段類型區別為:字節限制不同、I/O不同、行遷移不同。
一、字節限制不同
1、text字段類型:text字段類型的字節限制為65535字節。
2、longtext字段類型:longtext字段類型的字節限制為2147483647字節。
3、mediumtext字段類型:mediumtext字段類型的字節限制為16777215字節。
二、I/O不同
1、text字段類型:text字段類型比longtext、mediumtext字段類型更不容易造成多余的I/O。
2、longtext字段類型:longtext字段類型比text、mediumtext字段類型更容易造成多余的I/O。
3、mediumtext字段類型:mediumtext字段類型比text字段類型更容易造成多余的I/O,比longtext字段類型更不容易造成多余的I/O。
三、行遷移不同
1、text字段類型:text字段類型比longtext、mediumtext字段類型更容易進行行遷移。
2、longtext字段類型:longtext字段類型比text、mediumtext字段類型更不容易進行行遷移。
3、mediumtext字段類型:mediumtext字段類型比text字段類型更不容易進行行遷移,比longtext字段類型更容易進行行遷移。
MySQL支持大量的列類型,它可以被分為3類:數字類型、日期和時間類型以及字符串(字符)類型。本節首先給出可用類型的一個概述,并且總結每個列類型的存儲需求,然后提供每個類中的類型性質的更詳細的描述。概述有意簡化,更詳細的說明應該考慮到有關特定列類型的附加信息,例如你能為其指定值的允許格式。
由MySQL支持的列類型列在下面。下列代碼字母用于描述中:
M
指出最大的顯示尺寸。最大的合法的顯示尺寸是 255 。
D
適用于浮點類型并且指出跟隨在十進制小數點后的數碼的數量。最大可能的值是30,但是應該不大于M-2。
方括號(“[”和“]”)指出可選的類型修飾符的部分。
注意,如果你指定一個了為ZEROFILL,MySQL將為該列自動地增加UNSIGNED屬性。
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
一個很小的整數。有符號的范圍是-128到127,無符號的范圍是0到255。
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
一個小整數。有符號的范圍是-32768到32767,無符號的范圍是0到65535。
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
一個中等大小整數。有符號的范圍是-8388608到8388607,無符號的范圍是0到16777215。
INT[(M)] [UNSIGNED] [ZEROFILL]
一個正常大小整數。有符號的范圍是-2147483648到2147483647,無符號的范圍是0到4294967295。
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
這是INT的一個同義詞。
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
一個大整數。有符號的范圍是-9223372036854775808到9223372036854775807,無符號的范圍是0到
18446744073709551615。注意,所有算術運算用有符號的BIGINT或DOUBLE值完成,因此你不應該使用大于9223372036854775807(63位)的有符號大整數,除了位函數!注意,當兩個參數是INTEGER值時,-、+和*將使用BIGINT運算!這意味著如果你乘2個大整數(或來自于返回整數的函數),如果結果大于9223372036854775807,你可以得到意外的結果。一個浮點數字,不能是無符號的,對一個單精度浮點數,其精度可以是<=24,對一個雙精度浮點數,是在25 和53之間,這些類型如FLOAT和DOUBLE類型馬上在下面描述。FLOAT(X)有對應的FLOAT和DOUBLE相同的范圍,但是顯示尺寸和小數位數是未定義的。在MySQL3.23中,這是一個真正的浮點值。在更早的MySQL版本中,FLOAT(precision)總是有2位小數。該句法為了ODBC兼容性而提供。
FLOAT[(M,D)] [ZEROFILL]
一個小(單精密)浮點數字。不能無符號。允許的值是-3.402823466E+38到-1.175494351E-38,0 和1.175494351E-38到3.402823466E+38。M是顯示寬度而D是小數的位數。沒有參數的FLOAT或有<24 的一個參數表示一個單精密浮點數字。
DOUBLE[(M,D)] [ZEROFILL]
一個正常大小(雙精密)浮點數字。不能無符號。允許的值是-1.7976931348623157E+308到-2.2250738585072014E-308、 0和2.2250738585072014E-308到1.7976931348623157E+308。M是顯示寬度而D是小數位數。沒有一個參數的DOUBLE或FLOAT(X)(25 < = X < = 53)代表一個雙精密浮點數字。
DOUBLE PRECISION[(M,D)] [ZEROFILL]
REAL[(M,D)] [ZEROFILL]
這些是DOUBLE同義詞。
DECIMAL[(M[,D])] [ZEROFILL]
一個未壓縮(unpack)的浮點數字。不能無符號。行為如同一個CHAR列:“未壓縮”意味著數字作為一個字符串被存儲,值的每一位使用一個字符。小數點,并且對于負數,“-”符號不在M中計算。如果D是0,值將沒有小數點或小數部分。DECIMAL值的最大范圍與DOUBLE相同,但是對一個給定的DECIMAL列,實際的范圍可以通過M和D的選擇被限制。如果D被省略,它被設置為0。如果M被省掉,它被設置為10。注意,在MySQL3.22里,M參數包括符號和小數點。
NUMERIC(M,D) [ZEROFILL]
這是DECIMAL的一個同義詞。
DATE
一個日期。支持的范圍是'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式來顯示DATE值,但是允許你使用字符串或數字把值賦給DATE列。
DATETIME
一個日期和時間組合。支持的范圍是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL以'YYYY-MM-DD HH:MM:SS'格式來顯示DATETIME值,但是允許你使用字符串或數字把值賦給DATETIME的列。
TIMESTAMP[(M)]
一個時間戳記。范圍是'1970-01-01 00:00:00'到2037年的某時。MySQL以YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或YYMMDD格式來顯示TIMESTAMP值,取決于是否M是14(或省略)、12、8或6,但是允許你使用字符串或數字把值賦給TIMESTAMP列。一個TIMESTAMP列對于記錄一個INSERT或UPDATE操作的日期和時間是有用的,因為如果你不自己給它賦值,它自動地被設置為最近操作的日期和時間。你以可以通過賦給它一個NULL值設置它為當前的日期和時間。
TIME
一個時間。范圍是'-838:59:59'到'838:59:59'。MySQL以'HH:MM:SS'格式來顯示TIME值,但是允許你使用字符串或數字把值賦給TIME列。
YEAR[(2|4)]
一個2或4位數字格式的年(缺省是4位)。允許的值是1901到2155,和0000(4位年格式),如果你使用2位,1970-2069( 70-69)。MySQL以YYYY格式來顯示YEAR值,但是允許你把使用字符串或數字值賦給YEAR列。(YEAR類型在MySQL3.22中是新類型。)
CHAR(M) [BINARY]
一個定長字符串,當存儲時,總是是用空格填滿右邊到指定的長度。M的范圍是1 ~ 255個字符。當值被檢索時,空格尾部被刪除。CHAR值根據缺省字符集以大小寫不區分的方式排序和比較,除非給出BINARY關鍵詞。NATIONAL CHAR(短形式NCHAR)是ANSI SQL的方式來定義CHAR列應該使用缺省字符集。這是MySQL的缺省。CHAR是CHARACTER的一個縮寫。
[NATIONAL] VARCHAR(M) [BINARY]
一個變長字符串。注意:當值被存儲時,尾部的空格被刪除(這不同于ANSI SQL規范)。M的范圍是1 ~ 255個字符。 VARCHAR值根據缺省字符集以大小寫不區分的方式排序和比較,除非給出BINARY關鍵詞值。 VARCHAR是CHARACTER VARYING一個縮寫。
TINYBLOB
TINYTEXT
一個BLOB或TEXT列,最大長度為255(2^8-1)個字符。
BLOB
TEXT
一個BLOB或TEXT列,最大長度為65535(2^16-1)個字符。
MEDIUMBLOB
MEDIUMTEXT
一個BLOB或TEXT列,最大長度為16777215(2^24-1)個字符。
LONGBLOB
LONGTEXT
一個BLOB或TEXT列,最大長度為4294967295(2^32-1)個字符。
ENUM('value1','value2',...)
枚舉。一個僅有一個值的字符串對象,這個值式選自與值列表'value1'、'value2', ...,或NULL。一個ENUM最多能有65535不同的值。
SET('value1','value2',...)
一個集合。能有零個或多個值的一個字符串對象,其中每一個必須從值列表'value1', 'value2', ...選出。一個SET最多能有64個成員。
SQL數據庫的數據類型有哪些,請詳細解釋一下
》SQL Server 中的數據類型歸納為下列類別:
精確數字
Unicode 字符串
近似數字
二進制字符串
日期回和時間
其他數據類型
字符串
》在答 SQL Server 中,根據其存儲特征,某些數據類型被指定為屬于下列各組:
大值數據類型:varchar(max)、nvarchar(max) 和
varbinary(max)
大型對象數據類型:text、ntext、image、varchar(max)、nvarchar(max)、varbinary(max)
和 xml
》精確數字
bit(位)
tinyint(1個字節)
smallint(2個字節,-32767~32767)
int(4個字節,-20億~20億)
bigint(8個字節)
numeric
decimal
smallmoney
money
》近似數字
float
real
》日期和時間
date
smalldatetime(精確到分鐘)
datetime
datetime2
time
datetimeoffset(時間差)
》字符串
char
varchar
text
》Unicode 字符串
nchar
nvarchar
ntext
》二進制字符串
binary
varbinary
image
MySQL數據類型
在 MySQL 中,有復三制種主要的類型:Text(文本)、Number(數字)和 Date/Time(日期/時間)類型。
話不多說,直接上圖。
Text 類型:
Number 類型:
-from shulanxt
Date 類型:
SQL中的數據類型漢語意思是什么?
bigint rnbinary rnbit rnchar rndatetime rndecimal rnfloat rnimage rnint rnmoney rnnchar rnntext rnnumeric rnnvarchar rnreal rnsmalldatetime rnsmallint rnsmallmoney rnsql_variant rntext rntimestamp rntinyint rnuniqueidentifier rnvarbinary rnvarchar都是來定義的
相關推薦:
電子合同糾紛解決(簽電子合同糾紛怎么解決)
現戶籍所在地怎么填寫(戶籍所在地怎么填寫)
超生新生兒如何上戶(超生如何給孩子上戶口)
行政處罰會留案底嗎(行政處罰決定書會留案底嗎)
公民如何保護生命健康權(法律如何保護我們的健康)