MySQL简单操作(4)-约束以及修改数据表

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

FOREIGN KEY(外键约束)

  • 保持数据一致性,完整性
  • 实现一对一或一对多关系

外键约束的要求

  1. 父表和子表必须使用相同的存储引擎,而且禁止使用临时表
  2. 数据表的存储引擎只能为InnoDB
  3. 外键列和参考列必须具有相似的数据类型。其中数字长度或是否符号位必须相同;而字符长度可以不同
  4. 外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引

编辑数据表的默认存储引擎
MySQL配置文件
default-storage-engine=INNODB

外键约束的参照操作

  1. CASCADE: 从父表删除或更新且自动删除或更新子表中匹配到行
  2. SET UNLL: 从父表删除或更新行,并设置子表中的外键行为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL
  3. RESTRICT: 拒绝对父表的删除或更新操作
  4. NO ACTION: 标准SQL的关键字,在MySQL中与RESTRICT相同

修改数据表

  • 添加单列

    1
    ALTER TABLE tal_name ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name];
  • 添加多列

    1
    ALTER TABLE tal_name ADD [COLUMN] (col_name column_definition,...);
  • 删除列

    1
    ALTER TABLE tal_name DROP [COLUMN] col_name;
  • 添加主键约束

    1
    ALTER TABLE tal_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...);
  • 添加唯一约束

    1
    ALTER TABLE tal_name ADD [CONSTRAINT [symbol]] UNIQUE [INDEC|KEY] [index_name][index_type] (index_col_name,...);
  • 添加外键约束

    1
    ALTER TABLE tal_name ADD [CONSTRAINT [symbol]] FOREING KEY [index_name](index_col_name,...) reference_definition;
  • 添加/删除默认约束

    1
    ALTER TABLE tal_name ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT};
  • 删除主键约束

    1
    ALTER TABLE tal_name DROP PRIMARY KEY;
  • 删除唯一约束

    1
    ALTER TABLE tal_name DROP {INDEX|KEY} index_name;
  • 删除外键约束

    1
    ALTER TABLE tal_name DROP FOREIGN KEY fk_symbol;
  • 修改列定义

    1
    ALTER TABLE tal_name MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name];
  • 修改列名称

    1
    ALTER TABLE tal_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST | AFTER col_name];
  • 数据表更名

    方法一:

    1
    ALTER TABLE tal_name RENAME [TO|AS] new_tbl_name;

    方法二:

    1
    RENAME TABLE tal_name TO new_tbl_name [, tabl_name2 TO new_tal_name2];

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2021 朝着牛逼的道路一路狂奔 All Rights Reserved.

访客数 : | 访问量 :