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

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...