MySQL和SQL Server資料型別

2021-07-11 03:45:14 字數 4988 閱讀 1337

在 mysql 中,有三種主要的型別:文字、數字和日期/時間型別。

資料型別

描述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 可儲存乙個以上的值。

資料型別

描述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()

日期。格式: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。

資料型別

描述儲存

char(n)

固定長度的字串。最多 8,000 個字元。

nvarchar(n)

可變長度的字串。最多 8,000 個字元。

varchar(max)

可變長度的字串。最多 1,073,741,824 個字元。

text

可變長度的字串。最多 2gb 字元資料。

資料型別

描述儲存

nchar(n)

固定長度的 unicode 資料。最多 4,000 個字元。

nvarchar(n)

可變長度的 unicode 資料。最多 4,000 個字元。

nvarchar(max)

可變長度的 unicode 資料。最多 536,870,912 個字元。

ntext

可變長度的 unicode 資料。最多 2gb 字元資料。

資料型別

描述儲存

bit允許 0、1 或 null

binary(n)

固定長度的二進位制資料。最多 8,000 位元組。

varbinary(n)

可變長度的二進位制資料。最多 8,000 位元組。

varbinary(max)

可變長度的二進位制資料。最多 2gb 位元組。

image

可變長度的二進位制資料。最多 2gb。

資料型別

描述儲存

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 位元組

資料型別

描述儲存

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

儲存結果集,供稍後處理。

SQL Server 和MySQL的區別

sql server和mysql沒多大區別兩者資料庫都能夠在.net或j2ee下執行正常,同樣,都能夠利用raid。區別就是 有一些 控制 名字不一樣,但功能大都一樣。sql server mysql 商業資料庫,貴 不全是免費,但很便宜 只支援windows系統 支援windows和linux,u...

sql server 和mysql 建立索引

1.新增primary key 主鍵索引 alter table table name add primary key column 2.新增unique 唯一索引 alter table table name add unique column 3.新增index 普通索引 alter table...

mysql和sqlserver資料轉換

使用mysql migration toolkit,mysql官方自帶的把mssql轉換為mysql 一直下一步下一步,使用advances功能 1 jdbc jtds sqlserver localhost 1433 db cityinfo user sa password 654123 char...