一、常用資料型別
整數型別:INT(或INTEGER)
定點數型別:DECIMAL
日期時間型別:YEAR、TIME、DATE、DATETIME、TIMESTAMP
文字字串型別:CHAR、VARCHAR、TEXT
二、整數型別
例子:
-- 1、建表
create table demo.demo1(
num int
);
-- 2、插入資料
insert into demo.demo1 values(null); -- 成功 null
insert into demo.demo1 values(1); -- 成功 1
insert into demo.demo1 values('2'); -- 成功 2
insert into demo.demo1 values('3.1'); -- 成功 3
insert into demo.demo1 values(true); -- 成功 1
insert into demo.demo1 values(false); -- 成功 0
insert into demo.demo1 values(1=1); -- 成功 1
insert into demo.demo1 values(1=2); -- 成功 0
insert into demo.demo1 values(''); -- 失敗
insert into demo.demo1 values('2.i'); -- 失敗
insert into demo.demo1 values('true'); -- 失敗
insert into demo.demo1 values('false'); -- 失敗
insert into demo.demo1 values('2023-01-01'); -- 失敗
三、定點型
-- 1、建表
create table demo.demo2(
num decimal(20,6)
);
-- 2、插入資料
insert into demo.demo2 values(null); -- 成功 null
insert into demo.demo2 values(1); -- 成功 1
insert into demo.demo2 values('2'); -- 成功 2
insert into demo.demo2 values('3.1'); -- 成功 3.1
insert into demo.demo2 values(true); -- 成功 1
insert into demo.demo2 values(false); -- 成功 0
insert into demo.demo2 values(1=1); -- 成功 1
insert into demo.demo2 values(1=2); -- 成功 0
insert into demo.demo2 values(''); -- 失敗
insert into demo.demo2 values('2.i'); -- 失敗
insert into demo.demo2 values('true'); -- 失敗
insert into demo.demo2 values('false'); -- 失敗
insert into demo.demo2 values('2023-01-01'); -- 失敗
四、日期型
-- 1、建表
create table demo.demo3(
tim date
);
-- 2、插入資料
insert into demo.demo3 values() -- 成功 null
insert into demo.demo3 values(null) -- 成功 null
insert into demo.demo3 values('20230101'); -- 成功 2023-01-01
insert into demo.demo3 values('2023-01-02'); -- 成功 2023-01-02
insert into demo.demo3 values('2023/01/03'); -- 成功 2023-01-03
insert into demo.demo3 values('2023$01$04'); -- 成功 2023-01-04
insert into demo.demo3 values(20230105); -- 成功 2023-01-05
insert into demo.demo3 values('') -- 失敗 mysql的date型別不能插入'',clickhouse資料庫允許插入'',且ck裡面的''和null也有所區別
insert into demo.demo3 values(2023-01-05); -- 失敗
五、文字型
char 和 varchar的區別:
在MySQL中,CHAR和VARCHAR是兩種不同的資料型別,它們的主要區別在於儲存方式、儲存容量和效能。
儲存方式:
CHAR是固定長度的型別,這意味著它為儲存的每個字元分配固定的空間,如果儲存的字元少於定義的CHAR長度,MySQL會使用空格填充剩餘空間。
VARCHAR則是可變長度的型別,它根據實際儲存的字元長度分配空間,不會為未使用的空間分配空間。
儲存容量;
CHAR型別的最大長度是255個字元,與字元編碼無關。
VARCHAR型別的最大長度可以達到65535個字元,但這個長度受限於InnoDB儲存引擎的單行記錄的最大長度,通常這個限制是65535位元組。
效能:
CHAR型別在更新或插入資料時,由於長度固定,通常比VARCHAR更快,因為它不需要在更新時重新計算和調整空間分配。
VARCHAR型別在插入或更新資料時可能需要動態調整空間,這可能導致效能稍遜於CHAR。
空間使用:
CHAR型別通常比VARCHAR型別更節省空間,因為它總是使用定義的長度來儲存資料,
而VARCHAR型別則根據實際儲存的字元長度來分配空間。
總結:
選擇CHAR還是VARCHAR取決於應用的具體需求,例如,如果知道字串的長度並且不需要經常更改,CHAR可能是更好的選擇,因為它提供了固定的儲存空間,減少了空間浪費。
相反,如果字串長度可能變化,或者需要頻繁更新,VARCHAR可能是更好的選擇,因為它提供了更大的靈活性,可以根據實際需要動態調整儲存空間。