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张图片

(1)有参照列为父表,有外键列为子表

(2)加上FOREIGN KEY的列为外键列

【把my.ini文件里的default-storage-engine=innoDB】

(3)建立provinces表和users表

mysql数据库修改约束_mysql约束以及数据库的修改_第2张图片

mysql数据库修改约束_mysql约束以及数据库的修改_第3张图片

mysql数据库修改约束_mysql约束以及数据库的修改_第4张图片

mysql数据库修改约束_mysql约束以及数据库的修改_第5张图片

(4)查看INDEXES

mysql数据库修改约束_mysql约束以及数据库的修改_第6张图片

mysql数据库修改约束_mysql约束以及数据库的修改_第7张图片

5、外键约束参照操作

mysql数据库修改约束_mysql约束以及数据库的修改_第8张图片

(1)我们建立一个表结构

mysql数据库修改约束_mysql约束以及数据库的修改_第9张图片

mysql数据库修改约束_mysql约束以及数据库的修改_第10张图片

(2)加入元素

mysql数据库修改约束_mysql约束以及数据库的修改_第11张图片

mysql数据库修改约束_mysql约束以及数据库的修改_第12张图片

(3)删除父表一个元素

mysql数据库修改约束_mysql约束以及数据库的修改_第13张图片

父表中的3、C删除之后,子表1、Tom、3也删除了

6、表级约束,列级约束

mysql数据库修改约束_mysql约束以及数据库的修改_第14张图片

二、修改数据表

一 、添加列

mysql数据库修改约束_mysql约束以及数据库的修改_第15张图片

mysql数据库修改约束_mysql约束以及数据库的修改_第16张图片

ef26ec90a19ec9e7c9d0a50611039c37.png

mysql数据库修改约束_mysql约束以及数据库的修改_第17张图片

二、添加约束

mysql数据库修改约束_mysql约束以及数据库的修改_第18张图片(示例)

1、添加主键约束

mysql数据库修改约束_mysql约束以及数据库的修改_第19张图片

mysql>ALTER TABLE users2 ADD CONSTRAINT PK_users2_id PRIMARY KEY (id);

2、添加唯一约束

mysql数据库修改约束_mysql约束以及数据库的修改_第20张图片

mysql> ALTER TABLE users2 ADD UNIQUE (username);

3、添加外键约束

mysql数据库修改约束_mysql约束以及数据库的修改_第21张图片

mysql>  ALTER TABLE users2 ADD FOREIGN KEY (pid) REFERENCES provinces (id);

4、添加/删除默认约束

mysql数据库修改约束_mysql约束以及数据库的修改_第22张图片

添加默认: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约束以及数据库的修改_第23张图片

mysql> ALTER TABLE users2 DROP PRIMARY KEY;

2、删除唯一约束

afb55d12e9bad9c8f953cd2caa435638.png

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约束以及数据库的修改_第24张图片

mysql> ALTER TABLE users2 DROP INDEX username ;

(删除约束而不是字段)

3、删除外键约束

94f43e2f84288666cc6b1d5c4d6acfa4.png

(1)查看属性mysql> SHOW CREATE TABLE users2;

mysql数据库修改约束_mysql约束以及数据库的修改_第25张图片

users2_ibfk_1为外键名字

mysql> ALTER TABLE users2 DROP FOREIGN KEY users2_ibfk_1;(利用外键名删除外键)

此时外键已被删除

mysql数据库修改约束_mysql约束以及数据库的修改_第26张图片

此时还有索引‘pid’删除它

ALTER TABLE users2 DROP  INDEX pid;

四、修改列定义

mysql数据库修改约束_mysql约束以及数据库的修改_第27张图片

mysql> ALTER TABLE users2 MODIFY id SMALLINT NOT NULL FIRST;(将id字段调整到第一的位置)

mysql> ALTER TABLE users2 MODIFY id TINYINT NOT NULL;(可以把SMALLINT强转成TINYINT,会有溢出)

mysql数据库修改约束_mysql约束以及数据库的修改_第28张图片

mysql> ALTER TABLE users2 CHANGE pid p_id TINYINT NOT NULL;(将pid改为p_id)

mysql数据库修改约束_mysql约束以及数据库的修改_第29张图片

方法一:mysql>  ALTER users2 RENAME users3;

方法二: mysql> RENAME users3 TO users1;(可以对多个数据表更名)

总结:

mysql数据库修改约束_mysql约束以及数据库的修改_第30张图片

你可能感兴趣的:(mysql数据库修改约束)