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

MySQL表的操作

文章目录:

  • 创建表
  • 查看表结构
  • 修改表
  • 删除表

在使用 MySQL 数据库时,操作表是最基本和最重要的任务之一。表是 MySQL 数据库的核心对象,用于存储数据,并且可以通过 SQL 语句进行查询、插入、更新和删除等操作。因此,熟练掌握 MySQL 表的操作是非常必要的。接下来我们将介绍常见的表的操作。

创建表

要在 MySQL 数据库中创建表,可以使用以下 SQL 语句:

CREATE TABLE table_name(column1 datatype [optional_parameters],column2 datatype [optional_parameters],...
)[CHARSET=charset_name] [COLLATE=collation_name] [ENGINE=engine_name];

说明:

  • column1、column2 :要在表中创建的列名称。
  • optional_parameters:列的可选参数,例如 NOT NULL 等。
  • CHARSET -> 字符集格式存储、COLLATE -> 字符集校验规则、ENGINE -> 指定存储引擎。若没有指定这些参数,则以所在数据库的字符集为准。
  • datatype :表示列的类型。

示例:下面是一个SQL语句,用于创建一个名为 students 的表,其中包含 id、name、birthday 三个列,其中 id 为主键,数据类型分别为 int、varchar、date:

在这里插入图片描述

说明:不同的存储引擎,创建的表不一样。

students 表存储引擎是 MyISAM,在数据库目录中有三个文件,分别是:

  • students.frm:表结构
  • students.MYD:表数据
  • students.MYI:表索引

在这里插入图片描述

查看表结构

MySQL 查看表结构的语句如下:

DESC 表名称;

示例:DESE 语句可以查看表的结构和字段信息,如下所示:

在这里插入图片描述

修改表

MySQL 中修改表的语句是 ALTER TABLE。该语句可以用于添加、修改或删除表的列、约束、索引等。下面是常用的几种修改表结构的语句:

接下来,我们使用 students 表来对各操作进行演示:

在这里插入图片描述

添加列

MySQL 数据库表中添加列,可以使用 ALTER TABLE 语句,下列是添加列的语法和说明:

ALTER TABLE table_name ADD column_name column_definition [FIRST|AFTER existing_column];

说明:

  • table_name:要添加列的表名称。
  • column_name:要添加的列名称。
  • column_definition:新增列的属性,包括数据类型、长度、约束等。
  • 可选参数:FIRST -> 将新增列放在第一列,AFTER existing_column -> 将新增列放在指定列之后。

示例:在 students 表中添加一个名为 phoneNum 的列,数据类型为 char(12),如下所示:

在这里插入图片描述

若不使用可选参数进行指定,则新增列在表的最后。

注意:在修改现有表时,要确保新增列与现有列不会产生冲突或重复。

修改列

MySQL 数据库表中修改列,可以使用 ALTER TABLE 语句,以下是修改列的语法及说明:

ALTER TABLE table_name MODIFY column_name column_definition;

示例1:将 students 表中的 phoneNum 列的 char(12) 修改为 char(14),并将其属性改为 unique

在这里插入图片描述

示例2:将 students 中的 id 列名修改为 stuid,并保持其它属性不变:

在这里插入图片描述

修改表名

MySQL 中修改表名,可以使用以下两种语句:

ALTER TABLE old_table_name rename new_table_name;RENAME TABLE old_table_name TO new_table name;

说明:

  • old_table_name:要修改表的旧名称。
  • new_table_name:新的表名称。

例如:将 students 表名修改为 student ,如下所示:

在这里插入图片描述

使用 RENAME TABLE old_table_name TO new_table name; 语句将表名更改回来:

在这里插入图片描述

注意:在修改表名时,需要确保新表名在数据库中不存在,否则会出现错误。此外,修改表明可能会影响到引用该表的其它表或程序,因此在修改表名之前应该慎重考虑,并确保相应的更改已经进行了。一般情况下不要轻易的更改表名,应该在设计表的时候就考虑清楚。

删除列

MySQL 数据库表中删除列,可以使用 ALTER TABLE 语句,以下是删除列的语法:

ALTER TABLE table_name DROP column_name;

示例:删除 students 表中的 phoneNum 列:

在这里插入图片描述

注意:在删除列之前,应该确保该列中的数据不再需要,并且该列不包含与表的主键或其它外键关联的数据。在删除列之前,也应该考虑备份数据以避免数据意外丢失。

修改主键

