此處我們給int char沒有給出他們的寬度,系統缺省會給它分配乙個寬度。
m指示最大顯示寬度。最大有效顯示寬度是255。顯示寬度與儲存大小或型別包含的值的範圍無關
我們來進行下試驗
mysql(root@localhost:test 03:19:00)>create table c (
-> id int not null,
-> name char not null);
query ok, 0 rows affected (0.25 sec)
mysql(root@localhost:test 03:19:34)>desc c;
| field | type | null | key | default | extra |
| id | int(11) | no | | null | |
| name | char(1) | no | | null | |
2 rows in set (0.00 sec)
那麼我們可以看到這裡,系統會自動為我們的資料型別給出乙個預設的寬頻值,這裡這個寬度值其實只有在zerofill的作用下才能起到一定的作用。在下面我們看下其他的預設值是多少,
mysql(root@localhost:test 03:34:53)>alter table c modify id smallint;
query ok, 0 rows affected (0.05 sec)
records: 0 duplicates: 0 warnings: 0
mysql(root@localhost:test 03:39:39)>desc c;
| field | type | null | key | default | extra |
| id | smallint(6) | yes | | null | |
| name | varchar(10) | yes | | null | |
2 rows in set (0.00 sec)
mysql(root@localhost:test 03:39:44)>alter table c modify id bigint;
query ok, 4 rows affected (0.23 sec)
records: 4 duplicates: 0 warnings: 0
mysql(root@localhost:test 03:40:12)>desc c;
| field | type | null | key | default | extra |
| id | bigint(20) | yes | | null | |
| name | varchar(10) | yes | | null | |
2 rows in set (0.01 sec)
這裡我們再來看下當插入值大於資料型別的取值範圍的情況:
mysql(root@localhost:test 03:25:58)>insert into c values(300,'chen');
query ok, 1 row affected, 2 warnings (0.08 sec)
mysql(root@localhost:test 03:26:20)>show warnings;
| level | code | message |
| warning | 1264 | out of range value for column 'id' at row 1 |
| warning | 1265 | data truncated for column 'name' at row 1 |
2 rows in set (0.00 sec)
mysql(root@localhost:test 03:26:27)>select * from c;
| id | name |
| 127 | c |
1 row in set (0.02 sec)
mysql(root@localhost:test 03:26:40)>insert into c values(320,'chen');
query ok, 1 row affected, 2 warnings (0.05 sec)
mysql(root@localhost:test 03:26:53)>select * from c;
| id | name |
| 127 | c |
| 127 | c |
2 rows in set (0.00 sec)
這裡的tinyint是占有乙個位元組,就是可以表示從0-255這個範圍的整數,可是這裡為什麼直到127呢,原因是我們沒有給他設定無符號型別的。
mysql中整數型別 MySQL中整數型別使用
mysql中整數型別使用 bigint 從 2 63 9223372036854775808 到 2 63 1 9223372036854775807 的整型資料 所有數字 儲存大 mysql中整數型別使用 bigint 從 2 63 9223372036854775808 到 2 63 1 922...
mysql 整數型別
最近使用mysql資料庫的時候遇到了多種數字的型別,主要有int,bigint,smallint和tinyint。其中比較迷惑的是int和smallint的差別。今天就在網上仔細找了找,找到如下內容,留檔做個總結 使用整數資料的精確數字資料型別。bigint 從 2 63 9223372036854...
整數字串轉成整數數值
題目 給定乙個字串str,如果str符合日常書寫的整數形式,並且屬於32位整數的範圍,輸出str所代表的整數值,否則輸出無效。示例 str invalid str 123 輸出123 str 012 invalid 不合書寫習慣 str 123a invalid str 2147483648 inv...