表结构修改(alter)

  • 查看表的结构:desc 表名;
  • 修改表名:alter table 表名 rename to 新表名;
  • 修改字段名:alter table 表名 change 旧字段名 新字段名 数据类型;
  • 修改字段类型:alter table 表名 modify 字段名 数据类型;
  • 添加字段:alter table 表名 add [column] 新字段 数据类型;
  • 删除字段:alter table 表名 drop [column] 字段名;

约束条件

约束是一种限制,通过对表中的数据做出限制,来确保表中数据的完整性,唯一性

  • 默认约束(default)

    • 插入数据的时候,如果没有明确为字段赋值,则自动赋予默认值
    • 在没有设置默认值的情况下,默认值为NULL
  • 非空约束(not null)
    • 限制一个字段的值不能为空,insert的时候必须为该字段赋值
    • 空字符不等于NULL
  • 唯一约束(unique key)
    • 限制一个字段的值不重复,该字段的数据不能出现重复的
    • 确保字段中值的唯一
  • 主键约束(primary key)
    • 通常每张表都需要一个主键来体现唯一性,每张表里面只能有一个主键
    • 主键 = 非空 + 唯一
  • 自增长约束(auto_increment)
    • 自动编号,和主键组合使用,一个表里面只能有一个自增长
    • auto_increment 要求用在主键上
    • id int primary key auto_increment,
    • 或者
    • id int auto_increment , primary key(id)
    • 如果不想默认从1开始,从1000开始
    • ...(id int primary key auto_increment)auto_increment=1000;
  • 外键约束(foreign key)
    • 保持数据的一致性,我有的你一定有,你没有的,我绝对没有
    • foreign key (id_b) references a(id_a)

表关系

  • 一对一

    • 用外键的方式,把两个表的主键关联
  • 一对多
    • 通过外键关联来实现这种关系
  • 多对多
    • 对于多对多关系,需要创建中间表实现
    • 例如学生选课
    • 选课表(中间表)的学生id和课程id分别是学生表和课程表的外键

MySql 表结构修改、约束条件、表关系的更多相关文章

  1. MySQL约束条件 表关系建立 查询数据

    约束条件 unsigned 无符号 即为非负数,用此类型可以增加数据长度 例如 tinyint最大范围是127,那tinyint unsigned 最大就可以到 127 * 2 通常用在不会出现符号的 ...

  2. MYSQL创建表的约束条件(可选)

    一.常用的一些约束条件 一.创建表的完整语法1.创建表的万能模板:create table 库名.表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型 ...

  3. day03 mysql外键 表的三种关系 单表查询 navicat

    day03 mysql navicat   一.完整性约束之     外键 foreign key     一个表(关联表: 是从表)设置了外键字段的值, 对应的是另一个表的一条记录(被关联表: 是主 ...

  4. [MySQL数据库之表的约束条件:primary key、auto_increment、not null与default、unique、foreign key:表与表之间建立关联]

    [MySQL数据库之表的约束条件:primary key.auto_increment.not null与default.unique.foreign key:表与表之间建立关联] 表的约束条件 约束 ...

  5. mysql解决select * from 表名 (where + 约束条件为空)

    mysql解决select * from 表名 (where + 约束条件为空),示例如下: SELECT * from tableName WHERE name is NULL; 从 tableNa ...

  6. 【转】Mysql千万级数据表结构修改

    当需要对表进行ddl操作如加索引.增删列时,数据量小时直接在线修改表结构影响不大当表达到百万.千万数据就不能直接在线修改表结构 下面是具体的过程:1.备份数据select * from ih_orde ...

  7. 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效

    数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都 ...

  8. mysql千万级数据表结构修改

    当需要对表进行ddl操作如加索引.增删列时,数据量小时直接在线修改表结构影响不大当表达到百万.千万数据就不能直接在线修改表结构 下面是具体的过程:1.备份数据select * from ih_orde ...

  9. 【mysql】如何通过navicat配置表与表的多对一关系,一对一关系?设计外键的效果

    背景: 现在要将接口自动化测试结果持久化,当前只是每次运行接口测试,将测试结果通过邮件发送给项目组成员.邮件内容如下: 表设计: 为了呈现这个结果:我设计了2张表run_result和run_deta ...

随机推荐

  1. 使用StampedLock

    /** * StampedLock和ReadWriteLock相比,改进之处在于:读的过程中也允许获取写锁后写入!这样一来,我们读的数据就可能不一致,所以,需要一点额外的代码来判断读的过程中是否有写入 ...

  2. 某酒店建筑设计CAD施工图

    本素材为某酒店建筑设计CAD施工图,其中包涵的有酒店室内装修图纸.各个标间房屋改造图以及酒店场外建筑施工图.其中图纸的格式都是为dwg格式的.想要查看图纸就可以使用CAD看图软件来进行查看.以下就是一 ...

  3. diango中的MTV——FBV/CBV以及装饰器的复用问题解决

    MVC M: model 模型 与数据库交互 V: view 视图 HTML C:controller 控制器 流程 和 业务逻辑 MTV M:model ORM T:template 模板 HTML ...

  4. 如何计算Data Guard环境中Redo所需的网络带宽传输 (Doc ID 736755.1)

    How To Calculate The Required Network Bandwidth Transfer Of Redo In Data Guard Environments (Doc ID ...

  5. 如何从 ASH 找到消耗 PGA 和 临时表空间 较多的 Top SQL_ID (Doc ID 2610646.1)

    如何从 ASH 找到消耗 PGA 和 临时表空间 较多的 Top SQL_ID (Doc ID 2610646.1) 适用于: Oracle Database - Enterprise Edition ...

  6. tomcat启停脚本

    脚本存放目录 /etc/init.d/ #!/bin/bash # description: Tomcat8 Start Stop Restart # processname: tomcat8 # c ...

  7. s3c2440裸机-清bss原理及实现

    1.清bss的引入(为什么要清bss) 我们先举个例子: #include "s3c2440_soc.h" #include "uart.h" char g_C ...

  8. MVC(实战二:网址映射)

    一.默认网址 Global.asax 默认网址配置: 此时打开编辑页面,效果如下: ?后面包含name参数和Email参数  在Global中修改网址路由: public static void Re ...

  9. PHP危险函数

    部分内容转载 https://www.jianshu.com/p/277294c1a9f8 https://www.cnblogs.com/yewooo00/p/7551083.html 信息泄露 1 ...

  10. Ubuntu18.04 设置开机进入命令行模式

    首先来了解下启动级别(Runlevel): 指 Unix 或 类 Unix 操作系统下不同的运行模式,运行级别通常分为 7 级: 运行级别 0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启 ...