【MySQL】对表结构进行增删查改的操作
表的操作
- 前言
- 正式开始
- 建表
- 查看表
- show tables;
- desc xxx;
- show create table xxx;
- 修改表
- 修改表名 rename to
- 对表结构进行修改
- 新增一个列 add
- 对指定列的属性做修改 modify
- 修改列名 change
- 删除某列 drop
- 删除表 drop

前言
前一篇讲了库相关的操作,如果你不太懂,可以先看看上一篇:【MySQL】库的相关操作 + 库的备份和还原
本篇主要讲解对表的增删查改工作。
正式开始
建表
先给出这张表:

先来创建一张表让你看看,首先创建一个数据库:

前面博客讲过,创建一个数据库就是在配置文件中的datadir目录下创建一个同名目录:

还会有一个文件来保存其字符集和校验规则的:

这里就不再说为啥了,不知道为啥的同学可以看这篇:数据库基本概念
在db_test中创建一张表,我这里直接给出复杂的:

来解释解释。
建表的时候列的列名和列类型都放在()中,列名在前,列类型在后,列类型后面跟的comment就像平时写代码的注释一样。各个列之间用,间隔,注意最后一列后面不要加,。
charset就是字符集,collate就是校验规则,engine就是存储引擎。
字符集、校验规则、存储引擎在默认情况下都是有的,字符集和校验规则如果不指明就会用数据库的默认字符集和校验规则,存储引擎在配置文件中就已经搞好了。
创建数据库的时候如果不指明数据库的字符集和校验规则就会直接用配置文件中的字符集和其对应的默认校验规则。
关于配置文件我刚刚给的那篇博客中也有,这里再给出来:

这里我的配置文件中字符集为utf8,默认存储引擎为InnoDB。
不过我上面创建表的时候指明了字符集、校验规则、默认存储引擎,所以就会直接按照我给出来的:

字符集为utf8,校验规则为utf8_general_ci,存储引擎为MyIsam。
存储引擎不同会有什么区别呢?
当前这个表创建好这个表之后会多出三个文件:

再来创建一个新的,存储引擎用InnoDB:

注:上面的完全是可以写在一行的,不过这样写起来更美观。
都是默认的,字符集utf8,校验规则utf8_general_ci,存储引擎InnoDB。
再看多了几个文件:

可以看到新增了两个文件。
第一个user用的是MyIsam,创建出了三个文件。
第二个用的是InnoDB,创建出了两个文件。
不同存储引擎对应磁盘文件个数是不一样的,MyIsam是3个,InnoDB是2个,后缀MY开头的就是MyIsam的文件,D表示Data,MYD后缀就MyIsam的数据文件,MYI是MyIsam的索引文件。后缀i开头的是InnoDB的文件,InnoDB是将数据和索引放在一块存的,所以文件个数不一样。后续我讲索引的博客会详谈这一点。
这里最重要的是知道create table可以创建表就行。
后面还可以加上if not exists:

因为前面有user2,所以不会成功的,里面的字段还是不变:

这里desc是查看表的一个操作,等会就说。
查看表
首先用select database()来查看你现在选中的是哪一个数据库。

这里就是我刚刚创建出来的数据库。
show tables;
show tables可以查看你在这个数据库中创建的所有表:

desc xxx;
decs xxx; 可以查看xxx表的详细信息:

这里面只要知道前面两列的Field、Type(其中的varchar这样的类型在下一篇讲类型的时候说)就行,后面的四个字段Null、Key、Default、Extra我也是会在后面索引的博客中再细说。

不过这里还有一些东西看不到,比如说注释、字符集、校验规则啥的看不到,想要看到的话用:
show create table xxx;
直接用show create table xxx; 看起来有点难受:

可以将;改成\G:

这样可以在现实的时候去掉一些不必要的字段。
上面的 show create table xxx; 可以看到创建表时候的详细信息,所以每个表的列字段属性,查看表的详细信息,现在都能看到了,但有个小问题,当时创建表的时候可不是这里 show create table xxx;显示出来的这样写的,因为mysqld会对你的指令做词法语法分析,可能你刚开始写的不太标准,它就会给你转化成更标准的写法。既然能查到,肯定也是将这些操作记录下了。
修改表
在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。
都是这样的格式:
alter table 表名 操作 ...
修改表名 rename to
把刚刚的user改成User:

