選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

SQL 教程

SQL HOME SQL Intro SQL Syntax SQL Select SQL Select Distinct SQL Where SQL Order By SQL And SQL Or SQL Not SQL Insert Into SQL Null Values SQL Update SQL Delete SQL Select Top SQL Aggregate Functions SQL Min and Max SQL Count SQL Sum SQL Avg SQL Like SQL Wildcards SQL In SQL Between SQL Aliases SQL Joins SQL Inner Join SQL Left Join SQL Right Join SQL Full Join SQL Self Join SQL Union SQL Group By SQL Having SQL Exists SQL Any, All SQL Select Into SQL Insert Into Select SQL Case SQL Null Functions SQL Stored Procedures SQL Comments SQL Operators

SQL 資料庫

SQL Create DB SQL Drop DB SQL Backup DB SQL Create Table SQL Drop Table SQL Alter Table SQL Constraints SQL Not Null SQL Unique SQL Primary Key SQL Foreign Key SQL Check SQL Default SQL Index SQL Auto Increment SQL Dates SQL Views SQL Injection SQL Hosting SQL Data Types

SQL 參考

SQL 關鍵字 MySQL 函式 SQL Server 函式 MS Access 函式 SQL 快速參考

SQL 示例

SQL 示例 SQL 編輯器 SQL 測驗 SQL 練習 SQL Server SQL Bootcamp SQL 證書

SQL MySQL, SQL Server 和 MS Access 的資料型別


列的資料型別定義了該列可以包含的值:整數、字元、貨幣、日期和時間、二進位制等。


SQL 資料型別

資料庫表中的每一列都必須有一個名稱和一個數據型別。

SQL 開發人員在建立表時必須決定每列要儲存什麼型別的資料。資料型別是 SQL 理解每列中預期資料型別的指南,它還確定了 SQL 如何與儲存的資料進行互動。

注意:不同資料庫中的資料型別名稱可能不同。即使名稱相同,大小和其他細節也可能不同!務必查閱文件!


MySQL 資料型別 (版本 8.0)

在 MySQL 中,主要有三種資料型別:字串、數值以及日期和時間。

字串資料型別

資料型別 描述
CHAR(size) 固定長度字串(可包含字母、數字和特殊字元)。size 引數指定了字元列的長度,範圍從 0 到 255。預設值為 1。
VARCHAR(size) 可變長度字串(可包含字母、數字和特殊字元)。size 引數指定了最大字串長度(字元數),範圍從 0 到 65535。
BINARY(size) 與 CHAR() 相同,但儲存二進位制位元組字串。size 引數指定了位元組列的長度。預設值為 1。
VARBINARY(size) 與 VARCHAR() 相同,但儲存二進位制位元組字串。size 引數指定了最大位元組列的長度。
TINYBLOB 用於 BLOB(二進位制大物件)。最大長度:255 位元組。
TINYTEXT 儲存最大長度為 255 個字元的字串。
TEXT(size) 儲存最大長度為 65,535 位元組的字串。
BLOB(size) 用於 BLOB(二進位制大物件)。儲存最多 65,535 位元組的資料。
MEDIUMTEXT 儲存最大長度為 16,777,215 個字元的字串。
MEDIUMBLOB 用於 BLOB(二進位制大物件)。儲存最多 16,777,215 位元組的資料。
LONGTEXT 儲存最大長度為 4,294,967,295 個字元的字串。
LONGBLOB 用於 BLOB(二進位制大物件)。儲存最多 4,294,967,295 位元組的資料。
ENUM(val1, val2, val3, ...) 一個字串物件,只能包含一個值,該值從可能的列表中選擇。您可以在 ENUM 列表中最多列出 65535 個值。如果插入的值不在列表中,則會插入一個空值。值將按您輸入的順序排序。
SET(val1, val2, val3, ...) 一個字串物件,可以包含 0 個或多個值,這些值從可能的列表中選擇。您可以在 SET 列表中最多列出 64 個值。

數值資料型別

