一、列属性
列属性:真正约束字段的是数据类型,但是数据类型的约束很单一,需要有一些额外的约束来更加保证数据的合法性。
列属性有很多:NULL/NOT NULL ,default,Primary key, unique key ,auto_increment,comment.
(1)空属性:
两个值:NULL(默认)和NOT NULL(不为空)
虽然默认的,数据库基本都是字段为空,但是实际上在真实开发的时候,尽可能的要保证所有的数据都不应该为空:空数据没用意义;空数据没有办法参与运算
1 select NULL; 2 select 1+NULL; --计算结果空值
(a)创建一个实际案例表:班级表(名字、教室)
1 create table my_class(name varchar(20) not null , room varchar(20) null) charset utf8; --null 代表允许为空,不写默认为空
二、列描述
列描述:comment,描述,没有实际含义:是专门用来描述字段,会根据表结构语句保存:用来给程序员(数据管理员)来进行了解的。
(a)创建表:
1 create table my_teacher(name varchar(20) not null comment '姓名', money decimal(10,2) not null comment '工资')charset utf8;
2 desc my_teacher;
3 show create table my_teacher;
结果如下:
三、默认值
1.默认值:某一种数据会经常性的出现某个具体的值,可以在一开始就指定好:在需要真实数据的时候,用户可以选择性的使用默认值。
默认值关键字:default
(a) 创建表:
1 create table my_default(name varchar(20) not null, age tinyint unsigned default 0, gender enum('男','女','保密') default '男') charset utf8;
2 desc my_default;
结果如下:
2. 默认值的生效:使用,在数据进行插入的时候,不给该字段赋值。
(b) 插入数据:
1 insert into my_default (name) values('高强');
2 select * from my_default;
结果如下:(高强的年龄和性别自动默认为0和男)
注:想要使用默认值,可以不一定去指定列表,故意不适用字段列表:可以使用default关键字代替值
(c)
1 insert into my_default values ('范利锋',18,denfault);
2 select * from my_default;
结果如下: