在字段类型之后,用于对当前字段进行一系列的约束的内容(现在内容的情况)
字段属性:null/not null,primary key,auto_increment,unique key,comment,default
Null:表示字段的值可以为空(在进行数据插入的时候,该字段可以不给数据),notnull表示不能为空,必须要给定值(不能是null)
Default:默认值,系统给出最多的值是default null
尽量不要让字段允许为空,因为数据往往需要有值才有意义。
使用default关键字来显示使用系统的默认值
主键,主要的键,用主键修饰的字段,该字段具有唯一性(不能重复)
1. 一张表最多只能一个主键
2. 主键字段不能为空
如何给表添加主键?
1. 在创建表的时候,直接在某个字段后添加主键
2. 在表后面增加primary key语句,来包含对应的主键字段
使用该方式,可以使用复合主键(可以使用多个字段共同组成主键)
3. 可以通过修改表结构增加主键
语法:alter table 表名 add primary key(字段列表)
前提:当前表的数据中,字段唯一
PRI代表主键 primary key就是主键
修改主键:主键不能被修改。
修改:先删除后增加
删除主键:alter table 表名 drop primary key
查看复合主键
desc 表名查询表结构
当出现两个PRI的时候
不代表有两个主键,代表由两个字段共同组成复合主键
Alter table 表名 add 字段 int primary key first;
因为字段插入之后,由于数据表的记录有3条,系统经过5语句读取之后,发现不能为空,是整型,所以默认值为0,但是有三个0,所以记录重复,因此主键插入失败
Alter table 表名 add 字段 int primary key auto_increment first;
与上面一样,但是多了一个auto_increment auto_increment属性,能够自动为主键自增,而且是从1开始,每次自增1,最终字段的值应该为1,2,3
自动增长
1. 字段必须是整型
2. 必须保证使用自动增长的字段首先满足的一个条件:是一个索引字段
3. 一个表只能有一个自动增长
4. 自动增长通常是配合逻辑主键(id int primary key auto_increment)
自动增长在使用后会出现表的选项里,而且其值为下一条要自增的字段的值
修改自动增长的值
Alter table 表名 auto_increment = 值
不能修改为已经存在的值
不存在的值可以修改
如果小于自动增长的值,都不能修改
注意:auto_increment 的值的修改,被修改的新值,必须要比当前表中已经存在的自增长的值要大
查看自增长控制变量
Show variables like ‘auto_increment%’;
可以通过修改自增长配置来实现自增长的控制
唯一键,字段的值不能重复
1. 一张表唯一键可以有多个
2. 唯一键不对null进行处理
如果添加唯一键?
跟主键的添加方式基本相同
1. 在字段之后直接跟unique key
2. 在表的所有字段之后,使用unique key(字段列表)
3. 在修改表结构的时候增加唯一键:alter table 表名 add unque key(字段列表)
注意:当唯一键不允许为空之后,就变成了主键
如果表中的存在多个唯一键并且都不为空,只有第一个不为空的唯一键变成主键,其它还是唯一键
唯一键转主键:
1. 该唯一键不能为空
2. 改唯一键是第一个不为空的唯一键
唯一键不回去区分null字段
删除唯一键:
Alter table 表名 drop unique key(字段列表); -- 错误
唯一键与主键不同,主键一张表只有一个,而唯一键可能有多个,所谓唯一键的删除,需要额外的指定要删除的唯一键的名字
语法:alter table 表名 drop index 唯一键名字/字段名
注释,是一种字段说明,会永远的保存在表的创建语句中
注释:表示当前代码是注释,不用执行,在语句执行之后,会被忽略掉
1. 两个中划线跟一个空格,行注释
2. #也是一种行注释
3. 块注释:/**/