• 修改表名

alter table 表名 rename 新表名; //修改table名

  • 添加、删除、修改字段

alter table 表名 add [column] 列名 数据类型;  //添加column

alter table 表名 drop [column] 列名;  //删除column

alter table 表名 modify [column] 列名 新数据类型;  //修改column的数据类型

alter table 表名 change [column] 列名 新列名 新数据类型;  //修改column名称及数据类型

REMAEK:

  • column 关键字是可选的(可以不写)
  • 添加、删除主键约束

alter table 表名 add constraint 约束名 primary key(列名 [,列名,...]) ;  //创建主键

或

alter table 表名 add primary key(列名 [,列名,...]) ;  //创建主键

alter table 表名 drop primary key;  //删除主键

REMARK:

  • 由于MySQL删除主键并不能通过  alter table 表名 drop constraint 约束名 来删除
  • 因此推测对于主键的约束可能会被忽略
  • 于是我加上约束创建了一个主键,然后  show create table 表名 ,主键创建相关代码如下
PRIMARY KEY (`Sno`)
  • 可见约束确实被忽略了(个人理解)
  • 添加、删除外键约束

alter table 表名 add constraint 约束名 foreign key(列名) references 表名(列名) ;  //添加外键  

或

alter table 表名 add foreign key(列名) references 表名(列名);  //添加外键

alter table 表名 drop foreign key 约束名;  //删除外键

REMARK:                   

  • 对于用第一种方法创建的外键 约束名 是自己设置的
  • 对于用第二种方法设置的外键,MySQL会自动生成约束
  • 可以通过  show create table 表名 来查看生成的约束名
  •  下面是我用第二种方法创建外键之后,使用  show create table 表名  得到的外键创建相关代码
 CONSTRAINT `Teacher_Course_ibfk_1` FOREIGN KEY (`Teacher_id`) REFERENCES `Teacher` (`Id`)
  • 可见如果不加约束直接创建 foreign key
  • MySQL仍然会按照类似的规则创建约束

MySQL命令随手记之alter的更多相关文章

  1. linux操作mysql命令快速手记 — 让手指跟上思考的速度(二)

    这一篇是<mysql内建命令快速手记>的姐妹篇,废话不再赘述,直接上干货,跟老铁慢慢品 1.mysql -hlocalhost -uroot -proot,-h,-u,-p分别代表ip,u ...

  2. MySQL命令使用手记

    1.登陆          >mysql -u root -p,root没密码按回车. 2.创建数据库  >create database XXX; 3.创建用户     >inse ...

  3. mysql内建命令快速手记 — 让手指跟上思考的速度(一)

    在微信公众号上看到一篇文章说的很好,意思是说,大牛在尝试各种方案的时候可能并没有超神的预测和筛选能力 只是你通常测试一种情况时,大神已经测试了好几种方案了,讲的是"为什么大多数程序员不喜欢写 ...

  4. Mysql命令大全

    格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输 ...

  5. Mysql 命令大全

    1.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root - ...

  6. MySQL命令大全:MySQL常用命令手册、MySQL命令行大全、查询工具

    1.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root ...

  7. 使用mysql 命令行,增加 ,删除 字段 并 设置默认值 及 非空

    使用mysql 命令行,增加 ,删除 字段 并 设置默认值 及 非空 添加 alter table table_name add field_name field_type; 添加,并设置默认值,及非 ...

  8. mysql 命令重命名表RENAME TABLE 句法

    mysql 命令重命名表RENAME TABLE 句法 RENAME TABLE tbl_name TO new_tbl_name[, tbl_name2 TO new_tbl_name2,...]更 ...

  9. [转]Mysql命令行常用操作

    Mysql命令行常用操作 一.从命令行登录MySQL数据库服务器 1.登录使用默认3306端口的MySQL /usr/local/mysql/bin/mysql -u root -p 2.通过TCP连 ...

随机推荐

  1. C# 添加、删除、读取Word形状(基于Spire.Cloud.Word.SDK)

    本文介绍调用Spire.Cloud.Word.SDK提供的接口shapesApi来操作Word形状,包括添加形状AddShape(),添加形状时,可设置形状类型.颜色.大小.位置.倾斜.轮廓.文本环绕 ...

  2. python 进程事件

    1.作用 通过信号量,控制全部进程进入阻塞状态,也可以通过控制信号量,解除全部进程的阻塞 注意:定义的事件对象,默认状态是阻塞 2.常用方法 """ 对象.set() 作 ...

  3. 将一条路由约束到一组指定的值 约束路由 URL路由

  4. Java and MongoDB link for project

    鉴于开源项目的发展,大力拥抱开源社区.发现Java和MongoDB不失为一个较好的选择. 与其他数据库一样,同样需要mongo-java-driver,构建了Java与MongoDB的交互. 1. 连 ...

  5. [ Python入门教程 ] Python中日期时间datetime模块使用实例

    Python中datetime模块提供强大易用的日期处理功能,用于记录程序操作或修改时间.时间计算.日志时间显示等功能.datatime模块重新封装了time模块,提供的类包括date.time.da ...

  6. Nginx code 状态码说明

    最近了解下Nginx的Code状态码,在此简单总结下. 先来再回顾一下一个http请求处理流程: 一个普通的http请求处理流程,如上图所示: A -> client端发起请求给nginx B ...

  7. k8s概述

    k8s概述 概述 Kubernetes 使你在数以千计的电脑节点上运行软件时就像所有这些节点是单个大节点一样.它将底层基础设施抽象,这样做同时简化了应用的开发.部署, 以及对开发和运维团队的管理. K ...

  8. socket 原理

    socket 原理 什么是socket 我们知道进程通信的方法有管道.命名管道.信号.消息队列.共享内存.信号量,这些方法都要求通信的两个进程位于同一个主机.但是如果通信双方不在同一个主机又该如何进行 ...

  9. phpstudy切换的php7.1版本php-cgi报错

    phpstudy切换的php7.1版本php-cgi报错 是因为没有装对应vc的插件. 下载地址:https://www.microsoft.com/zh-CN/download/details.as ...

  10. VMware workstation 虚拟网络 三种上网区别

    以VMware workstation为例,其虚拟网络设备有3种: 第一种:vmnet0(桥接模式),无实体虚拟网卡,其实就是一个协议而已,会在对应网卡上加入VMware bridge protoco ...