MySQL基本概念和基础语法

指定条件下更新数据

update student a, score b SET b.stuscore = 100 WHERE

a.stuid=b.stuid and a.stuname=‘赵雷’ and b.courseid=0002

#单表删除

delete from score where stuscore = 64 and courseid=0001 and stuid=0001

多表删除

delete a, b from student as a LEFT JOIN score as b on a.stuid=b.stuid

where a.stuname=‘赵雷’

and b.courseid=0002 and b.stuscore=100

1、基础增删改查:

语法:
UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]
DELETE FROM table_name [WHERE Clause]
INSERT INTO table_name ( field1, field2,...fieldN )    VALUES   ( value1, value2,...valueN );- insert into account (name, money) values ("abab", 200)
- select * from account
- delete from account where id =7
- update account set name ="dadada" where id='2'

2、多表版本增删改:

更新方法一:
UPDATE table1
SET column1 = column2
WHERE EXISTS (SELECT * FROM table2WHERE table1.id = table2.table1_id AND table2.column3 = 'value'
);更新方法二:
UPDATE table1
JOIN table2 ON table1.id = table2.table1_id
SET table1.column1 = table2.column2
WHERE table2.column3 = 'value';

2.1、两个表关联插入数据

  1. 使用子查询和 VALUES
sqlCopy CodeINSERT INTO table1 (column1, column2)
SELECT column3, column4
FROM table2
WHERE column5 = 'value'
UNION ALL
VALUES (value1, value2), (value3, value4);

上述语句中,通过子查询 SELECT column3, column4 FROM table2 WHERE column5 = 'value' 选择需要插入的数据行,并将其与手动指定的数值集合进行合并(UNION ALL)。手动指定的数值集合使用 VALUES 语法进行定义。

  1. 使用 JOIN 和 VALUES
sqlCopy CodeINSERT INTO table1 (column1, column2)
SELECT table2.column3, table2.column4
FROM table1
JOIN table2 ON table1.id = table2.table1_id
UNION ALL
VALUES (value1, value2), (value3, value4);

此示例中,使用 JOIN 操作将需要插入的表 table1 和其他表 table2 进行关联查询,并通过关联条件 table1.id = table2.table1_id 来选择需要插入的数据行。然后将其与手动指定的数值集合进行合并(UNION ALL),手动指定的数值集合同样使用 VALUES 语法进行定义。

2.2 两个表关联删除数据

  1. 使用子查询

使用子查询的方式可以先根据另一个表的条件查询需要删除的数据行,然后再将这些数据行从当前表中删除。简单示例如下:

sqlCopy CodeDELETE FROM table1 WHERE column1 IN (SELECT column1 FROM table2 WHERE column2 = 'value'
);

上述 SQL 语句中,我们使用子查询 SELECT column1 FROM table2 WHERE column2 = 'value' 内部选择满足条件的数据行的列,然后在外部将其传递给 DELETE 语句的 WHERE 子句,以确定要从当前表 table1 中删除的数据行。

  1. 使用 JOIN

另一种删除数据的方式是使用 JOIN 操作来确定要删除的数据行,然后使用 DELETE 语句从当前表中删除这些数据。简单示例如下:

sqlCopy CodeDELETE table1 FROM table1
JOIN table2 ON table1.id = table2.table1_id
WHERE table2.column2 = 'value';

上述 SQL 语句中,我们使用 JOIN 操作将需要删除的表 table1 和其他表 table2 进行关联,并在关联条件 table1.id = table2.table1_id 中指定需要删除的数据行。然后在 WHERE 子句中进一步过滤数据行,以确定要从当前表 table1 中删除的数据行。

2.3 、其他常见基础语法

1. 复制表结构及其数据:create table table_name_new as select * from table_name_old2. 只复制表结构:create table table_name_new as select * from table_name_old where 1=2;或者:create table table_name_new like table_name_old
3. 只复制表数据:如果两个表结构一样:insert into table_name_new select * from table_name_old如果两个表结构不一样:insert into table_name_new(column1,column2...) select column1,column2... from table_name_old

