点击关注上方“SQL数据库开发”,

设为“置顶或星标”,第一时间送达干货

ALTER TABLE的作用

ALTER TABLE命令用于添加、删除或者更改现有数据表中的列。

还可以用 ALTER TABLE 命令来添加或者删除现有数据表上的约束。


示例数据库表

将"Customers"表用作示例

添加列语法

使用 ALTER TABLE 在现有的数据表中添加新列的基本语法如下:

ALTER TABLE table_name

ADD  COLUMN column_name datatype;

给"Customers"表增加一列"年龄",可以这样写:

ALTER TABLE Customers
ADD COLUMN 年龄 INT;

我们再查看Customers表就在末尾增加一列"年龄"

由于我们没有设定值,"年龄"列默认都是NULL值(空值)

删除列语法

使用 ALTER TABLE 在现有的数据表中删除列的基本语法如下:

ALTER TABLE table_name

DROP COLUMN column_name;

我们再将上面"Customers"刚增加的"年龄"列给删除

ALTER TABLE Customers
DROP COLUMN 年龄;

执行完后就将"年龄"列给删除了。

修改列类型语法

使用 ALTER TABLE 更改现有的数据表中列的数据类型的基本语法如下:

ALTER TABLE table_name

MODIFY column_name datatype;

我们将"Customers"表的"邮编"由CHAR类型改成INT类型

ALTER TABLE customers
MODIFY 邮编 INT;

添加NOT NULL约束语法

使用 ALTER TABLE 给某列添加 NOT NULL 约束 的基本语法如下:

ALTER TABLE table_name

MODIFY column_name datatype NOT NULL;

我们可以将"Customers"表中的"省份"由NULL约束改成NOT NULL约束

ALTER TABLE Customers
MODIFY 省份 VARCHAR(20) NOT NULL;

结果如下:

添加唯一约束语法

使用 ALTER TABLE 给数据表添加 唯一约束 的基本语法如下:

ALTER TABLE table_name

ADD CONSTRAINT MyUniqueConstraint

UNIQUE(column1, column2...);

我们可以给"Customers"表中的"姓名"添加唯一约束

ALTER TABLE Customers
ADD CONSTRAINT idx_姓名
UNIQUE(姓名);

结果如下:

添加CHECK约束语法

使用 ALTER TABLE 给数据表添加 CHECK 约束 的基本语法如下:

ALTER TABLE table_name

ADD CONSTRAINT MyUniqueConstraint

CHECK (CONDITION);

我们可以给"Customers"表中的"邮编"添加CHECK约束,长度必须等于6

ALTER TABLE Customers
ADD CONSTRAINT con_客户ID
CHECK (length(邮编)=6);

当我们插入一条数据进去时,邮编的长度不等于6时,就会提示报错,如下图:

INSERT INTO customers
VALUES('张三','中山大道101号','广州','510','广东省');

结果如下:

当我们把邮编的长度改成6位的长度时,就可以正常插入了。

INSERT INTO customers
VALUES('张三','中山大道101号','广州','510000','广东省');

结果如下:

添加主键约束语法

使用 ALTER TABLE 给数据表添加 主键约束 的基本语法如下:

ALTER TABLE table_name

ADD CONSTRAINT MyPrimaryKey

PRIMARY KEY (column1, column2...);

我们先在Navicat中去掉客户ID的自增长主键,然后"客户ID"再添加不具备自增长属性的主键约束

ALTER TABLE Customers
ADD CONSTRAINT pri_客户ID
PRIMARY KEY(客户ID);

结果如下:

删除约束语法

使用 ALTER TABLE 从数据表中 删除约束 的基本语法如下:

ALTER TABLE table_name

DROP CONSTRAINT MyUniqueConstraint;

我们将刚才建的CHECK约束删除掉

ALTER TABLE Customers
DROP CONSTRAINT con_客户ID ;

我们可以看到直接的约束被删除了。

其他类型的约束同样可以用此语法进行删除。

注意:使用ALTER TABLE要极为小心,应该在进行改动前做一个完整的备份(模式和数据的备份)。数据库表的更改不能撤销,如果增加了不需要的列,可能不能删除它们。类似地,如果删除了不应该删除的列,可能会丢失该列中的所有数据

今日推荐——End——
后台回复关键字:1024,获取一份精心整理的技术干货
后台回复关键字:进群,带你进入高手如云的交流群。推荐阅读
你们猜猜,哪个省的女生最爱丰胸?????精心整理了一套SQL高级函数,建议收藏
一款SQL自动检查神器,再也不用担心SQL出错了!SQL 语句中 where 条件后 写上1=1 是什么意思国产数据库建模工具,看到界面第一眼,良心了!

这是一个能学到技术的公众号,欢迎关注