在 MySQL 中,修改主键的语句分为两步:1、删除原有的主键约束;2、添加新的主键约束。

删除原有的主键约束使用以下语句:

ALTER TABLE table_name DROP PRIMARY KEY;

添加新的主键约束使用以下语句:

ALTER TABLE table_name ADD PRIMARY KEY(column_name);

需要注意的是,修改主键约束可能会影响到表的数据完整性,所以应该谨慎操作。同时修改主键约束需要满足一些条件,例如被修改的列必须唯一且不允许为空,否则报错。另外,请确保新的主键不包含任何重复的值,否则修改将失败。

删除表

MySQL 中,可以使用 DROP TABLE 命令来删除表,具体语法如下:

DROP [TEMPOPARY] TABLE [IF EXISTS] table_name;

说明:

  • TEMPOPARY 关键字用于在删除表时指定该表为临时表,它表示只在当前会话中存在的表,当会话结束时,临时表将被自动删除。
  • 在删除表时加上 TEMPOPARY 关键字,表示删除的是当前会话中创建的临时表,而不是持久性的表。
  • table_name 是要删除的表名。IF EXISTS 是可选参数,如果指定了该参数,表示在删除表之前先检查表是否存在,如果不存在不会报错,直接退出。如果存在,则直接进行删除。

示例:删除数据库中的表 t1

在这里插入图片描述

相关文章:

MySQL表的操作

文章目录: 创建表查看表结构修改表删除表 在使用 MySQL 数据库时,操作表是最基本和最重要的任务之一。表是 MySQL 数据库的核心对象,用于存储数据,并且可以通过 SQL 语句进行查询、插入、更新和删除等操作。因此,熟练掌…...

MySQL索引数据结构入门

之前松哥写过一个 MySQL 系列,但是当时是基于 MySQL5.7 的,最近有空在看 MySQL8 的文档,发现和 MySQL5.7 相比还是有不少变化,同时 MySQL 又是小伙伴们在面试时一个非常重要的知识点,因此松哥打算最近再抽空和小伙伴们…...

《低代码PaaS驱动集团企业数字化创新白皮书》-低代码PaaS应对行业集团企业数字化应用的需求(制造)

低代码PaaS应对行业集团企业数字化应用的需求 制造 制造业是我国重要的经济支柱之一,随着经济结构的调整,产业链的转移,劳动密集型制造业的利润已大不如前。在数字经济的大环境下,诸多制造业企业选择数字化转型,通过…...

深度学习实战26-(Pytorch)搭建TextCNN实现多标签文本分类的任务

大家好,我是微学AI,今天给大家介绍一下深度学习实战26-(Pytorch)搭建TextCNN实现多标签文本分类的任务,TextCNN是一种用于文本分类的深度学习模型,它基于卷积神经网络(Convolutional Neural Networks, CNN)实现。TextCNN的主要思想…...

还在精神内耗?还在焦虑?可以看看这个

作为一个即将毕业的本科生,总是会不由自主的焦虑。因为不考研,所以显得和同学们格格不入,每天都在进行精神内耗,但是我不经意间看到了一个东西-《邓宁克鲁格效应》 上述的四个阶段刻画出了一条典型的“大师养成之路”。但大师毕竟…...

Event Camera (事件相机)

1.传统相机的缺点 1.随着计算机视觉领域的不断发展,目标检测的算法也越来越多样化,特别是近些年深度学习在计算机视觉领域的进步,已经产生了很多优秀的目标检测方法,这些基于帧的方法对于图片的质量有一定的要求,比如合…...

藏经阁(七)有源蜂鸣器和无源蜂鸣器 解析

文章目录 特征区别场景选型实战应用 特征 有源蜂鸣器特征: 又被称为直流蜂鸣器包含了一个多谐振荡器只要额定直流电压可以在两端发出声音具有驱动控制简单价格略高 无源蜂鸣器特征: 又被称为交流蜂鸣器内部没有振荡器需要在两端施加特定频率的方波电…...

配置FTP/TFTP协议的ASPF

在多通道协议和NAT的应用中,ASPF是重要的辅助功能。通过配置ASPF功能,实现内网正常对外提供FTP和TFTP服务,同时还可避免内网用户在访问外网Web服务器时下载危险控件。 组网需求 如图1所示,FW部署在某公司的出口,公司提…...

泛型基本说明

使用传统方法的问题分析 不能对加入到集合ArrayList中的数据类型进行约束(不安全)遍历的时候,需要进行类型转换,如果集合中的数据量较大,对效率有影响。泛型的好处 编译时,检查添加元素的类型,提…...