3、MySQL数据库执行原理

  1. 连接数据库 在使用 MySQL 之前,需要先使用合适的客户端工具连接到数据库服务器。
  2. 解析 SQL 语句 当客户端发送 SQL 语句给 MySQL 服务器后,MySQL 服务器会首先对 SQL 语句进行词法分析、语法分析等操作,以确定 SQL 语句的正确性和合法性。
  3. 查询优化器 MySQL 服务器将优化 SQL 语句的执行计划,以使查询能够更快地执行。MySQL 的查询优化器充分利用索引、表连接等功能,为 SQL 语句找到最优的执行路径。
  4. 执行 SQL 语句 MySQL 服务器使用执行路径来执行 SQL 语句,获得满足查询条件的结果集。这可能涉及到索引扫描、表扫描、连接操作等,具体取决于 SQL 语句和数据结构。
  5. 返回结果集 MySQL 服务器将执行后的结果集返回给客户端,并等待下一个命令的执行。

需要注意的是,在以上步骤中,查询优化器是 MySQL 查询执行过程中的重要组成部分,它可以大幅提升查询效率。MySQL 查询优化器会通过分析 SQL 语句,选择最优的执行方式并生成执行计划,使查询效率达到最大化。

MySQL数据库相关优化参数

MySQL数据库执行计划

MySQL数据库执行顺序

  1. FROM 子句:首先,SQL 解析器会识别查询的源表或视图,并确定它们之间的连接关系。这包括在 FROM 子句中指定的表和子查询。
  2. WHERE 子句:解析器会检查 WHERE 子句中的条件,并根据条件筛选出符合条件的数据行。WHERE 子句通常用于限制查询结果的范围。
  3. GROUP BY 子句:如果查询包含 GROUP BY 子句,解析器会将结果按照指定的列进行分组。然后,针对每个组计算聚合函数(如 SUM、COUNT、AVG 等)。
  4. HAVING 子句:HAVING 子句用于筛选聚合结果。解析器会检查 HAVING 条件,并只包含满足条件的分组结果。
  5. SELECT 子句:解析器会选择要返回的列,并进行计算、转换等操作(如聚合函数、表达式计算、别名等)。
  6. ORDER BY 子句:如果查询中有 ORDER BY 子句,解析器会对最终结果进行排序,按照指定的列和排序方向进行排序。
  7. LIMIT/OFFSET 子句:最后,解析器会根据 LIMIT 和 OFFSET 子句来限制返回结果的数量和偏移量。

MySQL性能测试过程中的优化项目和注意事项

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

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

相关文章

家用超声波清洗机哪个牌子好?一起来看、值得推荐超声波清洗机

家用超声波清洗机可以干嘛呢?最常见的就是来清洗眼镜。眼镜党朋友应该经常接触超声波清洗机,它常出现在眼镜店中,眼镜店老板帮顾客清洗眼镜;也会出现在工业领域、医疗领域等,超声波清洗机使用范围还是挺广的&#xff0…

微信小程序 分享的两种方式:菜单级和按钮级

按钮级 在使用微信小程序的时候,我们可能会设计到一些视频的一些分享等,那么视频分享也分为两种方式,例如下图,当我们点击的时候,进行一个转发分享的一个操作 那么在原先代码的基础上,我们需要在原先代码的基础上butt…

Java并行计算实例:使用并发框架解决实际问题

引言: 在当今信息时代,数据的处理速度和效率成为了各行各业的关注焦点。为了提高计算机程序的执行速度,我们需要利用计算机的多核处理能力,实现并行计算。Java作为一门广泛应用于企业级应用开发的编程语言,提供了丰富的…

微信小程序中 不同页面如何传递参数

