mysql 整數 mysql整數資料型別深入解析

2021-10-25 14:14:30 字數 2300 閱讀 2383

此處我們給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...