首页 > 学院 > 开发设计 > 正文

mysql-数据表操作2

2019-11-09 13:37:11
字体:
来源:转载
供稿:网友

外键约束

保证数据的一致性、完整性,实现一对一与一对多的关系

外键约束的要求(4个)

父表与子表必须使用相同的存储引擎,禁止使用临时表数据表的存储引擎只能为innoDB(default-storage-engine = INNODB)外键列与参照列须具有相似的数据类型,其中数字的长度与是否有符号位必须相同,字符的长度则可以不同。外键列与参照列必须创建索引,如果外键列不存在索引的话,MySQL将自动创建索引。 例子:foreign key (uid)reference user(id); 这里写图片描述

外键约束的参照操作

1、cascate:从父表删除或者更新时,自动删除或更新子表中匹配的行 2、set null:从父表删除或更新行,同时设置子表中的外键列为null。如果使用该选项,必须保证子表列没有指定NOT NULL 3、restrict:拒绝对父表的删除或更新操作 4、no action:标准SQL的关键字,在MYSQL中与restrict相同 这里写图片描述

表级约束与列级约束

列级约束既可以在列定义的时候声明,也可以在列定义后声明(如主键),表级约束只能在列定义后声明

修改数据表

- 添加单列:

ALTER TABLE tb_mame ADD [COLUMN] col_name column_definition[FIRST | AFTER col_name]

这里写图片描述 - 添加多列 ALTER TABLE tb_name ADD [COLUMN] (col_name column_definition,...) 这里写图片描述 - 删除列

ALTER TABLE tb_name DROP [COLUMN] (col_name,...)

这里写图片描述

修改数据表–添加约束

- 添加主键约束 ALTER TABLE tb_name ADD [CONSTRAINT[symbol:约束的名字]] PRIMARY KEY [index_type(哈希索引,btree索引)](index_col_name,…) 这里写图片描述 - 添加唯一约束

ALTER TABLE tb_name ADD [CONSTRAINT[symbol]] UNIQUE [INDEX|KEY][index_name] [index_tupe](index_col_name,...)例子:ALTER TABLE user ADD UNIQUE (username);

这里写图片描述 - 添加外键约束

ALTER TABLE tb_name ADD[CONSTRAINT[symbol]] FOREIGN KEY [index_name](index_col_name,...)reference_definition

这里写图片描述 - 添加或删除默认约束

ALTER TABLE tb_name ALTER [COLUMN] col_name {SET DEFAULT LITERAL|DROP DEFAULT}

这里写图片描述

修改数据表-删除约束

-删除主键约束

ALTER TABLE tb_name DROP PRIMARY KEY

这里写图片描述 -删除唯一约束 ALTER TABKE tb_name DROP {INDEX|KEY} index_name(一张表可以有多个唯一约束) -删除外键约束

ALTER TABLE tb_name DROP FOREIGN KEY fk_symbol

这里写图片描述

修改数据表-修改列定义和更名数据表

- 修改列定义

ALTER TABLE tb_name MODIFY[COLUMN] col_name column_definition [FIRST|AFTER col_name]

这里写图片描述 - 修改列名称

ALTER TABLE tb_name CHANGE [COLUMN]old_col_name new_col_name columb_definition[FIRST|AFTER col_name]

这里写图片描述 - 数据表更名

1.ALTER TABLE tb_name RENAME [TO|AS] new_tb_name2.RENAME TABLE tb_name TO new_tb_name[,tb_name2 TO new_tb_name2]...

这里写图片描述


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表