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

MySQL学习系列(2)-每天学习10个知识

目录

    • 1. INNER JOIN 和 ON 子句
    • 2. 死锁
    • 3. SELECT * 和 SELECT column1, column2
    • 4. 数据库的视图
    • 5. MySQL的触发器类型
    • 6. MySQL表的备份和恢复
    • 7. MySQL存储引擎
    • 8. 索引优化
    • 9. MySQL中的子查询
    • 10. 使用连接(JOIN)从多个表中检索数据


👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!


1. INNER JOIN 和 ON 子句

INNER JOIN 用于合并两个或多个表中的数据,返回符合条件的行。ON 子句指定连接条件,即确定如何将表连接起来。INNER JOIN 和 ON 通常一起使用,以便根据指定的条件连接表。

SELECT customers.name, orders.order_number
FROM customers
INNER JOIN orders ON customers.id = orders.customer_id;

在上述示例中,INNER JOIN 用于连接 “customers” 表和 “orders” 表,ON 子句指定了连接条件,即 “customers.id” 等于 “orders.customer_id”。

2. 死锁

死锁是指两个或多个事务互相等待对方释放资源的情况,导致它们都无法继续执行。MySQL 使用锁机制来保护数据的完整性。当多个事务同时请求资源并且互相持有对方需要的资源时,可能会发生死锁。

MySQL 处理死锁的方法通常包括超时机制和死锁检测。当检测到死锁时,MySQL会选择一个事务作为死锁牺牲者,并回滚该事务,以释放资源,允许其他事务继续。

3. SELECT * 和 SELECT column1, column2

  • SELECT * FROM table_name:这将检索指定表中的所有列和所有行的数据。
  • SELECT column1, column2 FROM table_name:这将仅检索指定表中的列 “column1” 和 “column2” 的数据,而不检索其他列的数据。

使用 **SELECT * ** 会导致检索所有列的数据,可能浪费带宽和内存,而且不容易维护。因此,最好明确指定需要的列,以减小数据集的大小。

4. 数据库的视图

数据库的视图是虚拟表,其内容基于一个或多个实际表的查询结果。视图不存储数据,而是根据查询的定义动态生成结果。视图的作用包括:

  • 简化复杂的查询:将复杂的查询逻辑封装在视图中,以便用户可以轻松执行查询。
  • 数据安全性:通过视图,可以限制用户只能访问他们需要的数据,而不是整个表。
  • 数据抽象:视图可以隐藏底层表的细节,使用户更容易理解和使用数据。

5. MySQL的触发器类型

MySQL支持以下类型的触发器:

  • BEFORE INSERT:在插入数据之前触发。
  • AFTER INSERT:在插入数据之后触发。
  • BEFORE UPDATE:在更新数据之前触发。
  • AFTER UPDATE:在更新数据之后触发。
  • BEFORE DELETE:在删除数据之前触发。
  • AFTER DELETE:在删除数据之后触发。

触发器允许您在数据库中定义自动化操作,以响应特定的数据更改事件。

6. MySQL表的备份和恢复

备份MySQL表可以使用工具如mysqldump或通过复制数据文件来完成。要备份单个表,可以使用以下命令:

mysqldump -u username -p dbname tablename > table_backup.sql

要恢复备份的表,可以使用以下命令:

mysql -u username -p dbname < table_backup.sql

7. MySQL存储引擎

MySQL支持多种存储引擎,包括:

  • InnoDB:支持事务、外键和行级锁,适用于事务性应用。
  • MyISAM:不支持事务,但速度快,适用于只读或读写很少的应用。
  • MEMORY:将数据存储在内存中,速度非常快,但不持久。
  • CSV:用于读写CSV文件格式的数据。
  • ARCHIVE:用于存储大量归档数据。
  • 等等。

每种存储引擎都有其独特的特点和适用场景。

8. 索引优化

索引优化是通过创建适当的索引来提高数据库查询性能的过程。索引可以加速查询,特别是在大型表中。在MySQL中,优化索引是非常重要的,因为它可以大幅提高查询效率。

正确选择哪些列创建索引、使用合适的索引类型和定期维护索引都是索引优化的关键方面。

