【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系统下常见的数据盘分区丢失的问题以及对应的处理方法,同时提供了使用云盘的常见误区以及最佳实践,避免可能的数据丢失风险。 前提条件 已注册阿里云账…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
