create table if not exists user(
id tinyint,
)engine=innoob charset=utf8;
之後使用desc name
你會驚奇的發現tinyint後面多出了乙個4
那是因為tinyint可以表示128,符號也代表一位,它是資料寬度
即便你設定資料寬度為2,但是你輸入是4位,最終還是顯示4位
如果查出資料的範圍,會出現截斷現象
比如插入-129,但在表中顯示-128
新增約束條件
a tinyint zerofile等等
//浮點型float(6,2)
如果你插入1.512,那麼儲存就會為1.51
select @@sql_mode;:檢視是不是嚴格模式
create table if not exists test1(
a char(5),
b varchar(5)
)engine=innoob charset=utf8;
insert test1(a,b) values("aa","aa");
insert test1(a,b) values("bb","bb");
insert test1(a,b) values("aaaaaa","aaaaaa");
很明顯你的插入第三行會報錯
error 1406 (22001): data too long for column 'a' at row 1
那就證明你的mysql的模式是嚴格模式
沒有嚴格模式就可以插入
設定嚴格模式
sql_mode=no_engine_substitution,strict_trans_tables
檢查是不是嚴格模式:select @@sql_mode
設定了嚴格模式對於其他型別資料都有用
select concat("*",a,"*"),concat("*",b,"*") from test3;
將表中字段為a和b的前後加上*
相當於連線字串
char儲存的時候後面空格進行填充
varchar不進行填充
//enum儲存的是編號不是值
null
yes表示可以插入空值
*** enum("男","女")
insert enum(***) values("男")
insert enum(***) values("男1")錯誤,只能從你列舉的裡面選
insert enum(***) values("null")正確
insert enum(***) values(1)選編號為1的值,從1開始
MySQL學習第三天
如果有其它觀點可以提出來奧 什麼是連線查詢 多張表連起來查詢。如果把全部資料儲存在一張表內的話,會導致資料重複,導致資料的冗餘。在乙個資料集合中重複的資料叫做資料冗餘 連線查詢分類 根據語法劃分 sql92 sql99 sql99語法結構更清晰一些,表的連線條件和後來的where條件分離了。sql9...
學習mysql的第三天
今天是週六,複習了前兩天天學習mysql的東西,每天學習的東西都很少,這兩天加起來只學習了這幾個資料型別 int char varchar enum int中可以修飾的詞有 unsigned zerofill auto increment,not null.一 初步了解如何在sqlyog中建立表的操...
學習第三天
額,又是美好的一天!祝賀比利時奪得季軍!下面,還是先看資訊學 今天繼續看倍增。這道題是和倍增沾邊的題,額,其實就是兩邊floyd。但是思路還是可以借鑑的。這道的思路是,使用兩個陣列,乙個是f k u v 這個陣列表示節點u到節點v之間是否距離為2 k,如果是,則為1,否則為0.代表u和v之間是否1s...