MySQL基础知识(三)

内连接

MySQL中的内连接(Inner Join)是一种用于合并两个或多个表中符合特定条件的行的方法。内连接返回仅在连接条件满足的情况下存在于两个表中的行。内连接通常用于检索具有相关信息的数据,以便将它们合并在一起。
简单来说就是通过内连接检索表之间的关系,然后进行相关的操作

内连接的语法:

使用INNER JOIN关键字:

SELECT columns
FROM table1
INNER JOIN table2 ON table1.column = table2.column;

这是最常见的内连接语法,使用INNER JOIN关键字,后跟连接的表以及连接条件。

使用,逗号(隐式内连接):

SELECT columns
FROM table1, table2
WHERE table1.column = table2.column;

 在FROM子句中列出多个表,然后在WHERE子句中指定连接条件。这是一种隐式内连接的写法。

使用USING子句:

SELECT columns
FROM table1
INNER JOIN table2 USING (common_column);

使用USING子句可以简化连接条件,前提是两个表中具有相同名称的列,这样的列称为共享列。

使用ON子句:

SELECT columns
FROM table1
JOIN table2 ON table1.column = table2.column;

 ON子句用于指定连接条件,可以在JOIN关键字之后使用。

下面我们看一个例子来快速入门内连接的使用

假设有两个表,一个是“users”表,另一个是“orders”表。这两个表之间有一个共同的列“user_id”:

CREATE TABLE users (user_id INT PRIMARY KEY,username VARCHAR(50)
);CREATE TABLE orders (order_id INT PRIMARY KEY,user_id INT,product_name VARCHAR(50),amount DECIMAL(10, 2)
);INSERT INTO users (user_id, username) VALUES
(1, 'Alice'),
(2, 'Bob'),
(3, 'Charlie');INSERT INTO orders (order_id, user_id, product_name, amount) VALUES
(101, 1, 'Laptop', 1200.00),
(102, 2, 'Smartphone', 800.00),
(103, 1, 'Tablet', 300.00),
(104, 3, 'Headphones', 50.00);

现在,我们可以使用内连接来获取用户和他们的订单信息:

SELECT users.user_id, users.username, orders.order_id, orders.product_name, orders.amount
FROM users
INNER JOIN orders ON users.user_id = orders.user_id;

select输出所有的表中字段速度会大于*号这种写法的速度

外连接

左外连接

左外连接指的就是说使用关键字left进行查询

基本写法:

SELECT 字段列表 FROM 表1 LEFT [outer] JOIN 表二 ON 连接条件

这个字段列表的位置,是按照你需要的需求进行填写,该部分内容可以直接使用别名.字段名的形式书写

右连接

使用写法同左连接一样但是关键词是不同的,有链接使用的关键词是right,基本语法

SELECT 字段列表 FROM 表1 LEFT [outer] JOIN 表二 ON 连接条件

直接使用该内容,效果同左连接一样,只是区别写的顺序。

子查询

使用嵌套select语句 称为嵌套查询又称子查询

形式 :select * from t1 where column1 = (select column1 from t2.....)

子查询外部的语句可以是insert/update/select其中的任何一个

分类

在 WHERE 子句中使用子查询作为条件:

SELECT column1, column2, ...
FROM table_name
WHERE column_name IN (SELECT column_name FROM another_table);

在 FROM 子句中使用子查询作为数据源:

SELECT *
FROM (SELECT column1, column2, ... FROM table_name) AS derived_table;

在 SELECT 子句中使用子查询作为列:

SELECT column1, column2, (SELECT column3 FROM another_table) AS column_alias
FROM table_name;

需要注意的是,在使用子查询时,你需要确保子查询的结果与外部查询相兼容,并且不会引起性能问题。子查询的结果可以是单行单列,也可以是多行多列,取决于你的需求。

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

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

相关文章

2018年认证杯SPSSPRO杯数学建模A题(第二阶段)海豚与沙丁鱼全过程文档及程序

2018年认证杯SPSSPRO杯数学建模 基于聚类分析的海豚捕食合作策略 A题 海豚与沙丁鱼 原题再现: 沙丁鱼以聚成大群的方式来对抗海豚的捕食。由于水下光线很暗,所以在距离较远时,海豚只能使用回声定位方法来判断鱼群的整体位置,难…

第4章 C++的类

类的保留字:class、struct 或 union 可用来声明和定义类。类的声明由保留字class、struct或union加上类的名称构成。类的定义包括类的声明部分和类的由{}括起来的主体两部分构成。类的实现通常指类的函数成员的实现,即定义类的函数成员。 class 类名;//…

【算法题】62. 不同路径

题目 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。 问总共有多少条不同的路径? …

C#,字符串匹配(模式搜索)Sunday算法的源代码

Sunday算法是Daniel M.Sunday于1990年提出的一种字符串模式匹配算法。 核心思想:在匹配过程中,模式串并不被要求一定要按从左向右进行比较还是从右向左进行比较,它在发现不匹配时,算法能跳过尽可能多的字符以进行下一步的匹配&…

港科夜闻|香港科大团队研发多功能,可重构和抗破坏单线感测器阵列

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科大团队研发多功能、可重构和抗破坏单线感测器阵列。研究人员开发出一种受人类听觉系统启发的感测器阵列设计技术。透过模仿人耳根据音位分布来区分声音的能力,这种新型感测器阵列方法可能优化感测器阵列…

Yolov8_使用自定义数据集训练模型1

