MYSQL中约束及修改数据表

28:约束
约束保证数据的完整性和一致性
约束分为表级约束和列级约束
约束类型包括:
    NOT NULL(非空约束)
    PRIMARY KEY(主键约束)
    UNIQUE KEY(唯一约束)
    DEFAULT(默认约束)
    FOREIGN KEY(外键约束)


29:查看数据表的存储引擎
SHOW CREATE TABLE 数据表名;
MYSQL中约束及修改数据表_Mysql



30:删除表中的数据
DELETE FROM 数据表名 WHERE 条件;


31:外键约束的参照操作(外键约束的要求解析)
外键约束保证数据一致性,完整性,实现一对多或者一对一关系
(含有外键的表称为子表)
外键约束的要求
1:父表和子表必须使用相同的存储引擎,而且禁止使用临时表
2:数据表的存储引擎只能为InnoDB
3:外键列和参照列必须具有相似的数据类型,其中数字的长度或是否有符号位必须相同,而字符的长度则可以不同
4:外键列和参照列必须创建索引。如果外键列不存在索引的话,MYSQL将自动创建索引
MYSQL中约束及修改数据表_Mysql_02

MYSQL中约束及修改数据表_数据库_03

 

32:查看是否存在索引
SHOW INDEXES FROM provinces;
以网格的形式显示索引    
SHOW INDEXES FROM provinces\G;    

MYSQL中约束及修改数据表_数据库_04

MYSQL中约束及修改数据表_数据库_05

MYSQL中约束及修改数据表_数据库_06

33:外键约束的参照操作
CASCADE:从父表删除或者更新且自动删除或者更新子表中匹配的行
《在两表中插入记录,必须先在父表中插入记录》
SET NULL:从父表删除或者更新行,并且设置子表中的外键列为NULL,如果使用该选项,必须保证子表列没有指定NOT NULL
RESTRICT:拒绝对父表的删除或者更新操作
NO ACTION:标准sql的关键字,在my sql中与RESTRICT相同
MYSQL中约束及修改数据表_Mysql_07

MYSQL中约束及修改数据表_数据库_08

MYSQL中约束及修改数据表_Mysql_09

MYSQL中约束及修改数据表_Mysql_10

MYSQL中约束及修改数据表_Mysql_11

MYSQL中约束及修改数据表_Mysql_12

删除表中的数据
DELETE FROM 数据表名 WHERE 条件;

MYSQL中约束及修改数据表_Mysql_13

34:表级约束和列级约束
对一个数据列建立的约束,称为列级约束《实际开发中多用》
对多个数据列建立的约束,称为表级约束
列级约束既可以在列定义时声明,也可以在列定义后声明,
表级约束只能在列定义后声明。

35:修改数据表(修改,删除)
添加单列
ALTER TABLE 数据表名 ADD 列名称 列定义 [FIRST] 指定列
添加单列(不可以指定位置)
...
删除列
ALTER TABLE 数据表名 DROP 列名;
MYSQL中约束及修改数据表_数据库_14

MYSQL中约束及修改数据表_Mysql_15

MYSQL中约束及修改数据表_数据库_16

MYSQL中约束及修改数据表_数据库_17

MYSQL中约束及修改数据表_Mysql_18

MYSQL中约束及修改数据表_Mysql_19

MYSQL中约束及修改数据表_Mysql_20

MYSQL中约束及修改数据表_Mysql_21

MYSQL中约束及修改数据表_数据库_22

MYSQL中约束及修改数据表_Mysql_23

 添加主键约束(只可以有一个)

MYSQL中约束及修改数据表_数据库_24

 

MYSQL中约束及修改数据表_数据库_25

MYSQL中约束及修改数据表_Mysql_26

MYSQL中约束及修改数据表_数据库_27

MYSQL中约束及修改数据表_数据库_28

MYSQL中约束及修改数据表_数据库_29

添加唯一约束(可以添加多个)

MYSQL中约束及修改数据表_Mysql_30

MYSQL中约束及修改数据表_Mysql_31

MYSQL中约束及修改数据表_Mysql_32

 添加外键约束

MYSQL中约束及修改数据表_Mysql_33

MYSQL中约束及修改数据表_Mysql_34

MYSQL中约束及修改数据表_数据库_35

MYSQL中约束及修改数据表_数据库_36

 添加或者删除默认约束

MYSQL中约束及修改数据表_Mysql_37

 

MYSQL中约束及修改数据表_Mysql_38

MYSQL中约束及修改数据表_数据库_39

MYSQL中约束及修改数据表_数据库_40

MYSQL中约束及修改数据表_Mysql_41

MYSQL中约束及修改数据表_数据库_42

删除主键约束

MYSQL中约束及修改数据表_数据库_43

MYSQL中约束及修改数据表_数据库_44


删除唯一约束

MYSQL中约束及修改数据表_Mysql_45

MYSQL中约束及修改数据表_数据库_46

MYSQL中约束及修改数据表_数据库_47

查看约束的名字
SHOW INDEXES FROM 数据表的名字;

MYSQL中约束及修改数据表_Mysql_48


删除外键约束

MYSQL中约束及修改数据表_数据库_49

MYSQL中约束及修改数据表_数据库_50

查看外键名称
SHOW CREATE TABLE 数据表名;

MYSQL中约束及修改数据表_Mysql_51

删除索引
MYSQL中约束及修改数据表_Mysql_52

MYSQL中约束及修改数据表_数据库_53

 
修改列定义

MYSQL中约束及修改数据表_Mysql_54

MYSQL中约束及修改数据表_数据库_55


修改列名称
MYSQL中约束及修改数据表_Mysql_56

MYSQL中约束及修改数据表_数据库_57

修改数据表的名字

MYSQL中约束及修改数据表_数据库_58

MYSQL中约束及修改数据表_Mysql_59

MYSQL中约束及修改数据表_数据库_60

MYSQL中约束及修改数据表_数据库_61