当前位置: 首页 > 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):"""…...

告别环境配置烦恼:手把手教你搞定Qualcomm AI Engine Direct在Windows和Linux下的开发环境

高通AI引擎开发环境全攻略&#xff1a;Windows与Linux双平台实战指南 第一次打开Qualcomm AI Engine Direct SDK的压缩包时&#xff0c;你可能会有种面对乐高零件箱的错觉——各种架构的库文件、不同平台的工具链、错综复杂的依赖关系扑面而来。作为曾在多个芯片平台迁移AI模型…...

小白程序员必看:四步轻松构建你的第一个AI编码Agent,收藏学习!

本文详细介绍了如何通过四个步骤构建一个基础的AI编码Agent&#xff0c;包括接入大型语言模型&#xff08;LLM&#xff09;、添加实用工具&#xff08;如读取、写入和执行文件&#xff09;、构建Agent循环以及实现对话循环。文章以Python语言为例&#xff0c;逐步引导读者完成整…...

人工智能导论:模型与算法(未来发展与趋势)

9 人工智能未来发展和趋势 人工智能作为引领新一轮科技革命和产业变革的战略性技术&#xff0c;正在深刻改变人类社会。本章从类脑计算、自动化机器学习、神经网络压缩、人工智能芯片、量子机器学习、人工智能伦理与治理、人工智能算法开发框架等方面&#xff0c;简要总结人工智…...

JavaScript进阶:ES6+特性与异步编程

JavaScript进阶&#xff1a;ES6特性与异步编程 1. 技术分析 1.1 ES6概述 ES6为JavaScript带来了革命性的改进&#xff1a; ES6特性变量声明: let, const箭头函数: () > {}解构赋值: const {a, b} obj类: class语法模块化: import/export异步编程:Promiseasync/awaitGenerat…...

BENTLY NEVADA 330980-51-00传感器测量系统

BENTLY NEVADA 330980-51-00 是一款本特利内华达出品的传感器测量系统&#xff0c;专用于旋转机械的振动、位移及转速监测&#xff0c;广泛应用于汽轮机、压缩机、风机等关键设备。中间&#xff1a;15条产品特点330980-51-00 采用涡流传感器原理&#xff0c;非接触测量&#xf…...

Perplexity被操控?数据溯源能力全解析,3类高危误判场景+实时交叉验证方案

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Perplexity被操控&#xff1f;数据溯源能力全解析&#xff0c;3类高危误判场景实时交叉验证方案 Perplexity 作为语言模型评估与推理可信度的关键指标&#xff0c;正面临日益隐蔽的数据污染与人为诱导风险。当…...

国内开通 GPT 会员的自助充值流程记录

国内用户开通 GPT Plus / Pro&#xff0c;比较常见的卡点是支付方式、流程步骤和账号安全。我看了下 cdk.hohy6.com 这个页面&#xff0c;它的流程比较直接&#xff1a;选择套餐&#xff0c;填写 Session Token&#xff0c;支付宝付款&#xff0c;然后系统为自己的 ChatGPT 账号…...

避坑指南:STM32 HAL库SPI读写W25Q64时,你可能遇到的时序问题和调试技巧

STM32 HAL库SPI驱动W25Q64实战&#xff1a;时序陷阱与波形诊断全解析 当你的SPI Flash突然开始"装聋作哑"&#xff0c;返回的不是预期数据而是清一色的0xFF或0x00时&#xff0c;这往往不是芯片的罢工抗议&#xff0c;而是时序对话中的"鸡同鸭讲"。本文将带…...

无参考视频质量评估:AI如何在没有标准答案时评判视频画质

1. 项目概述&#xff1a;当AI成为视频的“质检员”在视频内容爆炸式增长的今天&#xff0c;我们每天都会接触到海量的视频流——从手机随手拍的短视频&#xff0c;到专业制作的影视剧&#xff0c;再到监控摄像头24小时不间断的记录。你有没有想过&#xff0c;这些视频的“画质”…...

GEE实战:Landsat 8 TOA和SR数据去云处理,保姆级代码对比与避坑指南

GEE实战&#xff1a;Landsat 8 TOA与SR数据去云处理深度解析 当你在Google Earth Engine&#xff08;GEE&#xff09;平台上处理Landsat 8数据时&#xff0c;是否曾为选择TOA&#xff08;大气层顶反射率&#xff09;还是SR&#xff08;地表反射率&#xff09;而犹豫不决&#x…...