点击「阅读原文」了解SQL训练营

MySQL基础知识——ALTER TABLE相关推荐

  1. mysql基础知识(一)

    mysql是主流的关系型数据库管理系统(RDBMS---relation database management system),操作是需要用SQL(Structured Query Language ...

  2. MySQL基础知识-MySQL概述安装,单表增删改查,函数,约束,多表查询,事物

    MySQL基础知识-MySQL概述安装,单表增删改查,函数,约束,多表查询,事物 前言 1.MySQL概述 1.1数据库相关概念 1.2MySQL数据库 1.2.1版本 1.2.2下载 1.2.3安装 ...

  3. MySQL 基础知识入门教程

    前言 知识无底,学海无涯,到今天进入MySQL的学习4天了,知识点虽然简单,但是比较多,所以写一篇博客将MySQL的基础写出来,方便自己以后查找,还有就是分享给大家. 一.SQL简述 1.SQL的概述 ...

  4. 2.MySQL 基础知识

    文章目录 MySQL 基础知识 知识点一 : MySQL命令行常用命令 知识点二 : 持久化 相关概念 知识点三 : 数据库 相关概念 知识点四 : DB 和 DBMS 关系图示 知识点五 : MyS ...

  5. mysql+连接每一行数据_MySQL_深入mysql基础知识的详解,1.每个客户端连接都会从服务 - phpStudy...

    深入mysql基础知识的详解 1.每个客户端连接都会从服务器进程中分到一个属于它的线程.而该连接的相应查询都都会通过该线程处理. 2.服务器会缓存线程.因此并不会为每个新连接创建或者销毁线程. 3.当 ...

  6. MySQL——基础知识

    目录 一.SQL组成 1)数据定义语言(Data Definition Language,DDL) 2)数据操作语言(Data Manipulation Language,DML) 3)数据查询语言( ...

  7. 快速学习mysql_快速学习MySQL基础知识

    这篇文章主要梳理了 SQL 的基础用法,会涉及到以下方面内容: SQL大小写的规范 数据库的类型以及适用场景 SELECT 的执行过程 WHERE 使用规范 MySQL 中常见函数 子查询分类 如何选 ...

  8. MySQL基础知识之增删改查

    MySQL基础知识之增删改查 MySQL基本语法: 1.创建库:create database 库名: 创建带编码格式的库:create database 库名 character set 编码格式: ...

  9. MySQL工作中的实际用_总结工作中经常用到的mysql基础知识

    总结工作中经常用到的mysql基础知识 发布时间:2020-06-08 11:27:30 来源:51CTO 阅读:217 作者:三月 本文主要给大家介绍工作中经常用到的mysql基础知识,文章内容都是 ...

最新文章

  1. 存储系统的类型及特点
  2. iOS开发中怎么样使用激光推送
  3. GHUnit for iOS测试指南
  4. 程序员特有的9个坏习惯
  5. 在不如意的世界里全力以赴_我如何在“外展之旅”中全力以赴
  6. cocos2d学习之路四(添加遥控杆)
  7. mysql数据库白羽_Android应用开发Android 友盟推送原理解析
  8. 水经注地图发布服务中间件下载安装图文教程
  9. 用计算机绘制颗粒级配曲线,EXcel如何绘制颗粒级配曲线图
  10. PostgreSQL—适合金融的数据库
  11. fsck|xfs_repair 磁盘修复
  12. 华为RH2288V3服务器硬盘大于2T的处理办法
  13. 江苏大学的计算机,毛启容-江苏大学计算机科学与通信工程学院
  14. Elixir: Enum函数总结
  15. NBA得分后卫阅兵:科比榜首麦蒂第9 小AI获至高赞誉
  16. 护眼台灯什么价位的好?五百元内适合学生党的护眼台灯
  17. Android ToastUtil
  18. 前端培训出来的人,公司怎么看呢?
  19. 如何查看linux服务器是否为amd64架构还是x86_64架构
  20. 短地址,短URL服务 - 百度,TinyURL

热门文章

  1. 蓄水池问题c语言编程,基于51单片机的蓄水池自动控制系统(35页)-原创力文档...
  2. 网络安全等级保护确定定级对象
  3. 探索语言交互技术在政务数字化的应用
  4. 投资入门第 3 步:技术分析法(常用技术分析)
  5. 计算机科学与技术专业考数媒,数字媒体技术研究生院校排名
  6. JAVA语言规范 JAVA SE 8 - 类型、值和变量
  7. matlab中==、~=、的含义
  8. 信息收集——系统识别及版本确定
  9. SVN认证失败及“在其上下文中,该请求地址无效”问题的解决方法
  10. h5 加载完成_从零到一:实现通用一镜到底 H5