【MySQL】sql语句之表操作(上)

2024-06-07 01:20

本文主要是介绍【MySQL】sql语句之表操作(上),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

序言

 在上一篇的数据库操作的内容中,学习了两种属性和常用的七种操作,学习是循序渐进的,库的操作学完了,就要开始学习表的操作了,而表可与数据强相关,比如DDL,即数据定义语言,DML,即数据操纵语言,都是与表相关的,而其区别就在于一个是对表结构的操作,而另一个是对表内容的操作,因此表的操作的内容分为上下两部分进行讲解。铺垫完毕,好了话不多说,开始今天的学习吧!

1.创建

create table (if not exists) [表名]([变量名1] [类型],[变量名2] [类型],[变量名3] [类型]
)(charset=[字符集],collate=[校验集],engine=[存储引擎]);

说明:

  • 第一个和第三个()的意思表示其中的内容可省略,第二个()的意思是表的结构都包含哪些类型,不可省略。
  • 请注意从开始的变量名到倒数第二个变量名,末尾都带有,,但是最后一个变量名末尾不带。
  • 字符集和校验集只强调一点,如果没有设置默认与所在的数据库设置的对齐。而存储引擎没有设置跟MySQL默认的对齐。
  • 在MySQL中推荐使用此种类似结构体定义的写法,可读性较高,当然也可以采用一行的写法,具体写法则根据个人喜好来即可。

如下图可得:我所在的MySQL下的默认的存储引擎是InnoDB,通过下图sql语句可进行查看。
在这里插入图片描述


  • 给出一个示例:
    在这里插入图片描述

简要说明一下,此处的类型暂不做讨论,留到后面的文章娓娓道来,而comment,简单理解为给类型做注释,便于用户理解。


此时进入数据库所在的目录/var/lib/mysql/test_db查看一下创建一个表发生了什么,在前面的文章中提及过创建一个数据库的本质就是创建一个目录,创建一个表实际就是在创建文件,那具体创建了什么文件呢?

  • 如图:
    在这里插入图片描述

说明:

  • .sdi为后缀的文件中存放的表的结构。
  • .MYD为后缀的文件中存放的是表的数据。
  • MYI为后缀的文件中存放的是表的索引。

因此可以看出MyISAM采用的索引是一种非聚集索引,即数据和索引分开进行存储。


与此同时,再创建一个InnoDB类型的表,再次查看此目录下的文件与MyISAM进行比较看有什么不同,这里就省略不写了,就是换一个表名,然后将最后的存储引擎换成InnoDB。

  • 如图:
    在这里插入图片描述

相比之下,InnoDB创建的表虽然只建立了一个文件,但这个文件中包含了表的索引和所有数据,因此InnoDB采用的索引是聚集索引。


补充:

  1. MyISAM,MySQL5.5.8版本之前默认的存储引擎,不支持事务,采用非聚集索引。
  2. InnoDB,MySQL数据库5.5.8版本开始,默认的存储引擎,支持事务,采用聚集索引。

2.查看

创建信息

show create table [表名];
#一般将末尾的;换成\G打印出来的效果更好。

在这里插入图片描述

表结构

desc [表名];

在这里插入图片描述
简要说明一下,Field为字段名称,Type为类型,Null为是否可以为控制,Key为是否为索引,Default为是否有默认值,Extra为额外信息。

3.修改

表的重命名

alter table [表名] rename to [新表名]#to可省略不写

如图:

在这里插入图片描述

此处在修改表名其实就是在数据库的目录下将其文件的前缀改为usr

如图:

在这里插入图片描述

增加列

alter table [表名] add [列名] [类型];

如图:

在这里插入图片描述

修改列属性

 alter table [表名] modiy [列名] [新属性];

如图:

在这里插入图片描述

删除列

alter table [表名] drop [列名];

如图:

在这里插入图片描述

补充一个小知识:进入MySQL内部的命令行之后,是不能直接执行系统命令的,如果要执行可在前面加上system,比如system ls;

3.备份和恢复

