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

MySQL学习笔记15

1、内连接查询(重点):

基本语法:

select 数据表1.字段列表,数据表2.字段列表 from 数据表1 inner join 数据表2 on 连接条件;

案例:获取产品表中每个产品的分类信息:

mysql> select * from tb_goods inner join tb_category;
+----+-------------+---------+------+----+--------------+------+
| id | title       | price   | cid  | id | name         | pid  |
+----+-------------+---------+------+----+--------------+------+
|  1 | IPhone 11   | 5699.00 |    1 |  1 | 手机         |    0 |
|  1 | IPhone 11   | 5699.00 |    1 |  2 | 电脑         |    0 |
|  1 | IPhone 11   | 5699.00 |    1 |  3 | 游戏手机     |    1 |
|  2 | MI 10       | 4699.00 |    1 |  1 | 手机         |    0 |
|  2 | MI 10       | 4699.00 |    1 |  2 | 电脑         |    0 |
|  2 | MI 10       | 4699.00 |    1 |  3 | 游戏手机     |    1 |
|  3 | ThinkPad X1 | 9999.00 |    2 |  1 | 手机         |    0 |
|  3 | ThinkPad X1 | 9999.00 |    2 |  2 | 电脑         |    0 |
|  3 | ThinkPad X1 | 9999.00 |    2 |  3 | 游戏手机     |    1 |
|  4 | Nike air    |  999.00 |   10 |  1 | 手机         |    0 |
|  4 | Nike air    |  999.00 |   10 |  2 | 电脑         |    0 |
|  4 | Nike air    |  999.00 |   10 |  3 | 游戏手机     |    1 |
+----+-------------+---------+------+----+--------------+------+
12 rows in set (0.00 sec)mysql> select * from tb_goods inner join tb_category on tb_goods.cid = tb_category.id;
+----+-------------+---------+------+----+--------+------+
| id | title       | price   | cid  | id | name   | pid  |
+----+-------------+---------+------+----+--------+------+
|  1 | IPhone 11   | 5699.00 |    1 |  1 | 手机   |    0 |
|  2 | MI 10       | 4699.00 |    1 |  1 | 手机   |    0 |
|  3 | ThinkPad X1 | 9999.00 |    2 |  2 | 电脑   |    0 |
+----+-------------+---------+------+----+--------+------+
3 rows in set (0.00 sec)

然后,我们只要部分字段,那我们就要进行具体指定:

mysql> select tb_goods.*,tb_category.name from tb_goods inner join tb_category on tb_goods.cid = tb_cat
egory.id;
+----+-------------+---------+------+--------+
| id | title       | price   | cid  | name   |
+----+-------------+---------+------+--------+
|  1 | IPhone 11   | 5699.00 |    1 | 手机   |
|  2 | MI 10       | 4699.00 |    1 | 手机   |
|  3 | ThinkPad X1 | 9999.00 |    2 | 电脑   |
+----+-------------+---------+------+--------+
3 rows in set (0.00 sec)

产品表中的所有的字段和产品目录中的name字段。

内连接查询:把两个表甚至多个表进行连接,然后拿表1中的每一条记录与表2中的每一条记录进行匹配,如果有与之对应的结果,则显示。反之,则忽略这条记录。

2、外连接查询(重点):

内连接查询要求,表1和表2中的每一条记录都必须一一对应,如果无法匹配,则这条记录会被忽略掉,那如果我需要保留表1中的所有记录或者表2中的所有记录,怎么办?

答:使用外连接查询。

基本语法:

左外连接查询;把左表中的每一条数据都保留,右表匹配到结果就显示,匹配不到就NULL

select 数据表1.字段列表,数据表2.字段列表 from 数据表1 left join 数据表2 on 连接条件;

右外连接查询:把右表中的每一条数据都保留,左表匹配到结果就显示,匹配不到就NULL

select 数据表1.字段列表,数据表2.字段列表 from 数据表1 right join 数据表2 on 连接条件;

案例:获取产品表中的每个产品的分类信息,(无论匹配到与否)

