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

MySQL——数据表的基本操作(三)修改数据表

        有时候,希望对表中的某些信息进行修改,这时就需要修改数据表。所谓修改数据表指的是修改数据库中已经存在的数据表结构,比如,修改表名、修改字段名、修改字段的数据类型等。在 MySQL中,修改数据表的操作都是使用 ALTER TABLE 语句,接下来,将针对修改数据表的相关操作进行详细的讲解,具体如下。

1.修改表名

        在数据库中,不同的数据表是通过表名来区分的。在 MySQL中,修改表名的基本语法格式如下所示:

ALTER TABLE 旧表名 RENAME[TO]新表名;

        在上述格式中,“旧表名”指的是修改前的表名,“新表名”指的是修改后的表名,关键字 TO 是可选的,其在 SQL语句中是否出现不会影响语句的执行。

        例如,将数据库 itcast 中的 tb_grade 表名改为 grade 表。在修改数据库表名之前,首先使用 SHOW TABLES 语句查看数据库中的所有表,执行结果如下:

mysql> show tables;
+------------------+
| Tables_in_itcast |
+------------------+
| tb_grade         |
+------------------+
1 row in set (0.01 sec)

        上述语句执行完毕后,使用 ALTER TABLE 将表名 tb_grade 修改为 grade,SQL 语句如下:

mysql>ALTER TABLE tb_grade RENAME To grade;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

        为了检测表名是否修改正确,再次使用 SHOW TABLES 语句查看数据库中的所有表,执行结果如下所示:

mysql> show tables;
+------------------+
| Tables_in_itcast |
+------------------+
| grade            |
+------------------+
1 row in set (0.00 sec)

        从上述执行结果可以看出,数据库中的 tb_grade 表名被成功修改为 grade 了。

2.修改字段名

        数据表中的字段是通过字段名来区分的。在 MySQL中,修改字段名的基本语法格式如下所示:

ALTER TABLE 表名 CHANGE 旧日字段名 新字段名 新数据类型;

        在上述格式中,“旧字段名”指的是修改前的字段名,“新字段名”指的是修改后的字段名,“新数据类型” 指的是修改后的数据类型。需要注意的是,新数据类型不能为空,即使新字段与旧字段的数据类型相同,也必须将新数据类型设置为与原来一样的数据类型。

        例如,将数据表 grade 中的 name 字段改为 username,数据类型保持不变,SQL语句如下所示:

mysql> ALTER TABLE grade CHANGE name username VARCHAR(20);
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

        为了验证字段名是否修改成功,通过 DESC 语句查看 grade 表的结构,执行结果如下所示:

mysql> desc grade;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
| grade    | float       | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

        从上述执行结果可以看出,数据表 grade 中的字段名 name 被成功修改成了username.

3.修改字段的数据类型

        修改字段的数据类型,就是将字段的数据类型转为另外一种数据类型。在MySQL中修改字段数据类型的基本语法格式如下所示:

ALTER TABLE 表名 MODIFY 字段名 数据类型;

        在上述格式中,“表名”指的是要修改字段所在的表名,“字段名”指的是要修改的字段,“数据类型”指的是修改后的字段的数据类型。
        例如,将数据表 grade 中的 id 字段的数据类型由 INT(11) 修改为 INT(20)在执行修改字段的数据类型之前,首先使用 DESC 查看 grade 表的结构,如下所示:

mysql> desc grade;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
| grade    | float       | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

        从上述执行结果可以看出,id字段的数据类型为 INT(11)。接下来,使用 ALTER语句修改id字段的数据类型,SQL语句如下所示:

mysql> ALTER TABLE grade MODIFY id INT(20);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

        为了验证 id字段的数据类型是否修改成功,再次使用 DECS 查看 grade 数据表,执行结果如下:

