MySQL 数据表是由行和列构成的,通常把表的“列”称为字段(Field),把表的“行”称为记录(Record)。随着业务的变化,可能需要在已有的表中添加新的字段。

MySQL 允许在开头、中间和结尾处添加字段。

在末尾添加字段

一个完整的字段包括字段名、数据类型和约束条件。MySQL 添加字段的语法格式如下:

ALTER TABLE ADD [约束条件];

对语法格式的说明如下:

为数据表的名字;

为所要添加的字段的名字;

为所要添加的字段能存储数据的数据类型;

[约束条件] 是可选的,用来对添加的字段进行约束。

这种语法格式默认在表的最后位置(最后一列的后面)添加新字段。

注意:本节我们只添加新的字段,不关注它的约束条件。

实例1

在 test 数据库中新建 student 数据表,SQL 语句和运行结果如下:

mysql> USE test;

Database changed

mysql> CREATE TABLE student (

-> id INT(4),

-> name VARCHAR(20),

-> sex CHAR(1));

Query OK, 0 rows affected (0.09 sec)

使用 DESC 查看 student 表结构,SQL 语句和运行结果如下:

mysql> DESC student;

+-------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| id | int(4) | YES | | NULL | |

| name | varchar(20) | YES | | NULL | |

| sex | char(1) | YES | | NULL | |

+-------+-------------+------+-----+---------+-------+

3 rows in set (0.01 sec)

使用 ALTER TABLE 语句添加一个 INT 类型的字段 age,SQL 语句和运行结果如下:

mysql> ALTER TABLE student ADD age INT(4);

Query OK, 0 rows affected (0.16 sec)

Records: 0 Duplicates: 0 Warnings: 0

使用 DESC 查看 student 表结构,检验 age 字段是否添加成功。SQL 语句和运行结果如下:

mysql> DESC student;

+-------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| id | int(4) | YES | | NULL | |

| name | varchar(20) | YES | | NULL | |

| sex | char(1) | YES | | NULL | |

| age | int(4) | YES | | NULL | |

+-------+-------------+------+-----+---------+-------+

4 rows in set (0.00 sec)

由运行结果可以看到,student 表已经添加了 age 字段,且该字段在表的最后一个位置,添加字段成功。

在开头添加字段

MySQL 默认在表的最后位置添加新字段,如果希望在开头位置(第一列的前面)添加新字段,那么可以使用 FIRST 关键字,语法格式如下:

ALTER TABLE ADD [约束条件] FIRST;

FIRST 关键字一般放在语句的末尾。

实例2

使用 ALTER TABLE 语句在表的第一列添加 INT 类型的字段 stuId,SQL 语句和运行结果如下所示。

mysql> ALTER TABLE student ADD stuId INT(4) FIRST;