mysql> select tb_goods.*,tb_category.name from tb_goods left join tb_category on tb_goods.cid = tb_category.id;
+----+-------------+---------+------+--------+
| id | title       | price   | cid  | name   |
+----+-------------+---------+------+--------+
|  1 | IPhone 11   | 5699.00 |    1 | 手机   |
|  2 | MI 10       | 4699.00 |    1 | 手机   |
|  3 | ThinkPad X1 | 9999.00 |    2 | 电脑   |
|  4 | Nike air    |  999.00 |   10 | NULL   |
+----+-------------+---------+------+--------+
4 rows in set (0.00 sec)

别名机制,简化内外连接

原始语句:

mysql> select tb_goods.*,tb_category.name from tb_goods left join tb_category on tb_goods.cid=tb_category.id;

给数据表起个简单的名字,如tb_category叫c,tb_goods叫g

① mysql> select * from tb_goods left join tb_category;
起别名
② mysql> select * from tb_goods g left join tb_category c;
写on条件
③ mysql> select * from tb_goods g left join tb_category c on g.cid=c.id;
筛选字段
④ mysql> select g.*,c.name from tb_goods g left join tb_category c on g.cid=c.id;

想成为高级的数据库管理员(DBA),数据库还是非常重要的。

作为运维人员,还是要做掌握一些知识。

相关文章:

MySQL学习笔记15

1、内连接查询(重点): 基本语法: select 数据表1.字段列表,数据表2.字段列表 from 数据表1 inner join 数据表2 on 连接条件; 案例:获取产品表中每个产品的分类信息: mysql> select * from tb_goods …...

6、SpringBoot_项目的打包与运行

七、SpringBoot项目的打包与运行 1.目前项目怎么运行的 通过浏览器访问idea 将jar部署到服务器 2.maven 打包项目 命令 mvn package使用命令后会得到如下的jar 3.程序运行 命令 java -jar 项目.jar启动如下 4.springboot打包需要插件 插件 <plugin><group…...

图像语义分割概述

图像语义分割概述 一、图像语义分割概念 图像语义分割&#xff08;Image Semantic Segmentation&#xff09;是一项计算机视觉任务&#xff0c;其目标是将输入的图像分割成多个区域&#xff0c;并为每个像素分配一个语义类别标签&#xff0c;以表示该像素属于图像中的哪个物体…...

ViT细节与代码解读

最近看到两篇解读ViT很好的文章&#xff0c;备忘记录一下&#xff1a; 先理解细节 1&#xff1a;再读VIT&#xff0c;还有多少细节是你不知道的 再理解代码 1&#xff1a;ViT源码阅读-PyTorch - 知乎...

Linux中软链接与硬链接的作用、区别、创建、删除

1、软链接与硬链接的作用 (1)软链接 软链接是Linux中常用的命令,它的功能是某一文件在另外一个位置建立一个同步的链接,相当于C语言中的指针,建立的链接直接指向源文件所在的地址,软链接不会另外占用资源,当同一文件需要在多个位置被用到的时候,就会使用到软连接。 …...

第一章:最新版零基础学习 PYTHON 教程(第十四节 - Python 条件和循环语句–Python 中的 with 语句)

在Python中,with语句用于异常处理,使代码更简洁、更具可读性。它简化了文件流等公共资源的管理。观察以下代码示例,了解使用 with 语句如何使代码更简洁。 Python3 # 文件处理# 1) 不使用with语句 file = open(文件路径, w) # 打开文件以进行写操作 file.write(你好,世界…...

安科瑞AMC16-DETT铁塔jizhan直流电能计量模块,直流计量用

安科瑞虞佳豪壹捌柒陆壹伍玖玖零玖叁 9月20日&#xff0c;在杭州亚运会火炬传递的现场&#xff0c;不少人通过网络与亲友连线&#xff0c;共同见证火炬传递的历史时刻。上午6时&#xff0c;杭州铁塔的一线通信保障人员共27人就已经在本次火炬传递收官点位奥体中心西广场附近&a…...

WebGL笔记:WebGL中JS与GLSL ES 语言通信,着色器间的数据传输示例:js控制绘制点位

js改变点位&#xff0c;动态传值 <canvas id"canvas"></canvas><!-- 顶点着色器 --><script id"vertexShader" type"x-shader/x-vertex">attribute vec4 a_Position;void main() {// 点位gl_Position a_Position;// 尺…...

