【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)中与表结构相关的操作,主要涉及创建,查看,修改,备份和恢复,当然还是一样内容并不难,关键就在于一个熟练度,敲就完事了。我是舜华,期待与你的下次相遇!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DVWA-XSS(Stored)

Low 观察后端代码,对输入进行了一些过滤和转义。trim(string,charlist) 函数用于移除字符串两侧的空白字符或其他预定义字符,charlist 参数可以规定从字符串中删除哪些字符。stripslashes() 函数用于删除反斜杠。mysqli_real_escape_string() 函数用于对…

SAAS系统架构设计剖析

多租户数据隔离 用户担心数据安全性,也就是要做数据隔离,不允许 A 租户查到 B 租户的数据 1、软隔离 数据在一起,只不过带着租户 id 查询 在底层驱动 jar 上进行封装,强制带上租户 id 比如:MySQL、MQ、Redis&#…

【论文精读】DCRNN-扩散图卷积循环神经网络

DCRNN 模型是南加州大学的 Li 等人发表在 I C L R 2018 ICLR 2018 ICLR2018 会议上一个用于交通预测的时空预测模型,论文题目为: 《DIFFUSION CONVOLUTIONAL RECURRENT NEURAL NETWORK: DATA-DRIVEN TRAFFIC FORECASTING》,文章地址为: https://arxiv.org/abs/1707.01926。 …

vs中运行程序时,报不能运行解决方式

问题 在vs中编译运行程序中,如果程序还在运行,编译会报错,但是在后台又找不到对应的程序 解决方式 1、tasklist | find “进程名” 2、taskkill /PID

【实战】kafka3.X kraft模式集群搭建

文章目录 前言kafka2.0与3.x对比准备工作JDK安装kafka安装服务器增加hosts 修改Kraft协议配置文件格式化存储目录 启动集群停止集群测试Kafka集群创建topic查看topic列表查看消息详情生产消息消费消息查看消费者组查看消费者组列表 前言 相信很多同学都用过Kafka2.0吧&#xf…

二叉树的镜像--c++【做题记录】

【问题描述】 给定扩展二叉树的前序序列,构建二叉树。 求这课二叉树的镜像,并输出其前序遍历序列。 【输入形式】 输入扩展二叉树的前序序列。 【输出形式】 输出镜像二叉树的前序遍历序列。 【样例输入】 ab##cd##e## 【样例输出】 镜像后二叉树的前序遍…

功能问题:如何防止接口重复请求?

大家好,我是大澈! 本文约 1400 字,整篇阅读约需 3 分钟。 防止接口重复请求在软件开发中非常重要,重复请求必然会导致服务器资源的浪费。 因为每次请求都需要服务器进行处理,如果请求是重复的,那么服务…

乘船过河(ship)

合肥市第33届信息学竞赛(2016年) 题目描述 Description 卡卡西和小朋友们要乘船过河了,港口有很多条船可以租到,并且之间没有区别,每条船的出租费用也是一样的。但是一条船最多只能乘坐两个人,且乘客的总…

STM32 IIC 使用 HAL 库操作eeprom

在STM32上通过I2C接口(注意:在标准STM32库中,I2C接口通常被写为"I2C"而不是"IIC")与EEPROM芯片通信时,你需要遵循I2C通信协议,并使用STM32的HAL库或标准外设库(如果适用&am…

tomcat配置请求的最大参数个数和请求数据大小

maxParameterCount"10000" maxPostSize"10485760" maxParameterCount:单个请求最大请求参数个数; maxPostSize:单个请求最大数据大小,1048576010M;

基本算法——位运算

a^b 原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 题目描述 运行代码 #include<iostream> using namespace std; long long a,b,c,t1; int main() {cin>>a>>b>>c;for(;b;b/2){if(b&1)tt*a%c;aa*a%c;}cout<<t%c; } 代码思路…

汽车软件 OTA技术解析

汽车软件 OTA 技术概述 在当今汽车行业中,软件定义汽车的概念逐渐深入人心。随着汽车智能化和网联化的发展,汽车软件的重要性日益凸显。而汽车软件 OTA(Over-the-Air)技术作为一种重要的软件升级和维护方式,正逐渐成为汽车行业的热点话题。 汽车软件 OTA 技术是指通过无线…

逻辑回归及python实现

概述 logistic回归是一种广义线性回归&#xff08;generalized linear model&#xff09;&#xff0c;因此与多重线性回归分析有很多相同之处。它们的模型形式基本上相同&#xff0c;都具有 w‘xb&#xff0c;其中w和b是待求参数&#xff0c;其区别在于他们的因变量不同&#x…

App Inventor 2 复制屏幕功能,界面设计更便捷,避免误删组件

“复制屏幕”功能全新上线&#xff0c;中文网独有&#xff08;MIT没有此功能&#xff09;&#xff0c;可以复制屏幕中的普通组件、图片、附件、拓展、代码块。更多升级详情可查看发布日志。 下面演示一下屏幕的复制效果&#xff1a; 1、Screen1屏幕上有若干组件、及一个SQLit…

美业SaaS系统源码分享-收银管理的主要功能

美业SaaS系统 连锁多门店美业收银系统源码 多门店管理 / 会员管理 / 预约管理 / 排班管理 / 商品管理 / 活动促销 PC管理后台、手机APP、iPad APP、微信小程序 ▶ 博弈美业-收银管理功能 1、同时支持支付宝和微信支付&#xff0c;具有简单便捷安全等优点&#xff0c;并且符…

MySQL之查询性能优化(八)

查询性能优化 MySQL查询优化器的局限性 MySQL的万能"嵌套循环"并不是对每种查询都是最优的。不过还好&#xff0c;MySQL查询优化器只对少部分查询不适用&#xff0c;而且我们往往可以通过改写查询让MySQL高效地完成工作。还有一个好消息&#xff0c;MySQL5.6版本正…

Java开发注意事项

注意&#xff1a;测试类中使用Autowired注解注入Bean&#xff0c;不要使用RequiredArgsConstructor注解注入Bean 正确示范: import org.springframework.boot.test.context.SpringBootTest; import org.springframework.beans.factory.annotation.Autowired;SpringBootTest c…

Ffmpeg安装和简单使用

Ffmpeg安装 下载并解压 进入官网 (https://ffmpeg.org/download.html)&#xff0c;选择 Window 然后再打开的页面中下滑找到 release builds&#xff0c;点击 zip 文件下载 环境变量配置 下载好之后解压&#xff0c;找到 bin 文件夹&#xff0c;里面有3个 .exe 文件 然后复制…

中国互联网第一人的故事__许榕生的不平凡的经历

中国互联网第一人的故事&#xff3f;&#xff3f;许榕生的不平凡的经历 目录 零 高考之际谈高考成功者 一 幸运的高考考生 二 抓住时机考研上岸 三 当年连接互联网的经过 四 互联网进入中国的缘由 五 互联网一诞生就显神威 六 互联网强国之路&#xff0c;我们在路上 零…

优思学院|六西格玛黑带官方的报考条件是什么?

经常有人私信问我六西格玛黑带证书要如何取得&#xff0c;要学历证明吗&#xff1f;要带项目吗&#xff1f;要注册吗&#xff1f; 首先&#xff0c;直接一点说&#xff0c;和任何学科一样&#xff0c;取得六西格玛证书的方法主要是通过上课学习和考试。然而&#xff0c;关于六…