mysql-数据表操作2

外键约束

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

外键约束的要求(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_name
2.RENAME TABLE tb_name TO new_tb_name[,tb_name2 TO new_tb_name2]...

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL是一种开源的关系型数据库管理系统,它支持多种操作系统,并且广泛应用于Web应用程序的后端数据存储。MySQL的DDL(Data Definition Language)是用于定义和管理数据库结构的基础操作。 以下是MySQL中DDL的基础操作: 1. 创建数据库:使用CREATE DATABASE语句可以创建一个数据库。例如,CREATE DATABASE mydatabase; 2. 删除数据库:使用DROP DATABASE语句可以删除一个已存在的数据库。例如,DROP DATABASE mydatabase; 3. 创建表:使用CREATE TABLE语句可以创建一个数据表。在CREATE TABLE语句中,需要指定表名和表的列及其属性。例如,CREATE TABLE mytable (id INT, name VARCHAR(50)); 4. 删除表:使用DROP TABLE语句可以删除一个已存在的数据表。例如,DROP TABLE mytable; 5. 修改表结构:使用ALTER TABLE语句可以修改已存在的数据表的结构,包括添加、修改和删除列等操作。例如,ALTER TABLE mytable ADD COLUMN age INT; 6. 添加主键:使用ALTER TABLE语句可以为数据表添加主键约束,以确保每行数据的唯一性。例如,ALTER TABLE mytable ADD PRIMARY KEY (id); 7. 添加外键:使用ALTER TABLE语句可以为数据表添加外键约束,以确保与其他表的关联完整性。例如,ALTER TABLE mytable ADD FOREIGN KEY (customer_id) REFERENCES customers(id); 8. 创建索引:使用CREATE INDEX语句可以为数据表创建索引,以提高查询性能。例如,CREATE INDEX idx_name ON mytable (name); 这些是MySQL中DDL的基础操作,通过这些操作可以定义和管理数据库的结构。如果你有更具体的问题或者需要了解更多高级的DDL操作,请告诉我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值