MySQL修改数据表

MySQL 中可以使用 ALTER TABLE 语句来改变原有表的结构,例如增加或删减列、创建或取消索引、更改原有列类型、重新命名列或表等。

基本语法

修改表指的是修改数据库中已经存在的数据表的结构。MySQL 使用 ALTER TABLE 语句修改表。常用的修改表的操作有修改表名、修改字段数据类型或字段名、增加和删除字段、修改字段的排列位置、更改表的存储引擎、删除表的外键约束等。

常用的语法格式如下:

ALTER TABLE <表名> [修改选项]

修改选项的语法格式如下:

{ ADD COLUMN <列名> <类型>
| CHANGE COLUMN <旧列名> <新列名> <新列类型>
| ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }
| MODIFY COLUMN <列名> <类型>
| DROP COLUMN <列名>
| RENAME TO <新表名> }

添加字段

随着业务的变化,可能需要在已经存在的表中添加新的字段,一个完整的字段包括字段名、数据类型、完整性约束。添加字段的语法格式如下:

ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] [FIRST|AFTER 已存在的字段名]

新字段名为需要添加的字段的名称;FIRST 为可选参数,其作用是将新添加的字段设置为表的第一个字段;AFTER 为可选参数,其作用是将新添加的字段添加到指定的已存在的字段名的后面。

使用 ALTER TABLE 修改表 test的结构,在表的第一列添加一个 int 类型的字段 col1,输入的 SQL 语句和运行结果如下所示。

