[MySQL] MySQL表的基础操作

文章目录

一、创建表

1、1 SQL语法

1、2 实例演示

二、查询表

三、修改表

3、1 修改表名字

3、2 新增列(字段)

3、3 修改列类型

3、4 修改列名

3、5 删除表

四、总结


🙋‍♂️ 作者:@Ggggggtm 🙋‍♂️

👀 专栏:MySQL 👀

💥 标题:MySQL表的基础操作💥

 ❣️ 寄语:与其忙着诉苦,不如低头赶路,奋路前行,终将遇到一番好风景 ❣️

一、创建表

1、1 SQL语法

  首先我们先来学一下创建表的操作。后续都是对表进行增删查改操作!创建表的语法:

CREATE TABLE table_name (
    field1 datatype,
    field2 datatype,
    field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;

  注意,我们在上篇文章中讲解到了库的字符集与校验规则的设置。表也是可以设置自己对应的字符集和校验规则的。其次,上述字符集设置中,character set 等同于 charset

  语法说明:

  • field 表示列名;
  • datatype 表示列的类型;
  • character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准;
  • collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准;
  • engine是用来指定表所采用的存储引擎。

1、2 实例演示

  下面我们结合一个实际例子来理解一下。具体如下图:

  首先说明一下,上述语句中 comment 是用来添加注释信息的。那么我们来查看一下所见建的表。查看表结构的详细信息用到的语句是:desc 表名字。具体如下图:

  我们所添加的注释信息在哪里看呢?这时候我们就需要用查看创建表时的语句的详细信息了,具体如下图:

  我们再来看看使用特定的存储引擎后,创建出来的表有什么不同的。如下图:

  当我们不指定存储引擎时,数据库会使用默认的存储引擎:innodb。我们通过linux下对应的文件可以也看出,不同的存储引擎所创建出来的表也是有所不同的。

  t1 表存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是:

  • t1.frm:表结构;
  • t1.MYD:表数据;
  • t1.MYI:表索引。

  t2 表存储引擎是 innodb,在数据目中有两个不同的文件,分别是:

  • t2.frm:表结构;
  • t2.ibd:表数据和表索引;

  后续文章我们也会对他们之间的详细区别进行详解的。这里我们知道不同的存储引擎创建出来的表是有所不同的即可。

二、查询表

  查询某个库中都有那几个表,可以用语句:show tables。具体如下图:

  我们在上述创建中也提到了查询表结构的详细信息,所用到的语句是:desc 表名字。具体如下:

  说明一下,desc表中的每一行都表示一个字段,并包含以下属性:

  1. Field:字段名称。
  2. Type:数据类型。例如,VARCHAR(64)、INT、FLOAT 等。
  3. Null:是否允许 NULL 值。如果是 'YES',则可以是 NULL;如果是 'NO',则必须有值。
  4. Key:主键、唯一键或普通索引的类型。'PRI' 是主键,'UNI' 是唯一键,'MUL' 是多列键,'ALL' 是全索引。
  5. Default:字段的默认值。如果没有默认值,则为空。
  6. Extra:字段的一些额外信息。例如,'auto_increment' 表示该字段是自动递增的,'on update CURRENT_TIMESTAMP' 表示该字段在更新时会自动设置当前时间戳。

  这里就先了解一下,不做过多解释,后续文章会对此属性进行详解。

  我们也可通过show create table 表名字来查看创建表时的具体的细节。如下图: 

  我们怎么查看表中所存储的信息呢?可直接使用select语句进行查看。具体如下图:

  我们是先插入了两条数据再进行查询。这里也就不再对查询做过多解释。我们所说的插入一个字段,对应到表中也就是插入了一列。

三、修改表

  修改表主要用到的语句是:alter table 表名字 要修改的操作及内容。 下面我们通过实例来一一理解。

3、1 修改表名字

  再次提醒,一般情况下是不支持对数据库的名字进行修改的。但是可以修改表的名字。语句:alter table 表名字 rename to 新表名字。该语句中的 to 是可以省去的。具体实例如下:

3、2 新增列(字段)

   在不断的开发中,可能会向表中新增一列。这个也是可以的。所用到的语句:

alter table 表名字 add 新增列明 新增列属性;

  具体如下图:

  我们看到新增的一列默认是在表中的最后的位置。当然,我们想要增加到其他位置呢?具体如下图:

  可以使用语句:alter table 表名字 add 新增列明 新增列属性 after 列名。

3、3 修改列类型

   有时候我们定义的列类型时,后续因为数据原因,需要变动。比如修改某个字段类型的最大长度等等。所用到的语句:alter table 表名字 modify 列名字 修改后列类型。下面我们看一个实例:

  上图中,我们就是把名字的最大长度进行了修改。注意:如果还需要注释信息时,我们再修改时也应该写上。从这里我们也看出来了,修改并不是指定式的修改内容,而是覆盖式的去修改内容。

3、4 修改列名

  列的名字也是可以被修改的。所用语句:

alter table 表名字 change 列名字 新列名字 新列属性。 

  我们看一个实例:

  这里的修改也是覆盖式的进行修改,原来的建表时的注释信息也会被覆盖掉。如下图:

3、5 删除表

  删除表也就意味着删除表中的所有数据。所以当在删除表的时候,要确定表中的信息没有用了,否则不要轻易删除。具体语句:

drop table 表名字;

 具体实例如下:

四、总结

  本文章主要对表的操作进行的详细讲解,下面对本文章所用到的语句进行一个简单的总结。具体如下:

CREATE TABLE [IF NOT EXISTS] table_name(
	field1 datatype1 [COMMENT '注释信息'],
	field2 datatype2 [COMMENT '注释信息'],
	field3 datatype3  [COMMENT '注释信息']
)[CHARSET=字符集] [COLLATE=校验规则] [ENGINE=存储引擎];

DESC 表名字;

SHOW TABLES;

ALTER TABLE table_name RENAME [TO] 新表名字;
ALTER TABLE table_name ADD 新增列名字 新增列类型;
ALTER TABLE table_name MODIFY 列名字 修改后列类型;
ALTER TABLE table_name DROP 列名字;
ALTER TABLE table_name CHANGE 列名字 新列名 新列类型;

DROP TABLE;

   我们应该多加练习这些语句的使用,也应该熟练掌握这些语句的使用。本篇文章的内容就到这里,感谢阅读ovo~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/136951.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL日志与备份篇】数据库备份与恢复

数据库备份与恢复 文章目录 数据库备份与恢复1. 物理备份与逻辑备份2. mysqldump实现逻辑备份2.1 备份一个数据库2.2 备份全部数据库2.3 备份部分数据库2.4 备份部分表2.5 备份单表的部分数据2.6 排除某些表的备份2.7 只备份结构或只备份数据2.8 备份中包含存储过程、函数、事件…

微信聊天,收到二维码图片就自动帮你提取出来的方法

10-3 如果你是二维码收集的重度用户,那我非常推荐你好好阅读本文,也许可以帮你解决你的问题,比如做网推的人,需要常年混迹在各种微信群,那如何在各个微信群中收集到群友分享出来的二维码,并且要立即保存出…

吃透 Spring 系列—MVC部分

目录 ◆ SpringMVC简介 - SpringMVC概述 - SpringMVC快速入门 - Controller中访问容器中的Bean - SpringMVC关键组件浅析 ◆ SpringMVC的请求处理 - 请求映射路径的配置 - 请求数据的接收 - Javaweb常用对象获取 - 请求静态资源 - 注解驱动 标签 ◆ SpringMV…

推荐系统笔记--Swing模型的原理

1--Swing模型的引入 在 Item CF 召回中,物品的相似度是基于其受众的交集来衡量的,但当受众的交集局限在一个小圈子时,就会误将两个不相似的物品定义为相似; Swing 模型引入用户的重合度来判断两个用户是否属于一个小圈子&#xff…

C++基础(2)——类和对象

目录 1. 类的引入: 2. 类的定义: 2.1类的定义以及基本结构: 2.2 类的访问限定符: 3. 类的声明与定义的分离: 4. 类的实例化: 5. 类的大小计算: 1. 类的引入: 在数据结构系列的…

使用openvc进行人脸检测:Haar级联分类器

1 人脸检测介绍 1.1 什么是人脸检测 人脸检测的目标是确定图像或视频中是否存在人脸。如果存在多个面,则每个面都被一个边界框包围,因此我们知道这些面的位置 人脸检测算法的主要目标是准确有效地确定图像或视频中人脸的存在和位置。这些算法分析数据…

[Android]修改应用包名、名称、版本号、Icon以及环境判断和打包

1.修改包名 在Android Studio中更改项目的包名涉及几个步骤: 打开项目结构: 在Android Studio中,确保您处于Android视图模式(在左侧面板顶部有一个下拉菜单可以选择)。 重命名包名: 在项目视图中,找到您的包名&…

结构型设计模式07-享元模式

结构型设计模式07-享元模式 1、享元模式介绍 享元模式是一种结构型设计模式,旨在通过共享对象来减少内存使用和提高性能。它主要用于处理大量细粒度对象的情况,其中许多对象具有相似的属性和行为。 在享元模式中,对象分为两种类型&#xf…

互联网大厂招兵买马开发鸿蒙应用,移动开发的春天又来了?

日前,美团拟开发鸿蒙系统APP的多个相关岗位正招聘开发人员引发业内关注。事实上,鸿蒙开发者已经成为京东、WPS、凤凰新闻、微博等互联网大厂争相招聘的人才,且招聘岗位众多。也就是说,这些公司正在加快鸿蒙化开发,为鸿…

计算机毕业设计选题推荐-校园交流平台微信小程序/安卓APP-项目实战

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

录制GIF图,动态图

软件下载链接: https://www.cockos.com/licecap/ 参考链接: https://chat.xutongbao.top/

Linux学习第40天:Linux SPI 驱动实验(一):乾坤大挪移

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 主从工作方式完成数据交换,形象的说就是武侠中的乾坤大挪移。 本章实验的最终目的就是驱动 I.MX6UALPHA 开发板上的 ICM-20608 这个 SPI 接口的六轴传…

2023.11.13 hive数据仓库之分区表与分桶表操作,与复杂类型的运用

目录 0.hadoop hive的文档 1.一级分区表 2.一级分区表练习2 3.创建多级分区表 4.分区表操作 5.分桶表 6. 分桶表进行排序 7.分桶的原理 8.hive的复杂类型 9.array类型: 又叫数组类型,存储同类型的单数据的集合 10.struct类型: 又叫结构类型,可以存储不同类型单数据的集合…

【函数讲解】pygmo中的函数 fast_non_dominated_sorting() + 利用支配关系,学习一个SVM分类器,将解分为两类

这个函数是用来执行非支配排序的,可以分层构建Pareto,并返回每一层的解以及每个解支配其他解的索引、解被其他解支配的次数、解所在的非支配层级。这个函数对这些解进行非支配排序,并返回四个数组:ndf, dl, dc, 和 ndr。 ndf (Non…

CentOS7、CentOS8 如何修改ip信息(修改网络信息)(无图形界面)(亲测可用)

文章目录 CentOS 7方法一:使用 nmcli 命令方法二:编辑配置文件(我的CentOS7是使用这种方法,亲测可用) CentOS 8方法一:使用 nmcli 命令方法二:编辑配置文件 在 CentOS 系统中,如果你…

【论文精读】DMVSNet

今天读的是一篇发表在ICCV 2023上的文章,作者来自华中科技大学。 文章地址:点击前往 项目地址:Github 文章目录 Abstract1 Introduction2 Relative Work3 Motivation3.1 Estimated bias and interpolated bias3.2 One-sided V.S. Saddle-shap…

怎么做到高性能网络IO?

为什么要做高性能网络IO。主要是解决c10,c10M问题 最开始的时候我们走的内核协议栈,走内核协议栈其实性能比较低,因为我们之前介绍的时候需要拷贝两次 但是我们采用用户态协议栈可以少拷贝一次,可以大大提高效率, 步骤…

基于粒子群算法优化概率神经网络PNN的分类预测 - 附代码

基于粒子群算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于粒子群算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于粒子群优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神经网络…

职业迷茫,我该如何做好职业规划

案例25岁男,入职2月,感觉自己在混日子,怕能力没有提升,怕以后薪资也提不起来。完全不知道应该往哪个方向进修,感觉也没有自己特别喜欢的。感觉自己特别容易多想,想多年的以后一事无成的样子。 我觉得这个案…

Tektronix(泰克)示波器TBS1102B测试电压

对于 Tektronix TBS1102B 示波器来说,测试电压的步骤基本如下: 连接测量点: 将被测电路的测量点连接到示波器的输入通道。使用正确的探头并确保连接的极性正确。 选择通道: 选择示波器上的通道,你想要测量的电压可能连…