mysql基础(12)_列属性之NULL、Default、Comment

列属性:列属性又称之为字段属性,在mysql中一共有6个属性:null,默认值,列描述,主键,唯一键和自动增长

NULL属性

null属性:代表字段为空

如果对应的值为YES表示该字段可以为NULL

mysql> desc int_data;
+-------+------------------------------+------+-----+---------+-------+
| Field | Type                         | Null | Key | Default | Extra |
+-------+------------------------------+------+-----+---------+-------+
| int_1 | tinyint(4)                   | YES  |     | NULL    |       |
| int_2 | smallint(6)                  | YES  |     | NULL    |       |
| int_3 | mediumint(9)                 | YES  |     | NULL    |       |
| int_4 | int(11)                      | YES  |     | NULL    |       |
| int_5 | bigint(20)                   | YES  |     | NULL    |       |
| int_6 | tinyint(3) unsigned          | YES  |     | NULL    |       |
| int_7 | tinyint(3) unsigned zerofill | YES  |     | NULL    |       |
| int_8 | tinyint(2) unsigned zerofill | YES  |     | NULL    |       |
+-------+------------------------------+------+-----+---------+-------+
8 rows in set (0.37 sec)

注意:
1、在设计表的时候,尽量不要让数据为空。
2、Mysql的记录长度为65535个字节,如果一个表中有字段允许为null,那么系统就会设计保留一个字节来存储NULL,最终有效存储长度为65534个字节。

默认值(Default)

Default:默认值,当字段被设计的时候,如果允许默认条件下,用户不进行数据的插入,那么就可以使用事先准备好的数据来填充,通常填充的是NULL

mysql> create table default_adult(
    -> name char(10) not null,
    -> age int default 18
    -> )charset=utf8;
Query OK, 0 rows affected (1.79 sec)

mysql> desc default_adult;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| name  | char(10) | NO   |     | NULL    |       |
| age   | int(11)  | YES  |     | 18      |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.03 sec)

mysql> insert into default_adult(name) values('小明');
Query OK, 1 row affected (0.00 sec)

mysql> select * from default_adult;
+------+------+
| name | age  |
+------+------+
| 小明 |   18 |
+------+------+
1 row in set (0.00 sec)

Default关键字的另外一层使用:显式的告知字段使用默认值:在进行数据插入的时候对字段值直接使用default

mysql> insert into default_adult values('小明',default);
Query OK, 1 row affected (0.00 sec)

mysql> select * from default_adult;
+------+------+
| name | age  |
+------+------+
| 小明 |   18 |
| 小明 |   18 |
+------+------+
2 rows in set (0.00 sec)

列描述(comment)

列描述:comment,是专门用于给开发人员进行维护的一个注释说明。
基本语法:comment  '字段描述内容'

mysql> create table comment_column(
    -> name varchar(10) not null comment '当前用户名不能为空',
    -> password char(6) not null comment '用户密码不能为空'
    -> )charset=utf8;
Query OK, 0 rows affected (1.87 sec)

mysql> show create table comment_column;
+----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table          | Create Table                                                                                                                                                                              |
+----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| comment_column | CREATE TABLE `comment_column` (
  `name` varchar(10) NOT NULL COMMENT '当前用户名不能为空',
  `password` char(6) NOT NULL COMMENT '用户密码不能为空'
) ENGINE=MyISAM DEFAULT CHARSET=utf8 |
+----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

注意:comment与后面注释之间要加空格,查看Comment,必须通过查看表创建语句查看。
 


版权声明:本文为no15870678621原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。