列属性——空属性,列描述,默认值

1. 空属性

共有两个值   null/not null

虽然默认数据库的字段基本都为空,但是实际上在真正开发的时候,要尽可能的保证数据不为空,因为空数据没有意义,也没办法参与运算

mysql> create table if not exists my_class(
    -> grade varchar(20) not null,
    -> room varchar(20) null
    -> )charset utf8;
Query OK, 0 rows affected

mysql> desc my_class;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| grade | varchar(20) | NO   |     | NULL    |       |
| room  | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set

2.列描述

列描述:comment,表示描述,没有实际含义,是专门用来描述字段的,其会随着表创建语句自动保存,用来给程序员(数据库管理员)了解数据库使用。

mysql> create table my_friend(
    ->  name varchar(20) not null comment '姓名',
    ->  age tinyint not null comment '年龄'
    -> )charset utf8;
Query OK, 0 rows affected

mysql> desc my_friend;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(20) | NO   |     | NULL    |       |
| age   | tinyint(4)  | NO   |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set

mysql> show create table my_friend;
+-----------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table     | Create Table                                                                                                                                          |
+-----------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
| my_friend | CREATE TABLE `my_friend` (
  `name` varchar(20) NOT NULL COMMENT '姓名',
  `age` tinyint(4) NOT NULL COMMENT '年龄'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-----------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set

3.默认值

默认值:default某一数据会经常性出现某个具体的值,因此可以在开始的时候就指定好,而在需要真实数据的时候,用户可以选择性的使用默认值。

mysql> create table my_default(
    ->  name varchar(20) not null,
    -> age tinyint unsigned default 0,
    -> gender enum('','') default ''
    -> )charset utf8;
Query OK, 0 rows affected

mysql> desc my_default;
+--------+---------------------+------+-----+---------+-------+
| Field  | Type                | Null | Key | Default | Extra |
+--------+---------------------+------+-----+---------+-------+
| name   | varchar(20)         | NO   |     | NULL    |       |
| age    | tinyint(3) unsigned | YES  |     | 0       |       |
| gender | enum('','')     | YES  |     ||       |
+--------+---------------------+------+-----+---------+-------+
3 rows in set

在列属性Default中已经展示了agegender字段的默认值,说明设置成功

下面演示如何使用默认值(不给设置默认值的字段赋值或者用default代替相应的字段值。)

mysql> insert into my_default (name) values ('Charies');
Query OK, 1 row affected

mysql> insert into my_default values ('Guo',18,default);
Query OK, 1 row affected

mysql> select * from my_default;
+---------+-----+--------+
| name    | age | gender |
+---------+-----+--------+
| Charies |   0 ||
| Guo     |  18 ||
+---------+-----+--------+
2 rows in set

 

posted @ 2018-01-31 17:27  ZZUGPY  阅读(371)  评论(0编辑  收藏  举报