您的位置:首页 > 数据库 > MySQL

mysql中的列属性(字段约束)

2016-01-14 22:23 405 查看

NULL  not null 空约束

mysql中的null不是数据,也不是类型,只是标志属性。
用户说明 某哥字段是否是null(null表示什么都不存)

NULL采用关键NULL表示!(不是字符串)

是:NULL,而不是:‘NULL’

属性:

null 表示可以为空



not null 表示这个字段不能是空



再添加数据的时候如果没有指定的值,可能会是null;(如果字段设置能为空没有指定的字段就是空,如果设置了不能为空,非字符型就为0,字符型的就是什么都没有空的);最主要的是这个和mysql的版本有关  可自行实践总结

default,默认属性,默认值约束

采用default关键字,在该字段没有赋值的时候设置默认值;



如果一个字段没有默认值就为null(default的那一列)



default 与 null 的处理关系!

如果此时,该字段被指定了一个null:

不能使用默认值,允许为null则为null,不允许则插入失败!

默认值存在一些特殊的关键字
default,也可以在值 中使用
等待更新

current_timestamp,用在第一个时间戳类型的字段上,表示当前的时间!





主键约束\唯一约束 primary\unique

站在的约束的角度上,要限制该字段的值是要唯一的;
但是主键好唯一又不是同一个概念;
都是索引的一种:
主键:可以唯一标示记录的字段,称之为主键
唯一键:保证每个字段上的值是唯一的,可以设置为唯一约束;
但是一般来说一个表只能有有一个主键(可以有多个后面会提到);
典型的就是在创建表的时候主动添加一个无关整型的数,充当主键,运算速度快;
比如说学生名字,性别,生日都可以冲突(当然是小概率事件,但是还是有可能发生的),学校就给他们规定了唯一索引学号,这样就不会出现冲突,
当然有的学校的学号是字符串,这样的运算速度比较慢,可以在添加一个无关的非实体自然属性,比如说冲1开始一直往下延续,在这个时候学号就可以是唯一约束了;

建立主键约束

建立主键约束有两种方案:
1.



无论怎么设置主键都不能为空,eg:



2.



创建唯一标识 unique key



管理主键和唯一

删除主键

因为主键也属于表结构的一部分,所以对主键操作就是操作表结构;

格式为: drop table 表名 drop primary key;



添加主键

alter table 表名 add primary key  (字段列表);



删除唯一

如果删除唯一的话,不管有几个唯一的字段,占用删除一次就够了,因为所有的唯一键有一个唯一键的名字;
可以通过show create table 表名;
来看唯一键的名字:



删除唯一值得是删除唯一键的名字,
因为唯一键也是属于表的一部分,所以也是操作的是表结构,格式为:
alter table 表名 drop index index_name;
例如:



增加唯一

格式为:
alter table type_uni2 add unique key  索引名(字段列表);



自动增长  auto_increment

用于主键并且是一个字段的主键,才能使用auto_increment
可以使从一开始的数逐一递增的;



典型的是从一开始,还可以给int 后面听见四一个人无符号unsigned;
如果后面对自动增长再赋值的话就按照赋值之后的继续自动增长;



comment 注释

就像当与  -- 一样
create table type_com(
id int comment "这里是注释",
sn varchar(255)
);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: