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...