9. MySQL中的子查询

子查询是一个查询嵌套在另一个查询内部的查询。它可以用于WHERE子句、FROM子句和SELECT子句中。

例如,使用子查询来查找某个表中某个列的最大值:

SELECT column1
FROM table_name
WHERE column2 = (SELECT MAX(column2) FROM table_name);

10. 使用连接(JOIN)从多个表中检索数据

使用连接(JOIN),您可以从多个相关联的表中检索数据。例如,使用INNER JOIN连接两个表:

SELECT orders.order_id, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;

上述查询将检索包含订单ID和客户名称的数据,连接了 “orders” 表和 “customers” 表。

相关文章:

MySQL学习系列(2)-每天学习10个知识

目录 1. INNER JOIN 和 ON 子句2. 死锁3. SELECT * 和 SELECT column1, column24. 数据库的视图5. MySQL的触发器类型6. MySQL表的备份和恢复7. MySQL存储引擎8. 索引优化9. MySQL中的子查询10. 使用连接&#xff08;JOIN&#xff09;从多个表中检索数据 &#x1f44d; 点赞&am…...

黑马JVM总结(十四)

&#xff08;1&#xff09;分代回收_1 Java虚拟机都是结合前面几种算法&#xff0c;让他们协同工作&#xff0c;具体实现是虚拟机里面一个叫做分代的垃圾回收机制&#xff0c;把我们堆内存大的区域划分为两块新生代、老年代 新生代有划分为伊甸园、幸存区Form、幸存区To 为什…...

vue项目升级webpack

vue项目升级webpack 目录 1. vue项目中影响webpack版本的是什么 2.理解package.json中库前缀^和~区别 3.升级webpack4到5操作 1. vue项目中影响webpack版本的是什么 答案是&#xff1a;vue/cli-service版本 2.理解package.json中库前缀^和~区别 x.y.z x代表大版本&#xf…...

ubuntu的root用户修改密码失败

解决如下&#xff1a; 查看文件属性是否有a或i lsattr /etc/group /etc/passwd /etc/shadow 移除a和i的属性权限 chattr -ai /etc/group /etc/passwd /etc/shadow 再次使用passwd进行修改密码&#xff0c;就成功了...

C++---链表

1、链表 1.1、链表的结构 每个链表开头都有一个头指针Head尾节点的指针域为NULL&#xff0c;用于判断此列表是否结束 如果一个链表开始就为NULL&#xff0c;那么该链表为空链表 链表中的先后不代表在真实内存中的位置&#xff0c;只是单纯的逻辑上关系 1.2、创建链表 我们首…...

Unity使用Mirror制作局域网的同步

1.脚本布置.参考tank那个demo制作 1.新建空物体,为管理脚本的物体:manager,挂载NetworkManager,kcpTransport,NetworkManagerHud. 2.设置玩家出生点,spawnPoint,设置好初始化的position的位置(*),挂载NetworkStartPosition的脚本 3.新建Player的预制体,挂载NetworkIdentity,Ne…...

算法 N皇后问题-(递归回溯)

牛客网 BM59. 解题思路&#xff1a; 行列、斜叉不在一条直线上。 命令行为 row, 列为col, row 从0开始递归直到最后一行&#xff0c;列从0开始遍历&#xff0c;直到最后一列&#xff0c;中间每一步记录或清除位置状态&#xff0c;状态分为 m1[col] 1, m2[row-col] 1, m3[r…...

个人博客搭建记录

个人博客地址&#xff1a;www.jiasun.top 使用github pagehexo搭建&#xff0c;主题为fluid&#xff0c;搭建步骤参照&#xff1a;Github hexo 实现自己的个人博客、配置主题&#xff08;超详细&#xff09; 主题&#xff1a;https://hexo.fluid-dev.com/ 搭建时的问题&…...

下载vscode 更新

将下载地址的主地址加入一下镜像网址 http://vscode.cdn.azure.cn下面是访问页面 http://vscode.cdn.azure.cn/stable/abd2f3db4bdb28f9e95536dfa84d8479f1eb312d/VSCodeUserSetup-x64-1.82.2.exe...

std::async简单使用