干洗店洗鞋下店预约小程序开发多少钱

干洗店小程序是一种便捷的移动应用程序,能够帮助用户快捷、轻松地处理干洗、洗衣和清洗等服务。随着智能手机普及和人们生活节奏的不断加快,越来越多人选择使用干洗店小程序来满足自己的日常衣物清洗需求。那干洗店小程序怎么弄,洗衣预约小程…...

用Python实现批量翻译文档文件

文件名批量翻译需要用到编程语言和相应的翻译 API,下面以 Python 和 Google 翻译 API 为例,介绍具体的实现步骤: 安装必要的 Python 库 使用 Python 代码进行文件名翻译需要先安装两个库:googletrans 和 os。 pip install goog…...

机器视觉公司,在玩一局玩不起的游戏

导语 有个著名咨询公司曾经预测过:未来只有两种公司,是人工智能的和不赚钱的。 它可能没想到,还有第三种——不赚钱的AI公司。 去年我们报道过“正在消失的机器视觉公司”,昔日的“AI 四小龙”( 商汤、旷视、云从、依图…...

Zephyr 消息队列

文章目录 简介数据结构k_msgq 定义消息队列发送消息k_msgq_put 接收消息k_msgq_get wait_q 的双重身份清理消息队列k_msgq_cleanup 重置消息队列k_msgq_purge 读取数据k_msgq_peekk_msgq_peek_at 缓冲区容量k_msgq_num_free_getk_msgq_num_used_get 简介 message queue 用于中…...

Jenkins自动化部署实例讲解

文章目录 前言实例讲解基本环境全局工具配置创建任务任务配置源码管理构建步骤(Build Steps)第一步:调用Maven第二步:执行shell启动容器 后记 前言 你平常在做自己的项目时,是否有过部署项目太麻烦的想法?…...

RK356X 解除UVC摄像头预览分辨率1080P限制

平台 RK3566 Android 11 概述 UVC: USB video class(又称为USB video device class or UVC)就是USB device class视频产品在不需要安装任何的驱动程序下即插即用,包括摄像头、数字摄影机、模拟视频转换器、电视卡及静态视频相机…...

English Learning - L2-14 英音地道语音语调 重音技巧 2023.04.10 周一

English Learning - L2-14 英音地道语音语调 重音技巧 2023.04.10 周一 课前热身重音日常表达节奏单词全部重读的句子间隔时间非重读单词代词和缩约词助动词声临其境语调预习 课前热身 学习目标 重音 重弱突出,重音突出核心表达的意思 重音是落在重读单词上&…...

3.6 n维随机变量

学习目标: 学习n维随机变量需要掌握一定的数学知识,包括多元微积分、线性代数和概率论等。要学习n维随机变量,我会采取以下步骤: 复习相关的数学知识:首先,我会复习多元微积分、线性代数和概率论的基本知…...

JavaSE学习进阶day06_02 Set集合和Set接口

第二章 Set系列集合和Set接口 Set集合概述:前面学习了Collection集合下的List集合,现在继续学习它的另一个分支,Set集合。 set系列集合的特点: Set接口: java.util.Set接口和java.util.List接口一样,同样…...

基于matlab分析卫星星座对通信链路的干扰

一、前言 此示例说明如何分析从中地球轨道 (MEO) 中的卫星星座到位于太平洋的地面站的下行链路上的干扰。干扰星座由低地球轨道(LEO)的40颗卫星组成。此示例确定下行链路闭合的时间、载波噪声加干扰比以及链路裕量。 此示例需要卫…...

Python中的异常——概述和基本语法

Python中的异常——概述和基本语法 摘要:Python中的异常是指在程序运行时发生的错误情况,包括但不限于除数为0、访问未定义变量、数据类型错误等。异常处理机制是Python提供的一种解决这些错误的方法,我们可以使用try/except语句来捕获异常并…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...

JVM 内存结构 详解

内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: ​ 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

GitHub 趋势日报 (2025年06月06日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

免费数学几何作图web平台

光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...

【UE5 C++】通过文件对话框获取选择文件的路径

目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 ,这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器,右键点击 .uproject 文件,选择 "Generate Visual Studio project files",重…...

用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章

用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章 ​​摘要:​​ 操作系统内核的安全性、稳定性至关重要。传统 Linux 内核模块开发长期依赖于 C 语言,受限于 C 语言本身的内存安全和并发安全问题,开发复杂模块极易引入难以…...