mysql> ALTER TABLE test-> ADD COLUMN col1 INT FIRST;
Query OK, 0 rows affected (0.94 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC test;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| col1   | int(11)     | YES  |     | NULL    |       |
| id     | int(11)     | YES  |     | NULL    |       |
| name   | varchar(25) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

提示:“FIRST 或 AFTER 已存在的字段名”用于指定新增字段在表中的位置,如果 SQL 语句中没有这两个参数,则默认将新添加的字段设置为数据表的最后列。

使用 ALTER TABLE 修改表 test的结构,在一列 name 后添加一个 int 类型的字段 col2,输入的 SQL 语句和运行结果如下所示。

mysql> ALTER TABLE test-> ADD COLUMN col2 INT AFTER name;
Query OK, 0 rows affected (0.50 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC test;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| col1   | int(11)     | YES  |     | NULL    |       |
| id     | int(11)     | YES  |     | NULL    |       |
| name   | varchar(25) | YES  |     | NULL    |       |
| col2   | int(11)     | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float        | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

可以看到,表 test中增加了一个名称为 col2 的字段,其位置在指定的 name 字段后面,添加字段成功。

修改字段数据类型

修改字段的数据类型就是把字段的数据类型转换成另一种数据类型。在 MySQL 中修改字段数据类型的语法规则如下:

ALTER TABLE <表名> MODIFY <字段名> <数据类型>

其中,表名指要修改数据类型的字段所在表的名称,字段名指需要修改的字段,数据类型指修改后字段的新数据类型。

使用 ALTER TABLE 修改表 test的结构,将 name 字段的数据类型由 VARCHAR(22) 修改成 VARCHAR(30),输入的 SQL 语句和运行结果如下所示。

mysql> ALTER TABLE test-> MODIFY name VARCHAR(30);
Query OK, 0 rows affected (0.15 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC test;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| col1   | int(11)     | YES  |     | NULL    |       |
| id     | int(11)     | YES  |     | NULL    |       |
| name   | varchar(30) | YES  |     | NULL    |       |
| col2   | int(11)     | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float        | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

语句执行后,发现表 test中 name 字段的数据类型已经修改成 VARCHAR(30),修改成功。

删除字段

删除字段是将数据表中的某个字段从表中移除,语法格式如下:

ALTER TABLE <表名> DROP <字段名>

其中,字段名指需要从表中删除的字段的名称。

使用 ALTER TABLE 修改表 test的结构,删除 col2 字段,输入的 SQL 语句和运行结果如下所示。

mysql> ALTER TABLE test-> DROP col2;
Query OK, 0 rows affected (0.53 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> DESC test;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| col1   | int(11)     | YES  |     | NULL    |       |
| id     | int(11)     | YES  |     | NULL    |       |
| name   | varchar(30) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float        | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

修改字段名称

MySQL 中修改表字段名的语法规则如下:

ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>

其中,旧字段名指修改前的字段名;新字段名指修改后的字段名;新数据类型指修改后的数据类型,如果不需要修改字段的数据类型,可以将新数据类型设置成与原来一样,但数据类型不能为空。

使用 ALTER TABLE 修改表 test的结构,将 col1 字段名称改为 col3,同时将数据类型变为 CHAR(30),输入的 SQL 语句和运行结果如下所示。

mysql> ALTER TABLE test-> CHANGE col1 col3 CHAR(30);
Query OK, 0 rows affected (0.76 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC test;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| col3   | char(30)    | YES  |     | NULL    |       |
| id     | int(11)     | YES  |     | NULL    |       |
| name   | varchar(30) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float        | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.01 sec)

CHANGE 也可以只修改数据类型,实现和 MODIFY 同样的效果,方法是将 SQL 语句中的“新字段名”和“旧字段名”设置为相同的名称,只改变“数据类型”。

提示:由于不同类型的数据在机器中的存储方式及长度并不相同,修改数据类型可能会影响数据表中已有的数据记录,因此,当数据表中已经有数据时,不要轻易修改数据类型。

修改表名

MySQL 通过 ALTER TABLE 语句来实现表名的修改,语法规则如下:

ALTER TABLE <旧表名> RENAME [TO] <新表名>

其中,TO 为可选参数,使用与否均不影响结果。

】使用 ALTER TABLE 将数据表 test 改名为 people,输入的 SQL 语句和运行结果如下所示。

mysql> ALTER TABLE test-> RENAME TO people;
mysql> SHOW TABLES;
+--------------------+
| Tables_in_test_db  |
+--------------------+
| people|
+--------------------+
1 rows in set (0.00 sec)

提示:用户可以在修改表名称时使用 DESC 命令查看修改后两个表的结构,修改表名并不修改表的结构,因此修改名称后的表和修改名称前的表的结构是相同的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564349.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

更换计算机桌面背景的教案,桂科版三年级下册任务一 美化桌面背景免费教学设计...

这是一份桂科版三年级下册任务一 美化桌面背景免费教学设计&#xff0c;共3页。任务一 美化桌面背景 教学设计一、教学目标&#xff1a;1、学会设置个性化桌面背景。2、学会根据自己的需要排列图标。3、学会更改任务栏的颜色。4、了解更改桌面图标标志的方法。二、教学重难点&a…

车仪表台上的装饰_一汽大众销量最差的车,旅行车蔚领为什么在国内没有市场?...

说到旅行车&#xff0c;一直是深受欧洲人民所喜爱的这么一类车种。由于国情不同&#xff0c;欧洲大陆上的国家众多&#xff0c;城市与城市之间更是被分割得很"碎"&#xff0c;再加上欧洲人民喜欢出去旅游&#xff0c;而一出门便喜欢携带自行车、冲浪板、帐篷等户外装…

MySQL删除数据表

MySQL 数据库中&#xff0c;对于不再需要的数据表&#xff0c;我们可以将其从数据库中删除。 在删除表的同时&#xff0c;表的结构和表中所有的数据都会被删除&#xff0c;因此在删除数据表之前最好先备份&#xff0c;以免造成无法挽回的损失。 基本语法 使用 DROP TABLE 语…

计算机水平毕业研究生7分落户,2018毕业生就业落户新评分标准出炉!立信能加多少分?...

原标题&#xff1a;2018毕业生就业落户新评分标准出炉&#xff01;立信能加多少分&#xff1f;全文字数&#xff1a;1682字阅读所需时间&#xff1a;4分钟近日&#xff0c;上海发布了《2018年非上海生源应届普通高校毕业生进沪就业申请本市户籍评分办法》。与应届毕生生息息相关…

textcnn文本词向量_文本分类模型之TextCNN

六年的大学生涯结束了&#xff0c;目前在搜索推荐岗位上继续进阶&#xff0c;近期正好在做类目预测多标签分类的项目&#xff0c;因此把相关的模型记录总结一下&#xff0c;便于后续查阅总结。一、理论篇&#xff1a; 在我们的场景中&#xff0c;文本数据量比较大&#xff0c;因…

MySQL主键

“主键&#xff08;PRIMARY KEY&#xff09;”的完整称呼是“主键约束”。MySQL 主键约束是一个列或者列的组合&#xff0c;其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键&#xff0c;通过它可以强制表的实体完整性。 选取设置主键约束的字段 主键约束即在表中…

电大计算机一级b考试试题,电大计算机考试本科试题

目录&#xff1a;按住Ctrl键点击相关的标题&#xff0c;可以快速的切换到相应的内容处 操作系统应用 计算机网络应用 文字编辑 电子表格 电子演示文稿电子表格 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1在考生文件夹下新建一个Excel工作簿&#xff0c;完成以下操作…

antd table排序 vue_antd of Vue 之table组件踩坑记

需求&#xff1a;页面里有个table&#xff0c;点击编辑可以编辑该table&#xff0c;保存数据并展示到页面上来第一种方法就是把编辑态的table做成子组件(且叫editeTable)&#xff0c;通过v-show判断是否进入编辑态来显示隐藏。先仿造原本父组件(且叫fatherTable)&#xff0c;做…

计算机管理也无法运行,【两种解决方法】任务管理器打不开怎么办?

任务管理器调不出来怎么办&#xff1f;任务管理器打不开是怎么回事呢&#xff1f;以下两种方法可解决任务管理器打不开问题&#xff1f;1、打开电脑&#xff0c;点击左下角”开始“&#xff0c;选择运行&#xff0c;打开运行对话框后输入"regedit“如下图&#xff1a;2、在…

MySQL唯一约束

MySQL唯一约束&#xff08;Unique Key&#xff09;要求该列唯一&#xff0c;允许为空&#xff0c;但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。 在创建表时设置唯一约束 在定义完列之后直接使用 UNIQUE 关键字指定唯一约束&#xff0c;语法规则如下&…

单纯形法表格法例题详解_最优化单纯形法例题讲解.doc

最优化单纯形法例题讲解.doc例1 用单纯形法解下列问题&#xff1a;解&#xff1a;将原问题化成标准形&#xff1a;x4与添加的松弛变量x&#xff0c;x在约束方程组中其系数正好构成一个3阶单位阵&#xff0c;它们可以作为初始基变量&#xff0c;初始基可行解为X(0, 0, , 8, 4)T列…

卫星轨道的计算是利用计算机的,轨道计算

轨道计算是一种粗略测定天体轨道的方法。在轨道计算中﹐人们事先不必对天体轨道作任何初始估计﹐而是从若干观测资料出发﹐根据力学和几何条件定出天体的初始轨道﹐以便及时跟踪天体﹐或作为轨道改进的初值。为了计算六个轨道要素(见二体问题)﹐至少必须有三次光学观测﹐因为每…

MySQL检查约束

MySQL 检查约束&#xff08;CHECK&#xff09;可以通过 CREATE TABLE 或 ALTER TABLE 语句实现&#xff0c;根据用户实际的完整性要求来定义。它可以分别对列或表实施 CHECK 约束。 选取设置检查约束的字段 检查约束使用 CHECK 关键字&#xff0c;具体的语法格式如下&#xf…

计算机虚拟现实技术论文好写吗,虚拟现实技术的论文

虚拟现实技术的论文虚拟现实技术&#xff0c;又称灵境技术&#xff0c;是90年代为科学界和工程界所关注的技术。下面时刻小编给大家搜集的关于虚拟现实技术的科技论文&#xff0c;希望大家喜欢&#xff01;摘要&#xff1a;虚拟现实技术是一种可以创建和体验虚拟世界的计算机技…

sqlserver 微信 读取_Sql Server使用链接服务器远程取数据_sqlserver

由于最近开发的一个查询系统,基本是在其它服务器的,所以在本地服务器设计了中间,用来存从远程服务器取数据!一种方法是通过,OPENDATASOURCE来远程读取数据!SELECT *FROM OPENDATASOURCE(SQLOLEDB,Data SourceServerName;User IDMyUID;PasswordMyPasshttp://www.gaodaima…

MySQL默认约束

“默认值&#xff08;Default&#xff09;”的完整称呼是“默认值约束&#xff08;Default Constraint&#xff09;”。MySQL 默认值约束用来指定某列的默认值。 例如女性同学较多&#xff0c;性别就可以默认为“女”。如果插入一条新的记录时没有为这个字段赋值&#xff0c;那…

设计一个具有大纯时延时间的一阶惯性环节的计算机控制系统,具有一阶纯滞后环节设计.doc...

文档介绍&#xff1a;目录第一部分设计任务及方案1、设计题目及要求2、设计方案分析论证第二部分方案各模块分析1、被控对象分析2、测量元件热电阻及前置放大电路3、A/D转换器4、控制器(单片机)5、光隔驱动器第三部分数字控制器D(Z)的设计1、数字控制器D(Z)2、程序流程图设计第…

MySQL非空约束

MySQL 非空约束&#xff08;NOT NULL&#xff09;可以通过 CREATE TABLE 或 ALTER TABLE 语句实现。在表中某个列的定义后加上关键字 NOT NULL 作为限定词&#xff0c;来约束该列的取值不能为空。 非空约束&#xff08;Not Null Constraint&#xff09;指字段的值不能为空。对…

计算机操作安全协议,安全协议操作语义模型研究及应用-计算机软件与理论专业论文.docx...

安全协议操作语义模型研究及应用-计算机软件与理论专业论文摘摘 要桂林电子科技大学学位论文桂林电子科技大学学位论文摘要安全协议的操作语义模型是一种分析安全协议的新模型&#xff0c;它结合了以往多种协议 分析模型的优点&#xff0c;能分析多个协议及多个主体并行运行的协…

python怎么开发工具_为程序员和新手准备的8大Python开发工具

Python 是一种开源编程语言&#xff0c;用于 Web 编程、数据科学、人工智能和许多科学应用。学习 Python 使程序员能够专注于解决问题&#xff0c;而不是专注于语法&#xff0c;其丰富的库赋予它完成伟大任务所需的力量。1) IDLE安装 Python 时&#xff0c;默认情况下也会安装 …