其实不用加to也可以:

对应目录下文件名也会被修改:

对表结构进行修改
来往其中插入点数据:

新增一个列 add
新增一个列,假如说用来保存用户的一张图片的路径。(假如说图片在系统的某个路径下,现在不想在数据库中保存图片,而是保存图片的路径,所以新增一个列来保存路径)。

add就是新增一个列,其中after表示插入到哪一列的后面。
其实默认就是在最后一列插入:

指定:

注意不能插入重名的:

再来查看一下User的数据:

其中新增列的数据为空。在这个列新增之前没有这个属性,所以默认就是空,对原来的字段是不影响的。
show create:

可以看到新增了一列。
对指定列的属性做修改 modify
还是User:

比如说我要对name这一列做修改,将varchar的长度由20改为60。

这里将长度改长,并不会影响表中的数据:

再show一下:

可以看到注释丢了,这里改不是该一部分,而是将原来的属性字段全部覆盖掉。
修改列名 change

注意这里改列名和改表名要去分开,不要搞混了。
前面的rename to进行修改表名字的时候是原名在rename to前,新名在rename to后。
这里是都在change后面,原名后面跟新名。
注意不能修改成重名的:

删除某列 drop
还是User:

删掉密码那一列:

select:

可以看到整列的数据都没了。
注意,删除某一列,这一列的数据都会丢失,所以删除的时候一定要谨慎,没用的再删,或者备份一下。
到这里就完了,修改表结构就这三个操作,增删改,没有查,查是用desc、select、show create table查看整个表。
删除表 drop
直接给例子了:

