约束以及修改数据表

约束
1,约束保证数据的完整行和一致性。
2,约束分为表级约束和列级约束。
3,约束类型包括:
    NOT NULL(非空约束)
    PRIMARY KEY(主键约束)
    UNIQUE KEY (唯一约束)
    DEFAULT (默认约束)
    FOREIGN KEY (外键约束)
外键约束的要求
1,父表和子表必须使用相同的存储引擎,而且禁止使用临时表。
2,数据表的存储引擎必须为INNODB
      配置文件    default-storage-engine=INNODB
3,外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同,而字符的长度则可以不同。
4,外键列和参照列必须创建索引,如果外键列不存在索引的话,MySQL将自动创建索引。
 
外键约束语句:  
     FOREIGN KEY(子表列名) REFERENCES 父表名(父表列名)
 
外键约束的参照操作

1,CASCADE:    从父表删除或更新且自动删除或更新子表中匹配的行

    举例:FOREIGN KEY(列名) REFERENCES 父表名(父列名) ON DELETE CASCADE
2,SET NULL:    从父表删除货更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL。
3,RESTRICT:    拒绝对父表的删除或更新操作。
4,NO ACTION:    标准SQL关键字,在MySQL中与RESTRICT相同
 
添加主键约束
ALTER TABLE 表名 ADD PRIMARY KEY(列名) ;
ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY[index_type](index_col_name,...)
删除主键约束
ALTER TABLE 表名 DROP PRIMARY KEY;
 
添加外键约束
ALTER TABLE 表名 ADD  FOREIGN KEY(外键列) references 父表名(参照列);
删除外键约束
ALTER TABLE 表名 DROP FOREIGN KEY  `外键名`;
 
添加唯一约束
ALTER TABLE tbl_name ADD [CONSTRAINT[symbol]] UNIQUE [INDEX | KEY] 
[index_name] [index_type] (index_col+name,...)
 
添加/删除默认约束
ALTER TABLE tbl_name ALTER[COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
 
修改字段数据类型
ALTER TABLE `Mierx`.`jt` CHANGE `时间` `时间` DATETIME NULL; 
 
删除索引
ALTER TABLE 表名 DROP INDEX 索引名

 
 
普通索引创建
1,ALTER TABLE 表名 ADD INDEX 索引名(列名)
2,CREATE  INDEX  索引名  ON  表名(列名)
3,创建表的时候指定索引,
 
posted @ 2020-12-09 21:41  局域网外  阅读(126)  评论(0编辑  收藏  举报