Query OK, 0 rows affected (0.14 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> DESC student;

+-------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| stuId | int(4) | YES | | NULL | |

| id | int(4) | YES | | NULL | |

| name | varchar(20) | YES | | NULL | |

| sex | char(1) | YES | | NULL | |

| age | int(4) | YES | | NULL | |

+-------+-------------+------+-----+---------+-------+

5 rows in set (0.00 sec)

由运行结果可以看到,student 表中已经添加了 stuId 字段,且该字段在表中的第一个位置,添加字段成功。

在中间位置添加字段

MySQL 除了允许在表的开头位置和末尾位置添加字段外,还允许在中间位置(指定的字段之后)添加字段,此时需要使用 AFTER 关键字,语法格式如下:

ALTER TABLE ADD [约束条件] AFTER ;

AFTER 的作用是将新字段添加到某个已有字段后面。

注意,只能在某个已有字段的后面添加新字段,不能在它的前面添加新字段。

实例3

使用 ALTER TABLE 语句在 student 表中添加名为 stuno,数据类型为 INT 的字段,stuno 字段位于 name 字段的后面。SQL 语句和运行结果如下:

mysql> ALTER TABLE student ADD stuno INT(11) AFTER name;

Query OK, 0 rows affected (0.13 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> DESC student;

+-------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| stuId | int(4) | YES | | NULL | |

| id | int(4) | YES | | NULL | |

| name | varchar(20) | YES | | NULL | |

| stuno | int(11) | YES | | NULL | |

| sex | char(1) | YES | | NULL | |

| age | int(4) | YES | | NULL | |

+-------+-------------+------+-----+---------+-------+

6 rows in set (0.00 sec)

由运行结果可以看到,student 表中已经添加了 stuId 字段,且该字段在 name 字段后面的位置,添加字段成功。

mysql 表中添加数据类型_MySQL数据表添加字段(三种方式)相关推荐

  1. python 爬虫 数据抓取的三种方式

    python 爬虫   数据抓取的三种方式 常用抽取网页数据的方式有三种:正则表达式.Beautiful Soup.lxml 1.正则表达式 正则表达式有个很大的缺点是难以构造.可读性差.不易适用未来 ...

  2. jupyter notebook python3路径_详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式...

    方式1. 打开Windows的cmd,在cmd中输入jupyter notebook --generate-config如下图: 可以看到路径为D:\Users--找到此路径修改jupyter_not ...

  3. JavaScript中遍历数组的for for-in和forEach三种方式

    JavaScript中遍历数组的for for-in和forEach三种方式 for循环 let arr = [1,2,3,4,5,6];for(let i = 0; i < arr.lengt ...

  4. mysql range代表什么意思_MySQL数据表range分区例子

    某些行业数据量的增长速度极快,随着数据库中数据量的急速膨胀,数据库的插入和查询效率越来越低.此时,除了程序代码和查询语句外,还得在数据库的结构上做点更改:在一个主读辅写的数据库中,当数据表数据超过10 ...

  5. MySQL(一):分别基于mysqldump、lvm2、xtrabackup三种方式实现备份恢复

    分别基于mysqldump.lvm2.xtrabackup三种方式实现MySQL备份恢复 一.利用mysqldump实施逻辑备份操作 1.在/etc/my.cnf中添加如下,开启二进制日志 innod ...

  6. JavaScript--------------------jQuery中.bind() .live() .delegate() .on()的区别 和 三种方式写光棒事件 动画...

    bind(type,[data],fn) 为每个匹配元素的特定事件绑定事件处理函数. $("a").bind("click",function(){alert( ...

  7. html 数据双向绑定,javascript实现数据双向绑定的三种方式小结

    前端数据的双向绑定方法 前端的视图层和数据层有时需要实现双向绑定(two-way-binding),例如mvvm框架,数据驱动视图,视图状态机等,研究了几个目前主流的数据双向绑定框架,总结了下.目前实 ...

  8. mysql表中字段数据类型_mysql数据表中字段的数据类型有哪些?

    数据表中字段的数据类型有:TINYINT.SMALLINT.MEDIUMINT.INT.INTEGE.DATETIME.DATE.TIMESTAMP.TIME.YEAR.CHAR.VARCHAR.TE ...

  9. mysql 目录武沛齐_MySQL数据表中的数据操作

    1.插入数据 insert into t_user (username,password,nickname) values ('foye','123','佛爷'); 以下方式必须写出所有的字段 ins ...

最新文章

  1. GlobalSign 荣登网络信任联盟 2013 年网络信任荣誉榜
  2. Java提高班(一)Thread详解
  3. 微信机器人 java 源码_三步轻松打造微信聊天机器人(附源码)
  4. nova 命令汇总三 ——网络相关命令
  5. 【NLP系列公开课】详解BERT、知识图谱、对话生成、图卷积神经网络
  6. DbgPrint 格式字符串
  7. PHP操作FTP类 (上传下载移动创建等)
  8. jboss drools_JBoss Drools –入门
  9. Linux 系统中的dvfs功能
  10. Centos下安装Mongodb
  11. Ubuntu 6.10 发布
  12. 离散数学(下)第十章 群与环
  13. 获取当年的法定节假日和周末_通过可配置的周末和节假日添加工作日
  14. 查找数据库指定数据的数据表和字段名称SQL语句
  15. 柯西积分不等式的证明题
  16. 让自己的QQ个人头像Tip也有彩色背景(转)
  17. 1.1 Android 系统概述_智能手机系统介绍
  18. React-Native开源项目GITHUB
  19. 激光点云构建地图(二)手动标注点云地图
  20. flutter和原生交互

热门文章

  1. STM32 基础系列教程 11 – ADC 轮询
  2. verilog基础-状态机之FPGA独立按键消抖设计与验证(熟练testbench的写法)
  3. 【DIY】震精!他居然用esp8266做出掌上游戏机......恐龙跑酷游戏还能这样玩!请广泛转发!...
  4. eCos Mbox机制
  5. 不同项目配置不同的 Git 账号
  6. 易优cms问一下大家 二级目录 真的完全不能装吗
  7. 算法学习之路|住房空置率
  8. 青少年是维护网络安全的主力军
  9. 解决Sublime包管理package control 报错 There are no packages available for installation
  10. hdu 1087 Super Jumping! Jumping! Jumping!