mysql> desc grade;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(20)     | YES  |     | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
| grade    | float       | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

        从上述结果可以看出,grade表中的[d字段的数据类型被成功修改成了INT(20)。

4.添加字段

        在创建数据表时,表中的字段就已经定义好了。但是,如果想在创建好的数据表中添加字段,则需要通过 ALTER TABLE 语句进行增加。在 MySQL 中,添加字段的基本语法格式如下所示:

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

        在上述格式中,“新字段名" 为添加字段的名称,“FIRST ”为可选参数,用于将新添加的字段设置为表的第一个字段,"AFTER" 也为可选参数,用于将新添加的字段添加到指定的 "已存在字段名" 的后面。

        例如,在数据表 grade 中添加一个没有约東条件的 INT 类型的字段 age,SQL语句如下:

ALTER TABLE grade ADD age INT (10);

        为了验证字段 age 是否添加成功,接下来,使用 DESC 语句查看数据表 grade,执行结果如下:

mysql> desc grade;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(20)     | YES  |     | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
| grade    | float       | YES  |     | NULL    |       |
| age      | int(10)     | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

        从上述执行结果可以看出,grade表中添加了一个 age 字段,并且字段的数据类型为INT(10)。

5.删除字段

        数据表创建成功后,不仅可以修改字段,还可以删除字段。所谓删除字段指的是将某个字段从表中删除。在 MySQL中,删除字段的基本语法格式如下所示:

ALTER TABLE 表名 DROP 字段名;

        在上述格式中,“字段名”指的是要删除的字段的名称,例如,删除 grade 表中的 age 字段,SQL 语句如下:

mysql> ALTER TABLE grade DROP age;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

        为了验证 age 字段是否删除,接下来,使用 DESC 语句查看 grade表,执行结果如下:

mysql> desc grade;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(20)     | YES  |     | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
| grade    | float       | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

        从上述执行结果可以看出,grade表中已经不存在 age 字段,说明 age 字段被成功删除了。

6.修改字段的排列位置

        创建数据表的数据,字段在表中的位置已经确定了。但要修改字段在表中的排列位置,则需要使用 ALTER TABLE语句来处理。在 MySQL中,修改字段排列位置的基本语法格式如下:

ALTER TABLE 表名 MODIFY 字段名1 数据类型 FIRST|AFTER 字段名 2

        在上述格式中,“字段名1”指的是修改位置的字段,“数据类型”指的是字段1的数据类型,“FIRST”为可选参数,的是将字段1修改为表的第一个字段,“AFTER 字段名2是将字段1插入到字段2的后面。
        例如,将数据表 grade 的 username 字段修改为表的第一个字段,执行的 SQL语句如下:

mysql> ALTER TABLE grade MODIFY username VARCHAR(20) FIRST;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

        为了验证 username 字段是否修改为表的第一个字段,接下来,使用 DESC 语句查看数据表,执行结果如下:

mysql> desc grade;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| username | varchar(20) | YES  |     | NULL    |       |
| id       | int(20)     | YES  |     | NULL    |       |
| grade    | float       | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

        从上述执行结果可以看出,username字段为表的第一个字段,说明 username 字段的排列位置被成功修改了。
        例如,将数据表 grade 的 id 字段插入到 grade 字段后面,执行的 SQL 语句如下:

mysql> ALTER TABLE grade MODIFY id INT(20) AFTER grade;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

        为了验证 id 字段是否插入到 grade 字段后面,接下来,使用 DESC 语句查看数据表执行结果如下:

mysql> desc grade;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| username | varchar(20) | YES  |     | NULL    |       |
| grade    | float       | YES  |     | NULL    |       |
| id       | int(20)     | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

        从上述结果可以看出,id 字段位于 grade 字段后面,说明 id 字段的排列位置被成功修改了。
 

相关文章:

MySQL——数据表的基本操作(三)修改数据表

有时候,希望对表中的某些信息进行修改,这时就需要修改数据表。所谓修改数据表指的是修改数据库中已经存在的数据表结构,比如,修改表名、修改字段名、修改字段的数据类型等。在 MySQL中,修改数据表的操作都是使用 ALTER…...

医学图像分割的基准:TransUnet(用于医学图像分割的Transformer编码器)器官分割

1、 TransUnet 介绍 TransUnet是一种用于医学图像分割的深度学习模型。它是基于Transformer模型的图像分割方法,由AI研究公司Hugging Face在2021年提出。 医学图像分割是一项重要的任务,旨在将医学图像中的不同结构和区域分离出来,以便医生可…...

java-swing编写学生成绩查询管理系统

本文是本人大二上实训项目-学生成绩查询管理系统,采用本项目使用Java、MySQL技术。界面框架由Java Swing搭建,用JDBC实现Java与MySQL的连接。 本项目适合初学java和mysql的同学,来做一些小项目来提升自己,因为兴趣所以想要做去尝…...

volatile浅解

volatile修饰的变量有两个特点 线程中修改了自己工作内存中的副本后,立即将其刷新到主内存工作内存中每次读取共享变量时,都会去主内存中重新读取,然后拷贝到工作内存 内存 -> CPU Cache -> CPU 如果没有volatile那么就会继续读取缓存…...

世媒讯带您了解什么是媒体邀约

什么是媒体邀约?其实媒体邀约是一种公关策略,旨在通过邀请媒体记者和编辑参加特定的活动、发布会或其他重要事件,以确保这些活动能够得到广泛的报道和关注。通过这种方式,企业和组织希望能够传达重要信息,提高品牌知名…...

[Kimi 笔记]“面向搜索引擎”

"面向搜索引擎"(Search Engine-Oriented,SEO-Oriented 或 SEO-Friendly)通常指的是在设计和开发网站时,采取一系列措施来优化网站内容和结构,以便提高网站在搜索引擎结果页面(SERP)中…...

如何在亚马逊云科技AWS上利用LoRA高效微调AI大模型减少预测偏差

简介: 小李哥将继续每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿AI技术解决方案,帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWS AI最佳实践,并应用到自己的日常工作里。 在机器学习和人工智能领域,生成偏差…...

订单定时状态处理业务(SpringTask)

文章目录 概要整体架构流程技术细节小结 概要 订单定时状态处理通常涉及到对订单状态进行定期检查,并根据订单的状态自动执行某些操作,比如关闭未支付的订单、自动确认收货等. 需求分析以及接口设计 需求分析 用户下单后可能存在的情况: …...

STM32 | ADC+RS485(第十天)

点击上方"蓝字"关注我们 01、ADC概述 ADC, Analog-to-Digital Converter的缩写,指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。真实世界的模拟信号.例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的…...

python打包成能够在mac里面运行的程序

要将你的PyQt5应用程序打包成可以在macOS上运行的独立应用程序,可以使用工具如PyInstaller或py2app。下面是使用py2app的详细步骤,因为它是macOS上专用的打包工具,并且更好地支持PyQt5。 1. 安装py2app 首先,确保你的macOS系统上…...

基于FPGA的数字信号处理(20)--半减器和全减器

目录 1、前言 2、半减器 3、全减器 4、减法器 文章总目录点这里:《基于FPGA的数字信号处理》专栏的导航与说明 1、前言 既然有半加器和全加器,那自然也有半减器和全减器了。尽管在电路中减法的实现基本都是 补码 加法 的形式,但是正所谓…...

Python:单引号,双引号,三引号的区别

在Python中,单引号()、双引号(")和三引号( 或 """)都可以用来定义字符串,但它们之间有一些区别: 单引号()和双引号&#xf…...

电子电气架构 ---SOMEIP/SD初入门

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…...

一些数学基础概念

一些数学基础概念 概率密度函数(PDF) 概率密度函数(Probability Density Function,简称 PDF)是描述连续随机变量的概率分布的一种函数。它用来表示随机变量在各个取值区间内的概率密度。 1. 定义 对于一个连续随机变量 ( X ),…...

责任有限公司的一般组织结构

责任有限公司(有限责任公司,LLC)的组织结构通常是为了确保公司运营的有效性和管理的透明度。以下是一般责任有限公司的组织结构及其主要组成部分: 1. 股东(Shareholders) 职责和角色 所有者:…...

Leetcode3227. 字符串元音游戏

Every day a Leetcode 题目来源:3227. 字符串元音游戏 解法1:博弈论 分类讨论: 如果 s 不包含任何元音,小红输。如果 s 包含奇数个元音,小红可以直接把整个 s 移除,小红赢。如果 s 包含正偶数个元音&am…...

网络流量分析在运维管理中的重要性与实施策略

在运维管理工作中,网络流量分析是一项不可或缺的技术手段。通过对网络流量的深入剖析,运维团队能够更全面地了解网络状态,及时发现潜在问题,优化网络性能,从而确保企业网络的稳定与高效运行。本文将详细探讨网络流量分…...

通信原理实验——PCM编译码

PCM编译码 实验目的 理解PCM编译码原理及PCM编译码性能熟悉PCM编译码专用集成芯片的功能和使用方法及各种时钟关系熟悉语音数字化技术的主要指标及测量方法 主要仪器设备及软件 硬件:多功能实验箱、示波器、导线 软件:无 实验原理 1. 抽样信号的量…...

matlab的strel()函数的使用方法(OK)

这个函数 是形态学的结构元素 使用方法如下 SE strel(nhood) SE strel("diamond",r) SE strel("disk",r) SE strel("disk",r,n) SE strel("octagon",r) SE strel("line",len,deg) SE strel("rectangle",…...

Linux:Linux权限解析

一、Linux下的用户分类 在Linux下,有两种用户,一种是超级用户,一种是普通用户 超级用户:可以再linux系统下做任何事情,不受权限限制(制定规则,但不需要遵守规则) 普通用户&#xff1…...

vscode里如何用git

打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: ​onCreate()​​ ​调用时机​:Activity 首次创建时调用。​…...

【C++进阶篇】智能指针

C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...