char() 寬度預設為1 新增資料的時候他會自動擷取1位來 存 (能盡量少幹活就少幹活 )
還有一種情況就是 他會自動報錯 我們應該給他報錯
檢視 嚴格模式 show variables like"%mode%"; 只要是帶mode的都給我查出來
%匹配任意多個字元
_匹配任意乙個字元
兩種方式
set session 臨時有效 只在你當前操作視窗有效
set session sql_mode='strict_trans_tables';
set global 全域性有效 終身有效
set global sql_mode='strict_trans_tabl es' 設定完之後需要退出客戶端 從新進入
浮點型float(255,30) 總共255位 小數部分佔30位
double(255,30) 總共255位 小數部分佔30位
decimal(65,30) 總共65位 小數部分佔30位
create table t12(id float(255,30));
create table t13(id double(255,30));
create table t14(id decimal(65,30));
insert into t12 values(1.111111111111111111111111111111);
insert into t13 values(1.111111111111111111111111111111);
insert into t14 values(1.111111111111111111111111111111);
精確度float < double < decimal
分為兩類 char (4) 最大 四個字元 超出 直接報錯 少了用空格填充
varchar(4) 最大 四個字元 超出 直接報錯 少了有幾個存幾個 (節省空間)
char_length() 檢視長度 select char_length(name) from t16;
mysql在儲存char型別欄位的時候 硬碟上確確實實存的是固定長度的資料
但是再取出來的那一瞬間 mysql會自動將填充的空格去除
可以通過嚴格模式 來修改該機制 讓其不做自動去除處理
# 如果不想讓mysql幫你做自動去除末尾空格的操作,需要再新增乙個模式
char與varchar的區別
char定長
1.浪費空間
2.訪問速度快
varchar變長
1.節省空間
2.訪問速度慢(較於char比較慢)
存的時候 需要給資料講乙個記錄長度的報頭
取的時候 需要先讀取報頭才能讀取真實資料
char(4) varchar(4)
取的時候方便 取的時候比較繁瑣了 無法知道資料到底多長
直接按固定的長度取即可
浮點型資料型別
double 和 float 資料型別都是浮點型,在從記憶體中取出來後,即便之前的賦值是個 整型的資料型別,把浮點型取出來後都會變成實數的小數,比如賦值為0,取出來後就是0.0了 float var f 0 double var d 0 system.out.println var f 0.0 sy...
php手冊 筆記 型別 浮點型
1.除了字串型別之外,其它的所有型別轉換為浮點型時,都是先轉換為整型,然後再轉換為浮點型的 2.floor 0.1 0.7 10 返回的是7 為什麼echo 0.1 0.7 10返回的是8呢?也就是對浮點數的運算結果一定要注意使用限制小數點的位數,比如使用floor round 0.1 0.7 1 ...
基本型別 實型 浮點型
與數學中的實數的概念差不多,在乙個值的後面加上乙個小數點,該值就成為乙個浮點值,c語言中浮點型別有float double和long double 類似於科學記數法,稱為指數記數法或e記數法,e後面的數字代表數10的指數 整數沒有小數部分,浮點數有小數部分,表示的具體數字的個數相同 浮點數可以表示的...