记住,修改表和删除表轻易不要做,数据库本身在业务中是最靠近底层的,底层的东西一边,上层的东西就要跟着变,非常麻烦,表中的类属性、名称等的改变会直接决定上层要不要变,数据库名字一改,那么用到这个数据库的软件就都要改,如果出现开发到一半要改表结构,那上层的逻辑就会受影响。前期在开发前一定要把这些东西讨论清楚。
前面提到了DDL(定义)、DML(操纵)、DCL(控制),那么本篇中表的操作属于哪一个呢?
注意,表的操作都是属于定义表结构的范畴,所以是DDL。
建库、建表都是对库、表的结构做操作,并没有对表中的内容做操作,所以都是DDL。
关于表的操作,该讲的都讲了,后续会对本篇中的一些坑做补充。
到此结束。。。
相关文章:
【MySQL】对表结构进行增删查改的操作
表的操作 前言正式开始建表查看表show tables;desc xxx;show create table xxx; 修改表修改表名 rename to对表结构进行修改新增一个列 add 对指定列的属性做修改 modify修改列名 change 删除某列 drop 删除表 drop 前言 前一篇讲了库相关的操作,如果你不太懂&…...
Hadoop原理,HDFS架构,MapReduce原理
Hadoop原理,HDFS架构,MapReduce原理 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,…...
【Spring Boot】035-Spring Boot 整合 MyBatis Plus
【Spring Boot】035-Spring Boot 整合 MyBatis Plus 【Spring Boot】010-Spring Boot整合Mybatis https://blog.csdn.net/qq_29689343/article/details/108621835 文章目录 【Spring Boot】035-Spring Boot 整合 MyBatis Plus一、MyBatis Plus 概述1、简介2、特性3、结构图4、相…...
Hafnium之强制性的接口
安全之安全(security)博客目录导读 目录 一、FFA_VERSION 二、FFA_FEATURES 三、FFA_RXTX_MAP/FFA_RXTX_UNMAP 四、FFA_PARTITION_INFO_GET 五、FFA_PARTITION_INFO_GET_REGS...
计算机视觉:使用opencv实现银行卡号识别
1 概述 1.1 opencv介绍 OpenCV是Open Source Computer Vision Library(开源计算机视觉库)的简称,由Intel公司在1999年提出建立,现在由Willow Garage提供运行支持,它是一个高度开源发行的计算机视觉库,可以…...
【Proteus仿真】【Arduino单片机】简易计算器设计
文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使用PCF8574、LCD1602液晶、4*4矩阵键盘等。 主要功能: 系统运行后,操作矩阵按键可实现简单四则运算。 二、软件设计 /* …...
pychon/PIL/opencv/json学习过程中遇到的问题
1. 使用PIL.Image读取图片 注意:pytorch中对图像预处理是transforms的输入必须是PIL格式的文件,使用cv2读取的图片就按照第二条的代码处理(3通道合并、归一化处理) from PIL import Image img Image.open("test1.jpg"…...
YOLO目标检测——番茄数据集下载分享【含对应voc、coco和yolo三种格式标签】
实际项目应用:番茄检测数据集说明:番茄目标检测数据集,真实场景的高质量图片数据,数据场景丰富标签说明:使用lableimg标注软件标注,标注框质量高,含voc(xml)、coco(json)和yolo(txt)三种格式标签…...
(JAVA)线程
线程的创建 方式一:Thread public class dome {public static void main(String[] args) {MyThread myThread new MyThread();myThread.start();for(int i1;i<5;i){System.out.println("主线程"i);}} }public class MyThread extends Thread{Overri…...
【深度学习环境】windows安装 NVIDIA Docker
摘要 不要安装 Docker Desktop!我们将在 Ubuntu 中自行安装 Docker。 请安装 Windows 10 Insider Build 或 Windows 11 (Beta也行)。(稳定发行版无法在 WSL 2 中使用 GPU) 请安装 WSL 2 w/Ubuntu 20.04 或同等版本。…...
【微信小程序】自定义组件(三)
自定义组件 插槽1、什么是插槽2、单个插槽3、定义多个插槽 父子组件之间的通信1、父子组件之间的通信的3种方式2、事件绑定3、behaviors 插槽 1、什么是插槽 在自定义组件的wxml结构中,可以提供一个<solot> 节点(插槽),用…...
Python语言:经典案例分析讲解2
例题1:文件的操作 例题2:调用函数求偶数之和 例题3:调用函数并使用递归的方法求斐波那契数前N项之和 题1: 以只写的模式打开文件test.txt,写入"Python",关闭文件。 代码如下: f open("E:/…...
dbeaver连接别人的数据库没有表
1.概念 非缺省的数据库: 通常是指在一个数据库管理系统(DBMS)中,除了系统默认创建的数据库之外的其他用户创建或自定义的数据库。许多数据库系统在安装后会创建一个默认数据库,例如MySQL中的mysql数据库,…...
EXIT(1)
EXTI介绍 EXTI是片上外设 NVIC是cpu内的外设 回忆起之前的GPIO和AFIO 我们是如何检测按键按下的 我们是一直用while循环读取IDR寄存器的对应位置的值 一直检测判断按键是否被按下 那么是否有第二种方式检测按键是否被按下了呢? 通过EXTI 当EXTI检测到按键的电平发生…...
Qt信号量用于对共享资源进行同步
定义信号量与缓冲区: const int BufferSize 8; int buffer1[BufferSize]; int buffer2[BufferSize]; int curBuf1; //当前正在写入的Bufferint bufNo0; //采集的缓冲区序号quint8 counter0;//数据生成器QSemaphore emptyBufs(2);//信号量:空的缓冲区…...
在报错中学python something
这里写目录标题 动手学深度学习pandas完整代码数据处理TypeError: can only concatenate str (not "int") to str(fillna填补缺失值) 创建文件夹学习这个数据分组get_dummies实现one hot encode 动手学深度学习pandas完整代码 import osimpor…...
如何调用 DBMS_DISKGROUP 对 ASM 文件进行随机读取
目录 一、概述 二、实现思路与注意点 三、Java Demo 1、直接调用 2、读写异步 一、概述 对于 Oracle Rac 环境下,数据文件大多默认存放在 ASM 共享存储上,当我们需要读取 ASM 上存储的数据文件时可以使用 Oracle 提供的一些方法,比如 ASMCMD CP。但是,对于一些备份场景…...
UART学习
uart.c #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_uart.h" // UART4_TX : PG11 AF6 // UART4_RX : PB2 AF8 void __uart_init() {// GPIOB2 设置为复用功能GPIOB->MODER & (~(0x3 << 4));GPIOB->MODER | (0x2 << 4);G…...
洗地机哪个牌子最好用?洗地机品牌排行榜
近年来,洗地机相当热门,洗地机结合了扫地拖地吸地为一体的多功能清洁工具,让我们告别了传统方式打扫卫生,让我们清洁不再费劲,可是市面上的洗地机五花八门,怎么挑选到一个洗地机也是一个问题,下…...
国际阿里云:Windows实例中数据恢复教程!!!
在处理磁盘相关问题时,您可能会碰到操作系统中数据盘分区丢失的情况。本文介绍了Windows系统下常见的数据盘分区丢失的问题以及对应的处理方法,同时提供了使用云盘的常见误区以及最佳实践,避免可能的数据丢失风险。 前提条件 已注册阿里云账…...
MSPM0G3507开发实战:Keil环境下多款仿真器(CMSIS-DAP/ST-Link/J-Link)与UniFlash下载全攻略
1. 为什么选择Keil开发MSPM0G3507? 对于嵌入式开发者来说,选择一款趁手的开发环境往往能事半功倍。我在多个项目中测试过不同开发环境后,发现Keil MDK在MSPM0G3507开发中确实有不少优势。首先是生态支持完善,TI官方提供的SDK和示例…...
释放AI潜能:在快马平台利用多模型协作构建高级任务规划Agent
今天想和大家分享一个特别有意思的实践:如何利用InsCode(快马)平台的多AI模型协作能力,快速搭建一个能处理复杂任务的智能规划Agent。这个项目特别适合想体验AI辅助开发的朋友,整个过程不需要复杂的环境配置,直接在网页上就能完成…...
VutronMusic:重新定义跨平台音乐体验的全能播放器
VutronMusic:重新定义跨平台音乐体验的全能播放器 【免费下载链接】VutronMusic 高颜值的第三方网易云播放器;支持流媒体音乐,如navidrome、jellyfin、emby;支持本地音乐播放、离线歌单、逐字歌词、桌面歌词、Touch Bar歌词、Mac状…...
DepotDownloader核心功能解析:从App下载到工作坊内容获取的完整指南
DepotDownloader核心功能解析:从App下载到工作坊内容获取的完整指南 【免费下载链接】DepotDownloader Steam depot downloader utilizing the SteamKit2 library. 项目地址: https://gitcode.com/gh_mirrors/de/DepotDownloader DepotDownloader是一款功能强…...
ai辅助arm7开发:向快马描述需求,智能生成pwm电机控制代码与方案
最近在做一个基于ARM7的直流电机控制项目,需要用到PWM来控制电机转速。作为一个嵌入式开发新手,对定时器配置这块一直不太熟悉。好在发现了InsCode(快马)平台,它集成的AI辅助功能帮我快速解决了这个问题。 PWM基础配置 ARM7的定时器模块功能…...
智能游戏助手:重新定义MOBA类游戏体验
智能游戏助手:重新定义MOBA类游戏体验 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 在MOBA类游戏的激烈对抗中,每一秒…...
OpenClaw隐私保护机制:Qwen3.5-9B本地化处理法律文件
OpenClaw隐私保护机制:Qwen3.5-9B本地化处理法律文件 1. 为什么律师事务所需要本地化AI方案 上个月,我帮一家本地律所部署了OpenClawQwen3.5-9B的解决方案。他们的核心诉求很简单:处理客户合同时,既要实现自动化识别关键条款&am…...
零基础5分钟上手:Wan2.2-T2V-A5B文本生成视频保姆级教程
零基础5分钟上手:Wan2.2-T2V-A5B文本生成视频保姆级教程 1. 为什么选择Wan2.2-T2V-A5B 如果你正在寻找一个快速、轻量级的文本生成视频工具,Wan2.2-T2V-A5B绝对值得考虑。这个50亿参数的模型专为快速内容创作优化,能在普通显卡上实现秒级出…...
ofa_image-caption镜像免配置:内置CUDA 11.8+cuDNN 8.6预编译环境
ofa_image-caption镜像免配置:内置CUDA 11.8cuDNN 8.6预编译环境 你是不是也遇到过这种情况?看到一张有趣的图片,想为它配上一段精准的描述,却一时词穷。或者,手头有一大堆产品图片,需要批量生成英文介绍&…...
如何让老照片焕发新生?图像超分技术的4大突破与分辨率增强实践
如何让老照片焕发新生?图像超分技术的4大突破与分辨率增强实践 【免费下载链接】SwinIR SwinIR: Image Restoration Using Swin Transformer (official repository) 项目地址: https://gitcode.com/gh_mirrors/sw/SwinIR 在数字时代,我们常常遇到…...
