当前位置: 首页 > news >正文

十、修改数据表 alter

MySQL 中 alter 语句更新表定义即改变原有表的结构。

1、修改数据表名或者修改数据表字段

在已有的表中添加、修改或删除列字段,创建或者取消索引,更改字段类型,重命名字段或者表名等。

 语法格式:

alter table 表名 [修改选项]

修改选项语法如下:

1)添加一个新字段

可以指定添加到哪个字段之后。

add 字段名 类型(长度) [COMMENT 注释] [约束] [after 已经存在的字段名]

例如:

MariaDB [test]> show columns from w1;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | YES  |     | NULL    |       |
| addr  | char(4) | YES  |     | NULL    |       |
| name  | char(4) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
3 rows in set (0.00 sec)MariaDB [test]> alter table w1 add num int(4) unique after name;
Query OK, 3 rows affected (0.04 sec)               
Records: 3  Duplicates: 0  Warnings: 0

2)删除字段

drop 字段1,drop 字段2,...;

删除多个字段得写多个drop,每个字段之间用逗号(,)隔开

例如:

MariaDB [test]> alter table w1 drop name,drop num;
Query OK, 3 rows affected (0.07 sec)               
Records: 3  Duplicates: 0  Warnings: 0

3)只修改字段的数据类型和属性

不能修改字段名

modify 字段 新数据类型 约束条件;

例如:

MariaDB [test]> alter table w1 add name int(4) not null ;
Query OK, 3 rows affected (0.06 sec)               
Records: 3  Duplicates: 0  Warnings: 0MariaDB [test]> desc w1;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | YES  |     | NULL    |       |
| addr  | char(4) | YES  |     | NULL    |       |
| num   | char(4) | YES  |     | NULL    |       |
| name  | int(4)  | NO   |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
4 rows in set (0.00 sec)MariaDB [test]> alter table w1 modify name char(4) ;
Query OK, 3 rows affected (0.08 sec)               
Records: 3  Duplicates: 0  Warnings: 0MariaDB [test]> desc w1;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | YES  |     | NULL    |       |
| addr  | char(4) | YES  |     | NULL    |       |
| num   | char(4) | YES  |     | NULL    |       |
| name  | char(4) | YES  |     | NULL    |       |                -- null在定义数据时为默认设置
+-------+---------+------+-----+---------+-------+
4 rows in set (0.00 sec)

4)修改字段名和数据类型

可以修改字段名和数据类型

CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];

注意: 修改字段名必须在新字段名后面添加数据类型,就算数据类型还是原先的类型,也得再写一遍,无数据类型则修改不成功,报错。

MariaDB [test]> alter table w1 change name Name;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1MariaDB [test]> alter table w1 change name Name char(4);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

5)修改表名称

rename  [to]  新的表名;

例如:

MariaDB [test]> alter table w1 rename test1;
Query OK, 0 rows affected (0.02 sec)MariaDB [test]> alter table  test1 rename to w1;
Query OK, 0 rows affected (0.02 sec)

注: to 为可选参数,使用与否不影响结果

6)修改字段默认值

alter 字段 set default 值;    -- 设置字段默认值
alter 字段 drop default-- 删除默认值

注:若字段有默认值,需要先删除默认值,再进行设置新值。

例如:

MariaDB [test]> alter table test1 alter Name drop default;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0MariaDB [test]> alter table test1 alter Name set default 'shan';
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

2、另一种修改表名的语句

 

rename table 原表名1 to 新表名1,原表名1 to 新表名1,原表名2 to 新表名2,...;

 

例如:

MariaDB [test]> rename table w1 to test1;
Query OK, 0 rows affected (0.02 sec)

3、删除表

drop table 表名;

 

http://www.rkmt.cn/news/48469.html

相关文章:

  • 2025年微波干燥机优质厂家权威推荐榜单:微波加热设备/微波烘干机/微波干燥设备源头厂家精选
  • 安装WIndows11时绕过微软账户强制要求,使用本地账户登录
  • 4、管理用户
  • 字节新动作!豆包编程模型 Doubao-Seed-Code 正式亮相,AI 写项目时代来了
  • 深入解析:Django与Tornado框架深度对比:从MVCMTV到高并发架构设计
  • 测试岗位所需的工作能力
  • 3、分组查询 GROUP BY
  • 2025年PVC塑料桥架批发厂家权威推荐榜单:复合材料桥架/玻璃钢桥架/聚氨酯桥架源头厂家精选
  • 2025年节能环保过滤器制造厂权威推荐榜单:柴油节能减排/重卡节能环保/锅炉过滤器源头厂家精选
  • AI知识库搭建新纪元:5分钟构建企业智慧大脑
  • 2025年阜阳民事纠纷律师排行榜Top10:专业选择指南
  • 2025年阜阳民事纠纷律师综合实力排行榜前十强
  • 2025年广东ISO体系认证公司权威推荐榜单:ISO质量认证/绿色建材产品认证/有机食品认证服务机构精选
  • 详细介绍:【动态规划】斐波那契数列模型
  • 2025年火源预警摄像机供应商权威推荐:森林防火前端摄像机/热源监测摄像机/林火智能识别摄像机源头厂家精选
  • 当你还困于付费文章选择时,他们已在阿卡德平台开启知识变现新篇章
  • 2025年手动升降柱批发厂家权威推荐榜单:液压升降柱/电动升降柱/全自动升降柱源头厂家精选
  • 唤醒手腕2025年最新钉钉开放强大的平台钉钉机器人stream搭建部署详细教程(更新中)
  • 2025开源能源管理系统标杆:MyEMS 特性解析、社区生态与全场景落地实践
  • 电脑往小米手机里快速传输文件方法
  • 告别人工干预!C# 轻量级上位机自动联动 MES 与视觉检测
  • react 表单管理
  • 2025 年 11 月靶材厂家推荐排行榜,溅射/磁控溅射/旋转靶材,ITO/半导体/光学镀膜,陶瓷/金属/钛/铝/铜/钨/钼/钽/硅/合金/稀土靶材公司推荐
  • 2025 年 11 月滚珠花键厂家推荐排行榜,圆筒形滚珠花键,法兰型滚珠花键,新型滚珠花键公司推荐,专业选型与高效传动解决方案
  • MyEMS:数据驱动的全生命周期能源管控系统,开启智能赋能双碳新时代
  • 2025年AI数字人获客公司权威推荐榜单:AI公域获客/AI矩阵获客/AI全域获客源头公司精选
  • 模式识别与机器学习课程笔记(3):统计决策中的经典学习手段
  • linux 云主机 pip 安装配置 letsencrypt certbot 为多个域名生成免费 https 证书实录 - Leone
  • 示波器测电流:正、负峰值之差≠电流大小
  • 类私有属性