一文读懂 Redis 缓存系统

【摘要】本文介绍了Redis缓存原理、详细解析了缓存模型、缓存一致性和缓存异常场景。 【作者】李杰&#xff0c;专注于Java虚拟机技术、云原生技术领域的探索与研究。 尽管&#xff08;关系型&#xff09;数据库系统 (SQL) 带来了许多出色的属性&#xff0c;例如 ACID&#x…...

初识Java 10-1 集合

目录 泛型和类型安全的集合 基本概念 添加一组元素 打印集合 List Iterator&#xff08;迭代器&#xff09; 本笔记参考自&#xff1a; 《On Java 中文版》 在进行程序设计时我们会发现&#xff0c;程序总是会根据某些在运行时才能知道的条件来创建新的对象。这意味着&am…...

Linux- pipe()系统调用

管道 管道&#xff08;Pipe&#xff09;是一种用于进程间通信&#xff08;IPC&#xff09;的简单而有效的方式。在UNIX和类UNIX操作系统&#xff08;如Linux&#xff09;中&#xff0c;管道提供了一种让一个进程将其输出发送给另一个进程的输入的机制。管道通常用于数据流的单…...

数据库常用指令

检查Linux系统是否已经安装了MySQL&#xff1a; sudo service mysql start...

[Studio]Manifest merger failed with multiple errors, see logs 解决方法

记录一个引入库时经常会出错的问题 最近使用一个图片上传库后项目代码报了一个错&#xff1a; Execution failed for task :app:processDebugManifest. > Manifest merger failed with multiple errors, see logs* Try: Run with --info or --debug option to get more lo…...

【数据结构与算法】不就是数据结构

前言 嗨喽小伙伴们你们好呀&#xff0c;好久不见了,我已经好久没更新博文了&#xff01;之前因为实习没有时间去写博文&#xff0c;现在已经回归校园了。我看了本学期的课程中有数据结构这门课程&#xff08;这么课程特别重要&#xff09;&#xff0c;因为之前学过一点&#xf…...

封装一个高级查询组件

封装一个高级查询组件 背景一&#xff0c;前端相关代码二&#xff0c;后端相关代码三&#xff0c;呈现效果总结 背景 业务有个按照自定义选择组合查询条件&#xff0c;保存下来每次查询的时候使用的需求。查了一下项目里的代码没有现成的组件可以用&#xff0c;于是封装了一个 …...

代码随想录第七章 栈与队列

1、leecode232 用栈实现队列 使用栈模拟队列的行为&#xff0c;仅使用一个栈是不行的&#xff0c;所以需要两个栈&#xff0c;一个是输入栈&#xff0c;一个是输出栈。 #include<iostream> #include<vector> #include<string> #include<stack> #incl…...

SQL Server对象类型(5)——4.5. 同义词(Synonym)

4.5. 同义词(Synonym) 4.5.1. 同义词概念 与Oracle中相同,SQL Server中的同义词是虚的、被定义的模式对象,其本身并不存储任何数据。其用途之一就是为其他类型基础对象提供一个别名;用途之二就是为应用提供一个抽象层,以方便后期应用相关的基础对象的更改和维护。用户可…...

IP风险查询:抵御DDoS攻击和CC攻击的关键一步

随着互联网的普及&#xff0c;网络攻击变得越来越普遍和复杂&#xff0c;对企业和个人的网络安全构成了重大威胁。其中&#xff0c;DDoS&#xff08;分布式拒绝服务&#xff09;攻击和CC&#xff08;网络连接&#xff09;攻击是两种常见且具有破坏性的攻击类型&#xff0c;它们…...

Tune-A-Video论文阅读

论文链接&#xff1a;Tune-A-Video: One-Shot Tuning of Image Diffusion Models for Text-to-Video Generation 文章目录 摘要引言相关工作文生图扩散模型文本到视频生成模型文本驱动的视频编辑从单个视频生成 方法前提DDPMsLDMs 网络膨胀微调和推理模型微调基于DDIM inversio…...

Dataset和DataLoader用法