在开发项目中,避免不了不同页面之间传递数据等,那么就需要进行不同页面之间的一个数据传递 直接传递一个对象时: 页面A gotoDetail(e){const music e.currentTarget.dataset.music;// 在小程序中,不同页面之间如何进行参数传递…

树模型与深度模型对比

表格型数据为什么那么神奇,能让树模型在各种真实场景的表格数据中都战胜深度学习呢?作者认为有以下三种可能: 神经网络倾向于得到过于平滑的解冗余无信息的特征更容易影响神经网络 所以一定程度的特征交叉是不是必要的,因为one-ho…

Unity中动态合批

文章目录 前言一、动态合批的规则1、材质相同是合批的前提,但是如果是材质实例的话,则一样无法合批。2、支持不同网格的合批3、动态合批需要网格支持的顶点条件二、我们导入一个模型并且制作一个Shader,来测试动态合批1、我们选择模型的 Mesh…

电商API接口开发和接入说明{包含淘宝/京东/拼多多/抖音}

“为什么改了这个没告诉我” “实际功能和文档上说的不一样啊”。 这些话大家在进行电商API接口开发时,想必耳朵都听出老茧了。 真不是故意的,有时候任务比较急,就先改了代码,想着以后再同步文档,然后就给忘了。 项…

k8s项目部署流程

K8s项目部署流程如下: 安装Kubernetes集群:首先需要安装Kubernetes集群,以便部署应用程序。您可以使用Minikube(用于本地开发和测试)或使用云提供商如AWS、GCP等提供的Kubernetes服务。 创建命名空间:命名…

在Pycharm中使用GitHub的方法步骤

文章目录 前言一、配置Pycharm二、建立远程仓库并提交代码三、在github中查看上传的新仓库四、使用pycharm克隆github仓库五、在pycharm内进行git的相关操作关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源…

【C++】三大特性 --- 继承的详细讲解

目录 1.继承的概念及定义 1.1 继承的概念 1.2 继承定义 1.2.1定义格式 1.2.2继承关系和访问限定符 1.2.3继承基类成员访问方式的变化 2.基类和派生类对象赋值转换 3.继承中的作用域 4.派生类的默认成员函数 5.继承与友元 6.继承与静态成员 7.复杂的菱形继承及菱形虚…

上位机开发框架:QT与winform/wpf对比

QT QT 是一个跨平台的 C 应用程序框架,它提供了丰富的 UI 组件和功能强大的网络通信、数据库操作等模块。QT 的优势在于其良好的跨平台性能,可以方便地部署在 Windows、Linux、macOS 等不同操作系统上。此外,QT 还具有强大的 UI 设计能力&am…

从0到1构建智能分布式大数据爬虫系统

文章目录 1. 写在前面2. 数据获取挑战3. 基础架构4. 爬取管理5. 数据采集6. 增量与去重设计 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐…

win10的系统下实现SUSTechPOINTS环境搭建

** win10的 标题系统下实现SUSTechPOINTS环境搭建 ** 参考文档: doc/install_from_source.md 张金来/SUSTechPOINTS - Gitee.com 在win10的系统下搭建**SUSTechPOINTS环境 1 克隆代码 git clone https://github.com/naurril/SUSTechPOINTS2 安装环境 2.1 创…

【EtherCAT详解】基于Wireshark的EtherCAT帧结构解析

写在前面 EtherCAT的报文比较繁琐,且一些参考书籍错误较多,且晦涩难懂,对于初学者,很难快速的入门。本文适用于有一定基础的研究者,如对报文有一些研究、对canopen协议有一定了解、并且对TwinCAT有了解的研究者。当然,对于初学者来说,也是很好的引导,少走很多弯路。本…

css 字体添加外轮廓

color: #ffeb3b; -webkit-text-stroke: 10px transparent; background: linear-gradient(90deg,#5d3d02f5,#5d3d02f5,#5d3d02f5,#5d3d02f5,#5d3d02f5,#5d3d02f5,#5d3d02f5) top left / 100% 100%; -webkit-background-clip: text;

语义分割网络-FCN全卷积网络

全卷积神经网络FCN整体概述 FCN是首个端对端针对像素级预测的全卷积网络。FCN会用到分类网络作为backbone FCN的网络结构类比分类网络 分类网络经过卷积操作后,接全连接层,最后一个全连接层输出长度与分类类别数量相同,最后经过softmax得到术…

springMVC实验(五)——数据校验

【知识要点】 数据校验的概念 在软件开发过程中,数据校验是非常重要的环节,用于确保数据的有效性和完整性 。数据校验分为客户端验证和服务端验证,客户端验证是确保人机交互过程中用户操作表单过程中的误操作,由JavaScript代码完…

优化用户直播体验:第三方美颜SDK的前沿技术

当下,用户对于直播体验的要求日益提高,其中之一的重要方面就是实时美颜效果。第三方美颜SDK为直播平台和应用提供了强大的美颜功能,极大地改善了用户的直播观感。 一、背景与发展 过去,直播中的美颜往往依赖于主播或用户自行调整…

【深度学习】深度学习框架的环境配置

目录 1. 配置cuda环境 1.1. 安装cuda和cudnn 1.1.1. 显卡驱动配置 1.1.2. 下载安装cuda 1.1.3. 下载cudnn,将解压后文件复制到cuda目录下 1.2. 验证是否安装成功 2. 配置conda环境 2.1. 安装anaconda 2.2. conda换源 2.3. 创建conda环境 2.4. pip换源 3…

Linux虚假唤醒

为什么会有虚假唤醒一说。Linux内核这么强大,怎么会出现这样的情况?一直以来也很困惑,看了下文链接中的介绍后,豁然开朗。 从计算机设计的角度,如果一层解决不了,那就再多加一层。推算到这里,就…