Mysql基本內容之欄位型別詳情

2021-12-30 04:31:45 字數 3078 閱讀 3396

mysql中常用的資料型別有下面這些

整型各型別的空間的值的區別

引數所佔位元組

帶符號最小值

無符號最小值

帶符號最大值

無符號最大值 |

tinyint

1 -128

0 127

255

smallint

2 -32768

0 32767

622335

mediumint

3 -8388608

0 8388607

16777215

int4 -2147483648

0 2147483647

4294967295

bigint

8 -9223372036854775808

0 9223372036854775807

18446744073709551615

注意:最大值和系統有關係,如windows32位和64的最大值是不一樣的,windows和linux的最大值也是不一樣的;

使用形式:

//型別名【(長度)】 【unsigned】 【zerofill】

tinyint(2) unsigned

說明:1,長度:就是用來設定要「顯示」的長度位數(數字個數),

2,unsigned:就是用於設定該型別中的數字沒有符號(正負號),即沒有負數;

3,zerofill:就是「填充0」的意思,即如果乙個數字,沒有達到指定的長度,則系統就會用0填充到其左邊。

- 其中m表示「顯示長度」,其需與zerofill結合使用才有效,即不夠該長度的會自動左側補0,當然如果超出也不影響。

- unsigned表示「無符號數」,表示其中的數值是「非負」數字

- 如果設定了zerofill,則自動也就表示同時具備了unsigned修飾

- 如果設定了zerofill但沒有設定長度m,則其會預設將所有數的左邊補0到該型別的最大位數

浮點型:

單精度浮點型:float,其精度大約可以精確到6-7位;

雙精度浮點型:double,其精度大約可以精確到15位左右;

特點:浮點型的小數,其內部的二進位制形式,很可能是非精確的

定點型:

decimal,或使用dec。

形式://decimal(總精度,小數部分精度);

decimal(12,2)

說明:1,總精度,其實就是可以用於精確表達的位數,包括小數部分的位數和整數部分的位數;

2,總精度最大為65位,小數部分的精度(位數),最大為30位。

定長字串,表示設定的長度,其儲存的時候,就是該長度——不夠就會自動補空格填滿;

最大可設定為255,表示可儲存255個字元;

varchar型別:

變長字串,表示設定的長度,是可儲存的最大長度,實際儲存長度可以小於該長度;

該型別儲存的時候,還需要在字段內的最前面額外儲存該字段的實際長度;

最大可設定為65533,表示最大可儲存65533個字元;

因為考慮因素:一行的總的儲存空間限制是65535位元組,

但有考慮字元編碼的問題,又會出現:

如果儲存的是純英文本元,則實際最多可儲存65533個字元;

如果儲存的是純gbk的中文字元,則實際最多可儲存的是65533/2個字元;

如果儲存的是純utf8的中文字元,則實際最多可儲存的是65533/3個字元;

text型別:

它通常用於儲存「大文字」,因為其可儲存65535個位元組,並且,不受行儲存空間的限制;

enum型別:

用於儲存若干個「可選項之一」的一種字元型別。

通常,是在字段定義時,預先設定多個選項,而且是作為單選項,實際儲存資料的時候,就可以選擇其中乙個存入資料庫。

它適合於儲存在網頁中的「單選項」資料,比如:單選按鈕,下拉列表選項值等等;

形式:enum(『單選項1』, 『單選項2』, 『單選項3』, ....... ); //最多65535個。說明:

這些選項,在系統內部,實際對應的是如下這些數字值:1, 2, 3, 4, 5, 6, ….

set型別:

用於儲存若干個「多選項」的一種字元型別。

通常,是在字段定義時,預先設定多個選項,而且是作為多選項,實際儲存資料的時候,就可以選擇其中若干個選項值存入資料庫。

它適合於儲存在網頁中的「多選項」資料,比如:多選按鈕;

形式:set(『多選項1』, 『多選項2』, 『多選項3』, ....... ); //最多64個。說明:

這些選項,在系統內部,實際對應的是如下這些數字值:1, 2, 4, 8, 16, ….

date型別:

用於儲存(記錄)年月日這種時間的資料,其範圍可以為:』1000-01-01』到』9999-12-31』

time型別:

用於儲存(記錄)時分秒這種時間的資料,其範圍可以為:』-838:59:59』到』838:59:59』

datetime型別:

用於記錄年月日時分秒這種較為精確的時間資料,其範圍為:』1000-01-01 00:00:00』到』9999-12-31 23:59:59』

year型別:

用於記錄乙個年份資料,通常就是指年份數字,比如2018,1983,其有兩種形式:

使用乙個數字:

2位數字:1-99之間

4位數字:1901-2155之間

使用乙個字串:

2位字串:』00』到』99』

4位字串:』1901』到』2155』

timestamp型別:

用於記錄乙個「當前時間」的精確的時間戳——也就是某個時刻的對應整數值;

該整數值,表示,從2023年1月1日0時0分0秒開始算起到該時候所經歷的秒數;

而且,其有如下特徵:

該字段的值,會在乙個表的某行資料執行insert或update的時候,自動獲取該時刻的時間戳值;

注意:作為時間日期型別的資料,如果是在**中插入乙個具體的字面資料值,則需要用單引號引起來——跟字元型別一樣。

如果是存時間戳的話可以直接用int型別,查詢的時候效率更高

Mysql基本內容之欄位型別

mysql中常用的資料型別有下面這些 整型各型別的空間的值的區別 引數所佔位元組 帶符號最小值 無符號最小值 帶符號最大值 無符號最大值 tinyint 1 128 0127 255smallint 2 32768 032767 622335 mediumint 3 8388608 08388607...

MySQL基礎學習(1)基本內容

net start 服務名 啟動服務 例如 net start mysql80 mysql u使用者名稱 h主機名 p埠號 p密碼 本機 mysql u使用者名稱 h主機名 p密碼 例如 mysql u root h 127.0.0.1 p密碼 登出 exit或ctrl c net stop 服務名...

mysql資料型別和字段屬性原理與用法詳解

首發日期 2018 04 08 mysql的資料型別就是儲存資料的型別。型別簡寫 位元組大小 signed 範圍 unsigned 範圍 備註整數型 tinyint 10 255 128 127 smallint 20 65535 32768 32767 mediumint 30 16777215 ...