mysql常用形式 MySQL常用資料型別

2021-10-18 22:21:35 字數 3074 閱讀 5738

mysql 支援多種資料型別,大侄可以分為三類:數值型別、時間型別、字串型別和符合型別;

數值型別:

型別大小

範圍(有符號)

範圍(無符號)

用途tinyint

1 位元組

(-128,127)

(0,255)

小整數值

smallint

2 位元組

(-32 768,32 767)

(0,65 535)

大整數值

mediumint

3 位元組

(-8 388 608,8 388 607)

(0,16 777 215)

大整數值

int或integer

4 位元組

(-2 147 483 648,2 147 483 647)

(0,4 294 967 295)

大整數值

bigint

8 位元組

(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)

(0,18 446 744 073 709 551 615)

極大整數值

float

4 位元組

(-3.402 823 466 e+38,1.175 494 351 e-38),0,(1.175 494 351 e-38,3.402 823 466 351 e+38)

0,(1.175 494 351 e-38,3.402 823 466 e+38)

單精度浮點數值

double

8 位元組

(1.797 693 134 862 315 7 e+308,2.225 073 858 507 201 4 e-308),0,(2.225 073 858 507 201 4 e-308,1.797 693 134 862 315 7 e+308)

0,(2.225 073 858 507 201 4 e-308,1.797 693 134 862 315 7 e+308)

雙精度浮點數值

decimal

對decimal(m,d) ,如果m>d,為m+2否則為d+2

依賴於m和d的值

依賴於m和d的值

小數值日期時間型別

每個時間型別有乙個有效值範圍和乙個「零」值,當指定不合法的值mysql使用「零」值

型別大小(位元組)

範圍格式

用途date

1000-01-01/9999-12-31

yyyy-mm-dd

日期值time

'-838:59:59'/'838:59:59'

hh:mm:ss

時間值或持續時間

year

1901/2155

yyyy

年份值datetime

1000-01-01 00:00:00/9999-12-31 23:59:59

yyyy-mm-dd hh:mm:ss

混合日期和時間值

timestamp

1970-01-01 00:00:00/2037 年某時

yyyymmdd hhmmss

混合日期和時間值,時間戳

字串型別

型別大小

用途char

0-255位元組

定長字串

varchar

0-65535 位元組

變長字串

tinyblob

0-255位元組

不超過 255 個字元的二進位制字串

tinytext

0-255位元組

短文本字串

blob

0-65 535位元組

二進位制形式的長文字資料

text

0-65 535位元組

長文字資料

mediumblob

0-16 777 215位元組

二進位制形式的中等長度文字資料

mediumtext

0-16 777 215位元組

中等長度文字資料

longblob

0-4 294 967 295位元組

二進位制形式的極大文字資料

longtext

0-4 294 967 295位元組

極大文字資料

復合型別

mysql還支援兩種復合資料型別enum 和set,他們擴充套件了sql規範。雖然這些型別在技術上市字串符型別,但是可以被視為不同的資料型別。

乙個enum型別只允許從乙個集合中取得乙個值;二set型別允許乙個集合中取得任意多個值。

enum型別

enum 型別因為只允許在集合中取得乙個值,有點類似於單選項。在處理相互排拆的資料時容易讓人理解,比如人類的性別。enum 型別字段可以從集合中取得乙個值或使用 null 值,

除此之外的輸入將會使 mysql 在這個欄位中插入乙個空字串。另外如果插入值的大小寫與集合中值的大小寫不匹配,mysql 會自動使用插入值的大小寫轉換成與集合中大小寫一致的值。

enum 型別在系統內部可以儲存為數字,並且從 1 開始用數字做索引。乙個 enum 型別最多可以包含 65536 個元素,其中乙個元素被 mysql 保留,用來儲存錯誤資訊,

這個錯誤值用索引 0 或者乙個空字串表示。

mysql 認為 enum 型別集合**現的值是合法輸入,除此之外其它任何輸入都將失敗。這說明通過搜尋包含空字串或對應數字索引為 0 的行就可以很容易地找到錯誤記錄的位置。

set型別

set 型別與 enum 型別相似但不相同。set 型別可以從預定義的集合中取得任意數量的值。並且與 enum 型別相同的是任何試圖在 set 型別欄位中插入非預定義的值都會使

mysql 插入乙個空字串。如果插入乙個即有合法的元素又有非法的元素的記錄,mysql 將會保留合法的元素,除去非法的元素。

乙個 set 型別最多可以包含 64 項元素。在 set 元素中值被儲存為乙個分離的「位」序列,這些「位」表示與它相對應的元素。「位」是建立有序元素集合的一種簡單而有效的方式。

並且它還去除了重複的元素,所以 set 型別中不可能包含兩個相同的元素。

希望從 set 型別欄位中找出非法的記錄只需查詢包含空字串或二進位制值為 0 的行

mysql常問內容 mysql常問問題

前言 一些自己遇到的問題及理解 需補充修改 索引型別 主鍵索引 普通索引 符合索引 唯一索引 全文索引 索引 查詢資料的資料結構,索引占用磁碟空間,更新資料的時候影響更新表的效率 資料儲存型別 聚簇索引 非聚簇索引 聚簇 採用b 樹的資料結構,聚簇索引葉子節點存放證章表的資料,所以主鍵索引就是用的聚...

mysql檢視mylog命令 mysql常用命令

連線mysql 1.登入mysql資料庫 mysql u使用者名稱 p密碼 示例 2.登入遠端主機的mysql mysql h遠端主機ip位址 u使用者名稱 p密碼 示例 注 建立使用者命令格式為 create user hehe 192.168.93.151 3.退出mysql命令 exit 修改...

mysql execute指令 mysql常用命令

一 游標 游標 cursor 是處理資料的一種方法,為了檢視或者處理結果集中的資料,游標提供了在結果集中一次一行或者多行前進或向後瀏覽資料的能力。可以把游標當作乙個指標,它可以指定結果中的任何位置,然後允許使用者對指定位置的資料進行處理。模版案例一 import if name main cnx c...