mysql数据库修改约束_mysql约束以及数据库的修改

一、约束
1、约束保证数据完整性和一致性。
2、约束分为表级约束和列级约束。
(1)表级约束(约束针对于两个或两个以上的字段使用)
(2)列级约束(针对于一个字段使用)
3、约束类型有:
(1)NOT NULL(非空约束)
(2)PRIMARY KEY(主键约束)
(3)UNiQUE KEY(唯一约束)
(4)DEFAULT(默认约束)
(5)FOREIGN KEY(外键约束)
实现一对一或一对多关系。
4、要求
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

(1)有参照列为父表,有外键列为子表
(2)加上FOREIGN KEY的列为外键列
【把my.ini文件里的default-storage-engine=innoDB】
(3)建立provinces表和users表
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

(4)查看INDEXES
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

5、外键约束参照操作
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

(1)我们建立一个表结构
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

(2)加入元素
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

(3)删除父表一个元素
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

父表中的3、C删除之后,子表1、Tom、3也删除了
6、表级约束,列级约束
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

二、修改数据表
一 、添加列
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

二、添加约束
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片
(示例)
1、添加主键约束
【mysql数据库修改约束_mysql约束以及数据库的修改】mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

mysql>ALTER TABLE users2 ADD CONSTRAINT PK_users2_id PRIMARY KEY (id);
2、添加唯一约束
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

mysql> ALTER TABLE users2 ADD UNIQUE (username);
3、添加外键约束
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

mysql>ALTER TABLE users2 ADD FOREIGN KEY (pid) REFERENCES provinces (id);
4、添加/删除默认约束
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

添加默认:mysql> ALTER TABLE users2 ADD age TINYINT UNSIGNED NOT NULL;
修改默认值:mysql> ALTER TABLE users2 ALTER age SET DEFAULT 15;
删除默认值:mysql> ALTER TABLE users2 ALTER age DROP DEFAULT;
三、删除约束
1、删除主键约束
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

mysql> ALTER TABLE users2 DROP PRIMARY KEY;
2、删除唯一约束
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

mysql> SHOW INDEXES FROM users2\G; //显示INDEXES
*************************** 1. row ***************************
Table: users2
Non_unique: 0
Key_name: username
Seq_in_index: 1
Column_name: username
。。。。。。
*************************** 2. row ***************************
Table: users2
Non_unique: 1
Key_name: pid
Seq_in_index: 1
Column_name: pid
。。。。。。
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

mysql> ALTER TABLE users2 DROP INDEX username ;
(删除约束而不是字段)
3、删除外键约束
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

(1)查看属性mysql> SHOW CREATE TABLE users2;
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

users2_ibfk_1为外键名字
mysql> ALTER TABLE users2 DROP FOREIGN KEY users2_ibfk_1; (利用外键名删除外键)
此时外键已被删除
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

此时还有索引‘pid’删除它
ALTER TABLE users2 DROPINDEX pid;
四、修改列定义
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

mysql> ALTER TABLE users2 MODIFY id SMALLINT NOT NULL FIRST; (将id字段调整到第一的位置)
mysql> ALTER TABLE users2 MODIFY id TINYINT NOT NULL; (可以把SMALLINT强转成TINYINT,会有溢出)
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

mysql> ALTER TABLE users2 CHANGE pid p_id TINYINT NOT NULL; (将pid改为p_id)
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

方法一:mysql>ALTER users2 RENAME users3;
方法二: mysql> RENAME users3 TO users1; (可以对多个数据表更名)
总结:
mysql数据库修改约束_mysql约束以及数据库的修改
文章图片

    推荐阅读