mysqldump -P [端口号] -u [用户] -p [密码] 数据库 表名,表名,... > [文件].sql#注意:mysql内执行要在mysqldump前加system。

首先向此表中插入一些数据之后,然后进行备份。

如图:

在这里插入图片描述

接着将此表删除之后,进行恢复。

source [指定目录下的.sql文件];

如图:

在这里插入图片描述
说明:恢复数据的过程其实就是将创建表和插入数据的sql语句记录下来,然后再执行一遍,这里Query OK的行有点冗余,为了避免截出来图片过长,我默默P掉了一部分,嘿嘿不用感谢我。


最后从表中查看数据验证结果。

在这里插入图片描述

对比之后结果无误,说明表恢复完毕。

尾序

今天学习了数据定义语言(DDL)中与表结构相关的操作,主要涉及创建,查看,修改,备份和恢复,当然还是一样内容并不难,关键就在于一个熟练度,敲就完事了。我是舜华,期待与你的下次相遇!

这篇关于【MySQL】sql语句之表操作(上)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1037785

相关文章

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

SpringBoot操作spark处理hdfs文件的操作方法

《SpringBoot操作spark处理hdfs文件的操作方法》本文介绍了如何使用SpringBoot操作Spark处理HDFS文件,包括导入依赖、配置Spark信息、编写Controller和Ser... 目录SpringBoot操作spark处理hdfs文件1、导入依赖2、配置spark信息3、cont

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

使用JavaScript操作本地存储

《使用JavaScript操作本地存储》这篇文章主要为大家详细介绍了JavaScript中操作本地存储的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录本地存储:localStorage 和 sessionStorage基本使用方法1. localStorage

使用JavaScript将PDF页面中的标注扁平化的操作指南

《使用JavaScript将PDF页面中的标注扁平化的操作指南》扁平化(flatten)操作可以将标注作为矢量图形包含在PDF页面的内容中,使其不可编辑,DynamsoftDocumentViewer... 目录使用Dynamsoft Document Viewer打开一个PDF文件并启用标注添加功能扁平化

JavaScript DOM操作与事件处理方法

《JavaScriptDOM操作与事件处理方法》本文通过一系列代码片段,详细介绍了如何使用JavaScript进行DOM操作、事件处理、属性操作、内容操作、尺寸和位置获取,以及实现简单的动画效果,涵... 目录前言1. 类名操作代码片段代码解析2. 属性操作代码片段代码解析3. 内容操作代码片段代码解析4.

mysql重置root密码的完整步骤(适用于5.7和8.0)

《mysql重置root密码的完整步骤(适用于5.7和8.0)》:本文主要介绍mysql重置root密码的完整步骤,文中描述了如何停止MySQL服务、以管理员身份打开命令行、替换配置文件路径、修改... 目录第一步:先停止mysql服务,一定要停止!方式一:通过命令行关闭mysql服务方式二:通过服务项关闭

SQL Server数据库磁盘满了的解决办法

《SQLServer数据库磁盘满了的解决办法》系统再正常运行,我还在操作中,突然发现接口报错,后续所有接口都报错了,一查日志发现说是数据库磁盘满了,所以本文记录了SQLServer数据库磁盘满了的解... 目录问题解决方法删除数据库日志设置数据库日志大小问题今http://www.chinasem.cn天发

SpringBoot使用Apache POI库读取Excel文件的操作详解

《SpringBoot使用ApachePOI库读取Excel文件的操作详解》在日常开发中,我们经常需要处理Excel文件中的数据,无论是从数据库导入数据、处理数据报表,还是批量生成数据,都可能会遇到... 目录项目背景依赖导入读取Excel模板的实现代码实现代码解析ExcelDemoInfoDTO 数据传输

mysql主从及遇到的问题解决

《mysql主从及遇到的问题解决》本文详细介绍了如何使用Docker配置MySQL主从复制,首先创建了两个文件夹并分别配置了`my.cnf`文件,通过执行脚本启动容器并配置好主从关系,文中还提到了一些... 目录mysql主从及遇到问题解决遇到的问题说明总结mysql主从及遇到问题解决1.基于mysql