MySQL中常用的資料型別

2021-09-25 12:28:42 字數 3520 閱讀 6147

mysql中支援多種資料型別,但是常用的也就幾種,下面詳細介紹部分資料型別。

示例:

create

table tt1(num tinyint);

insert

into tt1 values(1

);--ok

insert

into tt1 values

(128);

-- 越界插入,報錯

create

table tt2(num tinyint

unsigned);

insert

into tt2 values(-

1);--報錯, 無符號,範圍是: 0 - 255

insert

into tt2 values

(255);

--ok

從圖中可以看到tinyint型別的範圍為-127~128,當數值型別為128時,越界插入,會報錯。

說明:bit[m] :位欄位型別。m表示每個值的位數,範圍從1到64。如果m被忽略,預設為1

示例:

create

table tt4 ( id int

, a bit(8

));insert

into tt4 values(10

,10);

當在查詢時,發現a中資料 不存在

bit使用的注意事項:

float[(m, d)] [unsigned] : m指定顯示長度,d指定小數字數,占用空間4個位元組

示例:

create

table tt7(id int

, salary float(4

,2)unsigned);

insert

into tt7 values

(100,-

0.1)

;

decimal(m, d) [unsigned] : 定點數m指定長度,d表示小數點的位數

示例:

create

table tt8 ( id int

, salary float(10

,8), salary2 decimal(10

,8))

;insert

into tt8 values

(100

,23.12345612

,23.12345612

);

decimal和float很像,但是有區別:float和decimal表示的精度不一樣,:float表示的精度大約是7位。

decimal整數最大位數m為65。支援小數最大位數d是30。如果d被省略,預設為0.如果m被省略,預設是10。

建議:如果希望小數的精度高,推薦使用decimal。

char(l): 固定長度字串,l是可以儲存的長度,單位為字元,最大長度值可以為255

示例:

create

table tt9(id int

, name char(2));

char(2) 表示可以存放兩個字元,可以是字母或漢字,但是不能超過2個, 最多只能是255

varchar(l): 可變長度字串,l表示字元長度,最大長度65535個位元組

示例:

create

table tt10(id int

,name varchar(6

));--表示這裡可以存放6個字元

說明:關於varchar(len),len到底是多大,這個len值,和表的編碼密切相關:

varchar長度可以指定為0到65535之間的值,但是有1 - 3 個位元組用於記錄資料大小,所以說有效位元組數是

65532。

當我們的表的編碼是utf8時,varchar(n)的引數n最大值是65532/3=21844[因為utf中,乙個字元占用3個字

節],如果編碼是gbk,varchar(n)的引數n最大是65532/2=32766(因為gbk中,乙個字元占用2位元組)。

char和varcahr比較

如何選擇定長或變長字串?

如果資料確定長度都一樣,就使用定長(char),比如:身份證,手機號,md5

如果資料長度有變化,就使用變長(varchar), 比如:名字,位址,但是你要保證最長的能存的進去。

定長的磁碟空間比較浪費,但是效率高。

變長的磁碟空間比較節省,但是效率低。

1.常用的日期有如下三個:

時間日期格式 『yyyy-mm-dd hh:ii:ss』 表示範圍從1000到9999,占用八字節

日期 『yyyy-mm-dd』,占用三位元組

時間戳,從2023年開始的 yyyy-mm-dd hh:ii:ss格式和datetime完全一致,占用四位元組,顯示當前執行語句時間

語法:enum:列舉,「單選」型別;

enum(『選項1』,『選項2』,『選項3』,…);

該設定只是提供了若干個選項的值,最終乙個單元格中,實際只儲存了其中乙個值;而且出於效率考慮,這些值實際儲存的是「數字」,因為這些選項的每個選項值依次對應如下數字:1,2,3,…最多65535個;當我們新增列舉值時,也可以新增對應的數字編號。

語法:set(『選項值1』,『選項值2』,『選項值3』, …);

該設定只是提供了若干個選項的值,最終乙個單元格中,設計可儲存了其中任意多個值;而且出於效率考慮,這些值實際儲存的是「數字」,因為這些選項的每個選項值依次對應如下數:1,2,4,8,16,32,… 最多64個。

說明:不建議在新增列舉值,集合值的時候採用數字的方式,因為不利於閱讀。

集合查詢使用find_ in_ set函式:

find_in_set(sub,str_list) :如果 sub 在 str_list 中,則返回下標;如果不在,返回0; str_list 用逗

號分隔的字串。

《MySQL中常用資料型別》

mysql資料型別mysql中的我們常使用的資料型別如下 詳細的資料型別如下 不建議詳細閱讀!分類型別名稱 說明整數型別 tinyint 很小的整數 smallint 小的整數 mediumint 中等大小的整數 int integer 普通大小的整數 bigint 大整數小數型別 float m,...

oracle中常用的資料型別

1 char n 或char n byte 固定長度字串 以位元組長度為單位 最大長度2000 bytes 2 char n char 固定長度字串 以字元個數為單位 3 varchar2 n 或varchar2 n byte 可變長度的字串 以位元組長度為單位 最大長度4000 bytes 可做索...

objective c中常用的資料型別

objective c中常用的資料型別 1.id id是一種泛型,用於表示任何種類的物件。需要注意的是id是乙個指標,所以在使用id的時候不需要加 星號。例如 id foo nil 而 id foo nil 則定義了乙個指標,這個指標指向另乙個 指標,被指向這個指標指向nsobject的乙個子類。2...