三. 维护约束条件
也同样, 像 二.二 部分开始的那样, 先删除 表 yjlCol, 再重新建表 yjlCol, 用最纯净的表来进行演示。
将这个表 yjlCol 删除掉, 再重新创建 yjlCol, 仍然用最开始的那条语句, 只有id,name,sex 三个字段。
drop table yjlCol;
删除之后,重新创建表。
create table yjlCol( id int(11), name varchar(20), sex varchar(10) );
关于表的维护条件, 主要分为四大类, 一类是 关于主键的, 一类是关于外键的, 一类是关于 非空,默认,自动增长 这样的, 一类是 唯一约束。
下面针对的,都是已经创建好的表,不需要修改字段的。 只需要添加约束的。 如果要修改字段的同时再添加约束, 可以参考 上面的第二段内容,将表的字段维护好之后,再进行维护约束。
三.一 非空,默认,自动增长 约束条件
三.一.一 添加 非空 约束条件
如 name 字段添加 唯一的约束。 用 modify 修改数据类型,后面 添加约束
alter table yjlCol modify name varchar(10) not null;
三.一.二 删除唯一 约束条件
如 name 字段 删除 唯一约束 用 modify 修改数据类型, 后面不添加约束
alter table yjlCol modify name varchar(10);
三.二 唯一约束条件
如 name 字段, 添加 唯一约束
三.二.一 添加唯一约束
可以用
alter table yjlCol modify name varchar(10) unique;
但不建议这么使用。 唯一约束,有专门的方法, 主键也是,外键也是, 均用自己专门的方法。
建议命令使用:
alter table 表名 add [constraint 唯一约束名] Unique [Key] (列名);
key 可以加也可以不加。
演示:
alter table yjlCol add unique (name);
三.二.二 删除唯一约束
命令:
alter table 表名 drop index 列名;
会变成 索引 index
演示:
alter table yjlCol drop index name;
三.三 主键约束条件
三.三.一 添加单个主键
可以用 上面的语句:
alter table yjlCol modify id int(11) primary key;
来进行添加主键。
但不建议使用, 建议使用下面的命令:
alter table 表名 add [constraint 主键约束名] primary key (列名)
演示:
alter table yjlCol add primary key(id);
三.三.二 删除主键约束
命令:
alter table 表名 drop primary key;
演示:
alter table yjlCol drop primary key;
老蝴蝶提示:删除时,如果该主键是自增长的话, 那么需要先按照 三.一 的部分先删除自增长,然后才能 用 三.三.二 的部分 删除主键。
自增长的主键的话,直接删除的报错信息。
应该先删除自动增长, 再删除主键。
alter table yjlCol modify id int(11); alter table yjlCol drop primary key;
三.三.三 添加 复合主键约束
命令:
alter table 表名 add constraint 主键约束名 primary key (列名1,列名2);
如 给 yjlCol 中 id,name 添加联合主键。
alter table yjlCol add constraint PK_YJLCOL primary key(id,name);
三.三.四 删除 联合主键
用 上面 的 三.三.二 语句时:
alter table yjlCol drop primary key;
是可以正常 删除 联合主键的。
三.四 外键 Foreign Key
还是用 上一章节的 dept 表。 有id 和name 两个属性。
在 yjlCol 表里面添加一个 deptId 的字段, Int(11) 类型, 放置在最后。
alter table yjlCol add deptId int(11);
三.四.一 添加外键
命令:
alter table 子表名 add constraint 外键名 foreign key(子表字段) references 父表名(字段);
演示:
alter table yjlCol add constraint FK_YJLCOL_deptId foreign key(deptId) references dept(id);
三.四.二 删除外键
命令:
alter table 子表名 drop foreign key 外键名
演示:
alter table yjlCol drop foreign key FK_YJLCOL_deptId;
一.四.四 (删除有外键关联的主表)
1 .user 表的 外键信息是: 外键名称是 fk_user_deptId
2 . 删除 user 表里面的外键信息
alter table user drop foreign key fk_user_deptId;
3 .然后再删除主表 dept, 可以正常的进行删除了。
drop table dept;
关于表的操作,基本上就这么多。 谢谢!!!