mysql null

2016-12-27  本文已影响0人  金色的清晨

mysql创建表时,字段不特别指明不为空,默认为NULL。

mysql>create table test2 (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,`age` int NOT NULL, `add` varchar(64) NOT NULL, PRIMARY KEY (`id`));
mysql> show create table test2;
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                                            |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| test2 | CREATE TABLE `test2` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `age` int(11) DEFAULT NULL,
  `add` varchar(64) NOT NULL,
  PRIMARY KEY (`id`)
)

如果某个字段允许NULL,插入数据时,没有插入这个字段,或者插入字段为null,那么数据获取的时候就为NULL。

mysql> insert into test2 (`add`) values ('4');
mysql> select * from test2;
+----+------+------+
| id | age  | add  |
+----+------+------+
|  4 | NULL | 4    |
+----+------+------+
mysql> insert into test2 (`age`, `add`) values (null, '5');
Query OK, 1 row affected (0.07 sec)

mysql> select * from test2;
+----+------+-----+
| id | age  | add |
+----+------+-----+
|  4 | NULL | 4   |
|  5 | NULL | 5   |
+----+------+-----+
5 rows in set (0.00 sec)

如果字段不允许位空,那么它会有个默认值,如果没有手动自动默认值,系统会给不同类型的数据分配默认默认值,比如string类型为空字符串'',int类型位0

对于表后期修改后,如果前面为NULL,修改后NULL

上一篇下一篇

猜你喜欢

热点阅读