Dataset和DataLoader用法 在d2l中有简洁的加载固定数据的方式&#xff0c;如下 d2l.load_data_fashion_mnist() # 源码 Signature: d2l.load_data_fashion_mnist(batch_size, resizeNone) Source: def load_data_fashion_mnist(batch_size, resizeNone):"""…...

两种方案深度解析:如何免费解锁WeMod专业功能

两种方案深度解析&#xff1a;如何免费解锁WeMod专业功能 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 游戏玩家常常面临一个困境&#xff1a;想要使用…...

ConvNeXt 改进 :ConvNeXt添加MKDConv(多核深度卷积,ICCV 2025),二次创新CNBlock结构 ,独家首发

本文教的是方法,也给出几种改进方法,二次创新结构,百变不离其宗,一文带你改进自己模型,科研路上少走弯路。 前言 本文解析的是发表于 ICCVW 2025 的轻量化医学影像分割网络 MK-UNet。在医学图像处理领域,病灶(如肿瘤、息肉)的尺度变化剧烈,传统的单核 CNN 难以平衡局…...

从电桥到差分放大:三线制PT100测温电路的设计实践与精度考量

1. 三线制PT100测温电路的设计背景 温度测量在工业自动化、医疗设备、环境监测等领域都是基础且关键的技术需求。PT100作为一种广泛使用的铂电阻温度传感器&#xff0c;凭借其优异的线性度和稳定性&#xff0c;成为高精度测温的首选之一。但在实际应用中&#xff0c;如何准确测…...

基于模糊控制的改进DWA算法功能详解

改进动态窗口DWA算法&#xff0c;模糊控制自适应调整评价因子权重&#xff0c;matlab代码 这段代码是一个基于动态窗口法&#xff08;Dynamic Window Approach&#xff0c;DWA&#xff09;的路径规划算法的实现。下面我将对代码进行分析&#xff0c;并解释算法的优势、需要注意…...

D3KeyHelper:暗黑3玩家必备的终极按键助手,彻底告别手指疲劳

D3KeyHelper&#xff1a;暗黑3玩家必备的终极按键助手&#xff0c;彻底告别手指疲劳 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面&#xff0c;可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 还在为暗黑破坏神…...

多智能体仓库AI指挥层技术架构

多智能体仓库AI指挥层实现运营卓越与供应链智能 仓库的“大脑”&#xff1a;解决碎片化运营难题 尽管仓库的自动化和数据丰富程度已达历史新高&#xff0c;但多数站点仍然依赖一套难以跟上节奏的系统&#xff1a;仓库管理系统&#xff08;WMS&#xff09;、少量仪表盘和分散的…...

(支援发出,转发需官方授权)某个名师大家可能还是一个女的自称“廉者不受嗟来之食”对自己对自己的学生和想要招(找)的学生都一样。

&#xff08;支援发出&#xff0c;转发需官方授权&#xff09;某个名师大家可能还是一个女的自称“廉者不受嗟来之食”对自己对自己的学生和想要招&#xff08;找&#xff09;的学生都一样。...

KK-HF Patch技术指南:从安装到优化的完整解决方案

KK-HF Patch技术指南&#xff1a;从安装到优化的完整解决方案 【免费下载链接】KK-HF_Patch Automatically translate, uncensor and update Koikatu! and Koikatsu Party! 项目地址: https://gitcode.com/gh_mirrors/kk/KK-HF_Patch 价值定位&#xff1a;为什么选择KK-…...

通用GUI编程技术——Win32 原生编程实战(二十三)——GDI 双缓冲技术:消除闪烁完全指南

通用GUI编程技术——Win32 原生编程实战&#xff08;二十三&#xff09;——GDI 双缓冲技术&#xff1a;消除闪烁完全指南 前言&#xff1a;为什么我的界面在闪烁 说实话&#xff0c;这个闪烁问题困扰了我很久。 当你刚接触 Win32 GDI 编程&#xff0c;写出一个可以响应窗口…...

Ryujinx模拟器技术解析与实践指南

Ryujinx模拟器技术解析与实践指南 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 价值主张&#xff1a;重新定义主机游戏体验 在当代游戏技术发展历程中&#xff0c;模拟器扮演着连接…...