資料型別 描述
BIT(size) 位值型別。每個值的位數在size中指定。size引數可以包含 1 到 64 的值。size的預設值是 1。
TINYINT(size) 非常小的整數。有符號範圍是 -128 到 127。無符號範圍是 0 到 255。size引數指定了最大顯示寬度(即 255)。
BOOL 零被視為假,非零值被視為真。
BOOLEAN 等於 BOOL。
SMALLINT(size) 小的整數。有符號範圍是 -32768 到 32767。無符號範圍是 0 到 65535。size引數指定了最大顯示寬度(即 255)。
MEDIUMINT(size) 中等整數。有符號範圍是 -8388608 到 8388607。無符號範圍是 0 到 16777215。size引數指定了最大顯示寬度(即 255)。
INT(size) 中等整數。有符號範圍是 -2147483648 到 2147483647。無符號範圍是 0 到 4294967295。size引數指定了最大顯示寬度(即 255)。
INTEGER(size) 等於 INT(size)。
BIGINT(size) 大的整數。有符號範圍是 -9223372036854775808 到 9223372036854775807。無符號範圍是 0 到 18446744073709551615。size引數指定了最大顯示寬度(即 255)。
FLOAT(size, d) 浮點數。總位數在size中指定。小數點後的位數在d引數中指定。此語法在 MySQL 8.0.17 中已棄用,將在未來的 MySQL 版本中移除。
FLOAT(p) 浮點數。MySQL 使用p值來確定是將 FLOAT 還是 DOUBLE 用於結果資料型別。如果p的範圍是 0 到 24,則資料型別為 FLOAT()。如果p的範圍是 25 到 53,則資料型別為 DOUBLE()。
DOUBLE(size, d) 正常大小的浮點數。總位數在size中指定。小數點後的位數在d引數中指定。
DOUBLE PRECISION(size, d)  
DECIMAL(size, d) 精確的定點數。總位數在size中指定。小數點後的位數在d引數中指定。size的最大值為 65。d的最大值為 30。size的預設值為 10。d的預設值為 0。
DEC(size, d) 等於 DECIMAL(size,d)。

注意:所有數值資料型別都可以有一個額外的選項:UNSIGNED 或 ZEROFILL。如果您新增 UNSIGNED 選項,MySQL 會禁止該列出現負值。如果您新增 ZEROFILL 選項,MySQL 會自動為該列新增 UNSIGNED 屬性。

日期和時間資料型別

資料型別 描述
DATE 日期。格式:YYYY-MM-DD。支援的範圍從 '1000-01-01' 到 '9999-12-31'。
DATETIME(fsp) 日期和時間組合。格式:YYYY-MM-DD hh:mm:ss。支援的範圍從 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'。在列定義中新增 DEFAULT 和 ON UPDATE 以實現自動初始化和更新為當前日期和時間。
TIMESTAMP(fsp) 時間戳。TIMESTAMP 值儲存為自 Unix 紀元 ('1970-01-01 00:00:00' UTC) 以來的秒數。格式:YYYY-MM-DD hh:mm:ss。支援的範圍從 '1970-01-01 00:00:01' UTC 到 '2038-01-09 03:14:07' UTC。可以透過在列定義中使用 DEFAULT CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP 來指定自動初始化和更新為當前日期和時間。
TIME(fsp) 時間。格式:hh:mm:ss。支援的範圍從 '-838:59:59' 到 '838:59:59'。
YEAR 以四位數字格式表示的年份。四位數字格式允許的值:1901 到 2155,以及 0000。
MySQL 8.0 不支援兩位數字格式的年份。


SQL Server 資料型別

字串資料型別

資料型別 描述 最大尺寸 Storage
char(n) 固定寬度字元字串。 8,000 個字元 定義寬度
varchar(n) 可變寬度字元字串。 8,000 個字元 2 位元組 + 字元數
varchar(max) 可變寬度字元字串。 1,073,741,824 個字元 2 位元組 + 字元數
text 可變寬度字元字串。 2GB 文字資料 4 位元組 + 字元數
nchar 固定寬度 Unicode 字串。 4,000 個字元 定義寬度 x 2
nvarchar 可變寬度 Unicode 字串。 4,000 個字元  
nvarchar(max) 可變寬度 Unicode 字串。 536,870,912 個字元  
ntext 可變寬度 Unicode 字串。 2GB 文字資料  
binary(n) 固定寬度二進位制字串。 8,000 位元組  
varbinary 可變寬度二進位制字串。 8,000 位元組  
varbinary(max) 可變寬度二進位制字串。 2GB  
圖片 可變寬度二進位制字串。 2GB  

數值資料型別

資料型別 描述 Storage
bit 整數,可以是 0、1 或 NULL。  
tinyint 允許的整數範圍是 0 到 255。 1 位元組
smallint 允許的整數範圍是 -32,768 到 32,767。 2 位元組
int 允許的整數範圍是 -2,147,483,648 到 2,147,483,647。 4 位元組
bigint 允許的整數範圍是 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。 8 位元組
decimal(p,s) 固定精度和標度數字。

