约束以及修改数据表

外键约束: foreign key
保持数据的完整性 一致性。 实现一对一 或一对多的关系

外键约束的要求:
1 父表与子表必须使用相同的存储引擎 而且禁止使用临时表
2 数据表的存储引擎只能为 InnoDB;
3 外键列和参照列必须具有相似的数据类型 其中数字长度或是否有符号位必须相同 ,而字符的长度可以不同
4 外键列和参照列必须创建索引, 如果外键列不存在索引的话 mysql 将自动创建索引

编辑数据表的默认存储引擎 :
mysql 配置文件: 在my.ini 中 default-storage-engine = INNODB;

外键约束的参照操作
1 cascade 从父表删除或更新且自动删除或更新子表中匹配的行
2 set null 从父表删除或更新行 并且设置字表中的外键列为null, 如果使用该选项 必须保证子表列没有只定not null
3 restrict 拒绝对父表的删除或更新操作
4 not action 标准sql的关键字 在mysql中 与 restrict相同

修改数据表:
添加单列 alter table user1 add age tinyint unsigned not null default 10;

添加的列 至于 某个字段的后面 alter table user1 add pwd varchar(10) not null after username;

添加多列 只能顺序添加

删除列:
alter table users1 drop name;
删除多列
alter table users1 drop name,drop name;

添加主键约束:
alter table users2 add constraint pk_users2_id primary key (id); constraint 可以不写

添加唯一约束
alter table users2 add unique (username);

添加外键约束
alter table users2 add foreign key (pid) references pro (id);

添加删除默认约束
alter table users2 alter age set default 10;
alter table users2 alter age drop default;

删除主键约束
alter table users2 drop primary key;

删除唯一约束:
alter table users2 drop index username;

删除外键约束:
alter table users2 drop foreign key 外键约束名字 ;

修改列定义

修改列位置: alter table users modify id smallint unsigned not null first;

修改字段类型 : alter table users modify id tinyint unsigned not null ;

修改列名称: alter table users change pid p_id tinyint unsigned not null;

修改数据表名: alter table users rename users3;
rename table users3 to users2;

你可能感兴趣的:(约束以及修改数据表)