學習筆記1:數據庫類型(SQL與MySQL的區別)
瀏覽量:3938
- SQL Server 數據類型
Character 字符串:
數據類型 |
描述 |
存儲 |
char(n) |
固定長度的字符串。最多8,000 個字符。 |
n |
varchar(n) |
可變長度的字符串。最多8,000 個字符。 |
|
varchar(max) |
可變長度的字符串。最多1,073,741,824 個字符。 |
|
text |
可變長度的字符串。最多2GB 字符數據。 |
Unicode 字符串:
數據類型 |
描述 |
存儲 |
nchar(n) |
固定長度的Unicode 數據。最多4,000 個字符。 |
|
nvarchar(n) |
可變長度的Unicode 數據。最多4,000 個字符。 |
|
nvarchar(max) |
可變長度的Unicode 數據。最多536,870,912 個字符。 |
|
ntext |
可變長度的Unicode 數據。最多2GB 字符數據。 |
Number 類型:
數據類型 |
描述 |
存儲 |
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 字節 |
Date 類型:
數據類型 |
描述 |
存儲 |
datetime |
從1753 年1 月1 日到9999 年12 月31 日,精度為3.33 毫秒。 |
8 bytes |
datetime2 |
從1753 年1 月1 日到9999 年12 月31 日,精度為100 納秒。 |
6-8 bytes |
smalldatetime |
從1900 年1 月1 日到2079 年6 月6 日,精度為1 分鐘。 |
4 bytes |
date |
僅存儲日期。從0001 年1 月1 日到9999 年12 月31 日。 |
3 bytes |
time |
僅存儲時間。精度為100 納秒。 |
3-5 bytes |
datetimeoffset |
與datetime2 相同,外加時區偏移。 |
8-10 bytes |
timestamp |
存儲唯一的數字,每當創建或修改某行時,該數字會更新。timestamp 基于內部時鐘,不對應真實時間。每個表只能有一個timestamp 變量。 |
其他數據類型:
數據類型 |
描述 |
sql_variant |
存儲最多8,000 字節不同數據類型的數據,除了text、ntext 以及timestamp。 |
uniqueidentifier |
存儲全局標識符(GUID)。 |
xml |
存儲XML 格式化數據。最多2GB。 |
cursor |
存儲對用于數據庫操作的指針的引用。 |
table |
存儲結果集,供稍后處理。 |
MySQL 數據類型
在MySQL 中,有三種主要的類型:文本、數字和日期/時間類型。
Text 類型:
數據類型 |
描述 |
CHAR(size) |
保存固定長度的字符串(可包含字母、數字以及特殊字符)。在括號中指定字符串的長度。最多255 個字符。 |
VARCHAR(size) |
保存可變長度的字符串(可包含字母、數字以及特殊字符)。在括號中指定字符串的最大長度。最多255 個字符。 注釋:如果值的長度大于255,則被轉換為TEXT 類型。 |
TINYTEXT |
存放最大長度為255 個字符的字符串。 |
TEXT |
存放最大長度為65,535 個字符的字符串。 |
BLOB |
用于BLOBs (Binary Large OBjects)。存放最多65,535 字節的數據。 |
MEDIUMTEXT |
存放最大長度為16,777,215 個字符的字符串。 |
MEDIUMBLOB |
用于BLOBs (Binary Large OBjects)。存放最多16,777,215 字節的數據。 |
LONGTEXT |
存放最大長度為4,294,967,295 個字符的字符串。 |
LONGBLOB |
用于BLOBs (Binary Large OBjects)。存放最多4,294,967,295 字節的數據。 |
ENUM(x,y,z,etc.) |
允許你輸入可能值的列表。可以在ENUM 列表中列出最大65535 個值。如果列表中不存在插入的值,則插入空值。 注釋:這些值是按照你輸入的順序存儲的。 可以按照此格式輸入可能的值:ENUM('X','Y','Z') |
SET |
與ENUM 類似,SET 最多只能包含64 個列表項,不過SET 可存儲一個以上的值。 |
Number 類型:
數據類型 |
描述 |
TINYINT(size) |
-128 到127 常規。0 到255 無符號*。在括號中規定最大位數。 |
SMALLINT(size) |
-32768 到32767 常規。0 到65535 無符號*。在括號中規定最大位數。 |
MEDIUMINT(size) |
-8388608 到8388607 普通。0 to 16777215 無符號*。在括號中規定最大位數。 |
INT(size) |
-2147483648 到2147483647 常規。0 到4294967295 無符號*。在括號中規定最大位數。 |
BIGINT(size) |
-9223372036854775808 到9223372036854775807 常規。0 到18446744073709551615 無符號*。在括號中規定最大位數。 |
FLOAT(size,d) |
帶有浮動小數點的小數字。在括號中規定最大位數。在d 參數中規定小數點右側的最大位數。 |
DOUBLE(size,d) |
帶有浮動小數點的大數字。在括號中規定最大位數。在d 參數中規定小數點右側的最大位數。 |
DECIMAL(size,d) |
作為字符串存儲的DOUBLE 類型,允許固定的小數點。 |
* 這些整數類型擁有額外的選項UNSIGNED。通常,整數可以是負數或正數。如果添加UNSIGNED 屬性,那么范圍將從0 開始,而不是某個負數。
Date 類型:
數據類型 |
描述 |
DATE() |
日期。格式:YYYY-MM-DD 注釋:支持的范圍是從'1000-01-01' 到'9999-12-31' |
DATETIME() |
*日期和時間的組合。格式:YYYY-MM-DD HH:MM:SS 注釋:支持的范圍是從'1000-01-01 00:00:00' 到'9999-12-31 23:59:59' |
TIMESTAMP() |
*時間戳。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 |
TIME() |
時間。格式:HH:MM:SS注釋:支持的范圍是從'-838:59:59' 到'838:59:59' |
YEAR() |
2 位或4 位格式的年。 注釋:4 位格式所允許的值:1901 到2155。2 位格式所允許的值:70 到69,表示從1970 到2069。 |
* 即便DATETIME 和TIMESTAMP 返回相同的格式,它們的工作方式很不同。在INSERT 或UPDATE 查詢中,TIMESTAMP 自動把自身設置為當前的日期和時間。TIMESTAMP 也接受不同的格式,比如YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或YYMMDD。
以上表格中,紅色的是今天主要用到的數據類型。
上一篇:學習筆記2常用正則表達式