允許的數字範圍是 -10^38 +1 到 10^38 –1。

p 引數表示可以儲存的總位數(包括小數點左邊和右邊)。p 必須是 1 到 38 之間的一個值。預設為 18。

s 引數表示小數點右邊可以儲存的最大位數。s 必須是 0 到 p 之間的一個值。預設值為 0。

5-17 位元組
numeric(p,s) 固定精度和標度數字。

允許的數字範圍是 -10^38 +1 到 10^38 –1。

p 引數表示可以儲存的總位數(包括小數點左邊和右邊)。p 必須是 1 到 38 之間的一個值。預設為 18。

s 引數表示小數點右邊可以儲存的最大位數。s 必須是 0 到 p 之間的一個值。預設值為 0。

5-17 位元組
smallmoney 貨幣資料,範圍從 -214,748.3648 到 214,748.3647。 4 位元組
money 貨幣資料,範圍從 -922,337,203,685,477.5808 到 922,337,203,685,477.5807。 8 位元組
float(n) 浮點精度數字資料,範圍從 -1.79E + 308 到 1.79E + 308。

n 引數表示欄位應持有 4 或 8 位元組。float(24) 持有 4 位元組欄位,float(53) 持有 8 位元組欄位。n 的預設值為 53。

4 或 8 位元組
real 浮點精度數字資料,範圍從 -3.40E + 38 到 3.40E + 38。 4 位元組

日期和時間資料型別

資料型別 描述 Storage
datetime 從 1753 年 1 月 1 日到 9999 年 12 月 31 日,精度為 3.33 毫秒。 8 位元組
datetime2 從 0001 年 1 月 1 日到 9999 年 12 月 31 日,精度為 100 納秒。 6-8 位元組
smalldatetime 從 1900 年 1 月 1 日到 2079 年 6 月 6 日,精度為 1 分鐘。 4 位元組
date 僅儲存日期。範圍從 0001 年 1 月 1 日到 9999 年 12 月 31 日。 3 位元組
time 僅儲存時間,精度為 100 納秒。 3-5 位元組
datetimeoffset 與 datetime2 相同,但增加了時區偏移量。 8-10 位元組
timestamp 儲存一個唯一數字,每次建立或修改行時都會更新。timestamp 值基於內部時鐘,與實際時間無關。每個表只能有一個 timestamp 變數。  

其他資料型別

資料型別 描述
sql_variant 儲存最多 8,000 位元組的各種資料型別,除了 text、ntext 和 timestamp。
uniqueidentifier 儲存全域性唯一識別符號 (GUID)。
xml 儲存 XML 格式的資料。最大 2GB。
cursor 儲存用於資料庫操作的遊標引用。
table 儲存用於後續處理的結果集。

MS Access 資料型別

資料型別 描述 Storage
文字 用於文字或文字與數字的組合。最多 255 個字元。  
Memo Memo 用於儲存大量文字。最多儲存 65,536 個字元。注意:您不能對 memo 欄位進行排序。但是,它們是可搜尋的。  
Byte 允許的整數範圍是 0 到 255。 1 位元組
整數 允許的整數範圍是 -32,768 到 32,767。 2 位元組
Long 允許的整數範圍是 -2,147,483,648 到 2,147,483,647。 4 位元組
Single 單精度浮點數。可以處理大多數小數。 4 位元組
Double 雙精度浮點數。可以處理大多數小數。 8 位元組
Currency 用於貨幣。可以儲存最多 15 位整數美元,外加 4 位小數。提示:您可以選擇使用哪種貨幣。 8 位元組
AutoNumber AutoNumber 欄位會自動為每條記錄分配一個唯一的數字,通常從 1 開始。 4 位元組
Date/Time 用於日期和時間。 8 位元組
Yes/No 邏輯欄位可以顯示為 Yes/No、True/False 或 On/Off。在程式碼中,使用常量 True 和 False(分別等於 -1 和 0)。注意:Yes/No 欄位不允許 NULL 值。 1 位
Ole Object 可以儲存圖片、音訊、影片或其他 BLOB(二進位制大物件)。 最多 1GB
Hyperlink 包含指向其他檔案(包括網頁)的連結。  
Lookup Wizard 允許您輸入選項列表,然後可以從下拉列表中選擇。 4 位元組

×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援