前面几篇文章介绍了如何搭建Yolov8环境、使用默认的模型训练和推理图片及视频的效果、并使用GPU版本的torch加速推理、导出.engine格式的模型进一步利用GPU加速,本篇介绍如何自定义数据集,这样就可以训练出识别特定物体的模型。 《Yolov8_使用自定义数据…

innoDB存储引擎

1.逻辑存储结构 行数据->行->页->区->段->表空间 表空间(ibd文件),一个mysql实例可以对应多个表空间,来存储记录,索引等数据。 段:分为数据段和索引段,回滚段,数据段就是B树的叶子节点&am…

HR3D+HRAuido+HRUI+HR3D_Plugins(游戏引擎源码)

国内知名游戏公司开发的游戏引擎,简洁高效,代码值得参考。包含了这几部分:HR3DHRAuidoHRUIHR3D_Plugins HR3DHRAuidoHRUIHR3D_Plugins(游戏引擎源码) 下载地址: 链接:https://pan.baidu.com/s/1…

使用Apache Spark处理Excel文件的简易指南

前言 在日常的工作中,表格内的工具是非常方便的x,但是当表格变得非常多的时候,就需要一些特定的处理。Excel作为功能强大的数据处理软件,广泛应用于各行各业,从企业管理到数据分析,可谓无处不在。然而&…

使用xbindkeys设置鼠标侧键

1.安装如下包 sudo apt install xbindkeys xautomation 2.生成配置文件 xbindkeys --defaults > $HOME/.xbindkeysrc 3.确定侧键键号 在终端执行下面的代码: xev | grep button 此时会出现如下窗口,将鼠标指针移动到这个窗口上: 单…

如何应对利用加密隧道发起的网络攻击?

日前,网络安全公司Zscaler的 ThreatLabz研究团队编写发布了《2023年加密攻击态势调查报告》,报告数据显示,目前85.9%的网络威胁是通过加密通道发起的,包括恶意软件、数据窃取和网络钓鱼攻击。更重要的是,许多加密攻击使…

【机器学习】调配师:咖啡的完美预测

有一天,小明带着一脸期待找到了你这位数据分析大师。他掏出手机,屏幕上展示着一份详尽的Excel表格。“看,这是我咖啡店过去一年的数据。”他滑动着屏幕,“每个月的销售量、广告投入,还有当月的气温,我都记录…

【MYSQL】事务隔离级别

脏读、幻读、不可重复读 脏读 一个事务正在对一条记录做修改,在这个事务完成并提交前,另一个事务也来读取同一条记录,读取了这些未提交的“脏”数据,并据此做进一步的处理,就会产生未提交的数据依赖关系。这种现象被形…

APP跳转系统相机拍照和拍摄

拍照和拍摄功能&#xff0c;我们项目用得不多。最近在做&#xff0c;记录哈。 都是调用的手机自带的。 具体代码如下&#xff0c;可以结合《vue<input>标签调用 Android的获取文件》一起理解哈&#xff1b; private static Uri imageUri; private static Uri VedioUri;…

User电脑中睡眠和休眠的区别,及对不同环境下模式设置建议

睡眠模式&#xff08;Sleep&#xff09;&#xff1a; 特点&#xff1a; 电脑进入睡眠模式时&#xff0c;系统的状态会保存在RAM中&#xff0c;电脑的大部分组件都会被关闭&#xff0c;但RAM仍然得到电源供应以保持数据。这使得电脑能够快速唤醒&#xff0c;因为数据保持在内存中…

【控制篇 / 分流】(7.4) ❀ 01. 对指定IP网段访问进行分流 ❀ FortiGate 防火墙

【简介】公司有两条宽带&#xff0c;一条ADSL拨号用来上网&#xff0c;一条移动SDWAN&#xff0c;已经连通总部内网服务器&#xff0c;领导要求&#xff0c;只有访问公司服务器IP时走移动SDWAN&#xff0c;其它访问都走ADSL拨号&#xff0c;如果你是管理员&#xff0c;你知道有…

自定义 React Hooks:编写高效、整洁和可重用代码的秘密武器

欢迎来到神奇的 React 世界 大家好!在 React 的世界中,有一个强大的秘密武器,它往往隐藏在显而易见的地方,由于缺乏理解或熟悉而没有得到充分利用。 这个强大的工具,被称为自定义 React hooks,可以彻底改变我们编写 React 应用程序代码的方式。通过提取组件中的有状态逻辑,自…

查找局域网树莓派raspberry的mac地址和ip

依赖python库&#xff1a; pip install socket pip install scapy运行代码&#xff1a; import socket from scapy.layers.l2 import ARP, Ether, srpdef get_hostname(ip_address):try:return socket.gethostbyaddr(ip_address)[0]except socket.herror:# 未能解析主机名ret…

Electron Apple SignIn 登录

本人写博客&#xff0c;向来主张&#xff1a;代码要完整&#xff0c;代码可运行&#xff0c;文中不留下任何疑惑。 最讨厌写博客&#xff0c;代码只留下片段&#xff0c;文中关键的东西没写清楚。之前看了那么多文章&#xff0c;就是不告诉我clientId从哪来的。 官方资料地址&…

《Python数据分析技术栈》第02章 01 容器(Containers)

01 容器&#xff08;Containers&#xff09; 《Python数据分析技术栈》第02章 01 容器&#xff08;Containers&#xff09; In the previous chapter, we saw that a variable could have a data type like int, float, str, and so on, but holds only a single value. Cont…