约束:

1. 约束保证数据的完整性和一致性;

2. 约束分为表级约束和列级约束;

3. 约束类型包括:NOT NULL, PRIMARY KEY, UNIQUE KEY, DEFAULT, FOREIGN KEY

  • 外键约束

    • 父表和子表必须使用相同的存储引擎,而且禁止使用临时表;
    • 数据库的存储引擎只能为InnoDB;
    • 外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同;
    • 外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。
  • 外键约束的参照操作
    • CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行;
    • SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL;
    • RESTRICT:拒绝对父表的删除或更新操作;
    • NO ACTION:标准的SQL关键字。
    • CREATE TABLE USERS (
      id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREAMENT,
      username VARCHAR(10) NOT NULL,
      pid SMALLINT UNSIGNED,
      FOREIGN KEY(pid) REFERENCES provinces (id) ON DELETE CASCADE
      );

      View Code

  • 列级约束
    • 对一个数据列建立的约束
    • 列级约束可以在列定义时声明,也可以在列定义后声明;
    • NOT NULL, DEFAULT只存在列级约束;
  • 表级约束
    • 对多个数据列建立的约束;
    • 表级约束只能在列定义后声明;

4. 修改数据表

  • 添加单列
  • ALTER TABLE tbl_name ADD [COLUMN] col_name
    column_definition [FIRST | AFTER col_name]

  • ALTER TABLE users ADD age SMALLINT UNSIGNED DEFAULT 10 AFTER username;

  • 添加多列
  • ALTER TABLE tbl_name ADD [COLUMN]
    (col_name column_definition, ...)

  • 删除一列
  • ALTER TABLE tbl_name DROP [COLUMN] col_name

  • 添加主键约束
  • ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]]
    PRIMARY KEY [index_type] (index_col_name, ...)

  • 删除主键约束
  • ALTER TABLE tbl_name DROP PRIMARY KEY;

  • //删除唯一约束
    ALTER TABLE tbl_name DROP {INDEX | KEY} index_name//删除外键约束
    ALTER TABLE tbl_name DROP FOREIGN KEY fk_symbol
    (通过SHOW CREATE TABLE tbl_name查看fk_symbol)

  • 修改列定义和更改表名称
  • //修改列定义
    ALTER TABLE tbl_name MODIFY [COLUMN] col_name
    column_definition [FIRST | AFTER col_name]//修改列名称
    ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name
    new_col_name column_definition [FIRST|AFTER col_name]//修改数据表的名称
    //法一:
    ALTER TABLE tbl_name RENAME [TO|AS] new_tbl_name
    //法二:
    RENAME TABLE tbl_name TO new_tbl_name
    [, tbl_name2 TO new_tbl_name2]...

转载于:https://www.cnblogs.com/little-YTMM/p/5423115.html

MySQL(三) —— 约束以及修改数据表相关推荐

  1. mysql后台修改表_mysql之约束以及修改数据表

    数据约束的分类: ---------------------------------------------------- 外键约束的要求解析: //在my文件中的这句话代表着搜索引擎,如果不是的就需 ...

  2. MySQL学习笔记-约束以及修改数据表

    MySQL学习笔记-约束以及修改数据表 约束: 按功能划为: NOT NULL , PRIMARY KEY , UNIQUE KEY , DEFAULT , FOREIGN KEY 按数据列的数目划为 ...

  3. MySQL学习笔记 约束以及修改数据表

    *** 约束保证数据的完整性和一致性 *** 约束分为表级约束和列级约束 *** 约束类型包括: NOT NULL(非空约束) PRIMARY KEY(主键约束) UNIQUE KEY(唯一约束) D ...

  4. MySQL约束和修改数据表知识集结

    一.约束 划分标准:功能.数据列的数目 功能: (1)NOT NULL(非空约束) (2)PRIMARY KEY(主键约束) (3)UNIQUE(唯一约束) (4)DEFAULT(默认约束) (5)F ...

  5. mysql 修改主键约束_MySQL---约束及修改数据表

    本文主要向大家介绍了MySQL的约束及修改数据表,通过具体的实例让大家了解,希望对大家学习MySQL有所帮助. ------Chapter3------------------------------ ...

  6. mysql授权 改表_mysql开启远程登陆(修改数据表和授权两种方法)

    一.确认防火墙没有阻止3306端口(一般服务器默认会屏蔽掉) windows防火墙例外设置方法 控制面板(右上角选择查看方式为大图标)---防火墙---高级设置---高级设置---出站规则---最右边 ...

  7. MYSQL数据库(九)- 修改数据表名称、列名称

    目录 一.修改列定义(modify col_name) 二.修改列类型(modify col_name) 三.修改列名称(change col_name) 三.修改表名称(rename table a ...

  8. 数据库系统原理与应用教程(024)—— MySQL 修改数据表的结构

    数据库系统原理与应用教程(024)-- MySQL 修改数据表的结构 目录 数据库系统原理与应用教程(024)-- MySQL 修改数据表的结构 一.修改表名 二.更改数据表所使用的存储引擎 1.查看 ...

  9. mysql所有的编码_MySQL 批量修改数据表编码及字符集

    当需要修改数据库编码和字符集时,通常需要对其下属的所有表及表中所有字段进行修改.以下备注批量修改方案( 以修改为 utf8mb4_bin 为例,注意将 db_name 换为真实的数据库名 ). 1. ...

最新文章

  1. Mybatis入门:4(多表查询操作)
  2. asp.net初学习实现简单的增删改查功能
  3. 3字节转换为有符号整型C语言,3.C语言整型数据
  4. 如何用matlab测a相相电流,电流平均值谐波检测方法MATLAB仿真
  5. 【童心制物】一篇很硬的标新立异级别的体验测评——聊新版造物编程盒
  6. expdp / impdp 用法详解(Oracle)
  7. 各种图(流程图,思维导图,UML,拓扑图,ER图)简介
  8. java类的命名规范_浅谈Java中的命名规范
  9. 【转载】#pragma once与#ifndef #define #endif的区别
  10. POJ 1228 —— “稳定”凸包
  11. iphone的生命周期
  12. “看起来你每天都要做好多事,你有时间吗?”
  13. 加入初创企业需要想清楚的几个问题
  14. c语言中- gt he,C语言中deta,fabs,lt;stdlib.hgt;,lt;stdio.hgt;分别是什么意思
  15. c++ getline 读不到东西_C++,使用getline一直读取不到文件中的内容
  16. 电影AI修复,让重温经典有了新的可能
  17. 浙江财经大学是一所怎样的学校?
  18. Spark学习之Spark Streaming(9)
  19. DECLARE_DYNAMIC IMPLEMENT_DYNAMIC
  20. PostMan——安装使用教程(图文详解)

热门文章

  1. c#事件Unity与.Net对比
  2. 【Advanced Windows Phone Programming】在windows phone 8中录制MP3和AAC及Amr音频
  3. js动态产生对象push进数组,发现数组所有元素(element or object)一样
  4. JavaScript学习(十一)—selected属性、checked属性、class属性的操作
  5. matlab 指定函数拟合,matlab中曲线拟合问题---使用指定函数进行曲线拟合
  6. 上午的工作多以学习为主
  7. 一个家庭女人太强势,这个家庭会怎样?
  8. 为什么有些WIFI不能用万能钥匙搜索到?怎么才能破解邻居家的WIFI密码?
  9. 草根最容易逆袭的地方就是互联网
  10. 客户购买产品的本质是什么,如何快速寻找到客户的需求,提高转化率?