std::async介绍并使用 std::async是C11引入的一个用于异步执行函数或函数对象的工具。它可以用于并行地执行函数&#xff0c;并在需要时获取函数的返回值。下面是一个简单的示例&#xff0c;演示了如何使用std::async&#xff1a; #include <iostream> #include <fu…...

【编程实践】在VS studio中配置Eigen库

1 介绍 Eigen库是C标准模板库&#xff0c;能够进行向量运算、矩阵运算、矢量运算、数值分析等操作&#xff0c;并且包含相应的运算算法。 Eigen官方地址: 地址 可在官网下载指定版本的压缩包&#xff0c;将压缩包解压至后面配置的“附件包含目录”中。 2 配置 2.1 VS studi…...

SQLite 3.43 发布,性能大提升!

前言 SQLite是一种被广泛运用的嵌入式关系型数据库管理系统&#xff0c;最新发布的SQLite 3.43版本带来了一个重要的改进&#xff0c;大幅提升了对JSON数据的处理性能&#xff0c;达到了之前的两倍。 主要更新 添加对 Contentless-Delete FTS5 索引的支持。这是 FTS5 全文搜索…...

数据中心液冷服务器详情说明

目录 前言 何为液冷服务器&#xff1f; 为什么需要液冷&#xff1f; 1.数据中心降低PUE的需求 2.政策导向 3.芯片热功率已经达到风冷散热极限 4.液冷比热远大于空气 液冷VS风冷&#xff0c;区别在哪&#xff1f; 1.液冷服务器跟风冷服务器的区别 2.液冷数据中心跟风冷…...

Openresty(二十二)ngx.balance和balance_by_lua终结篇

一 灰度发布铺垫 ① init_by_lua* init_by_lua init_by_lua_block 特点: 在openresty start、reload、restart时执行,属于master init 阶段机制&#xff1a; nginx master 主进程加载配置文件时&#xff0c;运行全局Lua VM级别上的参数指定的Lua代码场景&#xff1a; …...

Docker注入环境变量且设置多个环境变量

方式一 运行docker命令修改 在运行docker时&#xff0c;直接使用-e或–env&#xff0c;输入需要改变的变量 例如&#xff1a;springboot配置文件如下,可注入环境变量启动端口SERVER_PORT&#xff0c;以及启动配置文件NODE_ENV:dev server:port: ${SERVER_PORT:8400} spring…...

代码随想录二刷Day 15

102. Binary Tree Level Order Traversal vector<int>() it is basically constructor of std::vector class and will create a new empty vector. You can also mention the size of required vector in brackets. 访问二维vector的元素: 如果指定外层和内层向量的大…...

Node.js环境安装与服务设置,结合内网穿透随时随地公网访问!

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…...

八、数据类型转换

数据类型转换 1.数据类型转换1.1.隐式类型转换1.2.显式类型转换1.3.训练11.4.训练2 —————————————————————————————————————————————————— 1.数据类型转换 类型转换是将一个值从一种类型更改为另一种类型的过程。例如&…...

2023数学建模研赛华为杯E题思路-出血性脑卒中临床智能诊疗建模

E 题 出血性脑卒中临床智能诊疗建模 三、请建模回答如下问题 1血肿扩张风险相关因素探索建模。 a)请根据“表1”&#xff08;字段&#xff1a;入院首次影像检查流水号&#xff0c;发病到首次影像检查时间间隔&#xff09;&#xff0c;“表2”&#xff08;字段&#xff1a;各时…...

Windows Server 2012 R2系统远程桌面的数字证书算法SHA1升级到SHA256

问题描述&#xff1a; 最近项目进行密评的时候&#xff0c;Windows Server 2012 R2发现了以下证书问题&#xff1a; Windows Server 2012 R2系统远程桌面的TLS 1.2协议使用SHA1算法数字证书&#xff0c;且证书有效日期截止23年10月&#xff0c;建议注意证书到期时间&#xff…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

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

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

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

云安全与网络安全:核心区别与协同作用解析

在数字化转型的浪潮中&#xff0c;云安全与网络安全作为信息安全的两大支柱&#xff0c;常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异&#xff0c;并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全&#xff1a;聚焦于保…...