MySQL入门学习-连接查询.CROSS JOIN

2024-06-23 10:44

本文主要是介绍MySQL入门学习-连接查询.CROSS JOIN,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

       CROSS JOIN(交叉连接) :返回左表中的所有行,左表中的每一行与右表中的所有行组合,返回的行数等于左表行数乘以右表行数。

一、连接查询包括:

1. CROSS JOIN(交叉连接) :

返回左表中的所有行,左表中的每一行与右表中的所有行组合。

2. INNER JOIN(内连接) :

返回左表和右表中满足连接条件的行。

3. LEFT JOIN(左外连接) :

返回左表中的所有行,以及右表中满足连接条件的行。

4. RIGHT JOIN(右外连接) :

返回右表中的所有行,以及左表中满足连接条件的行。

5. FULL JOIN(全外连接) :

返回左表和右表中的所有行,如果其中某个表中的行在另一个表中没有匹配的行,则使用 NULL 填充。

二、它们的特点:

- CROSS JOIN :

返回的行数等于左表行数乘以右表行数。

- INNER JOIN :

只返回满足连接条件的行。

- LEFT JOIN :

返回左表中的所有行,以及右表中满足连接条件的行。

- RIGHT JOIN :

返回右表中的所有行,以及左表中满足连接条件的行。

- FULL JOIN :

返回左表和右表中的所有行,如果其中某个表中的行在另一个表中没有匹配的行,则使用 NULL 填充。

三、使用方法:

- CROSS JOIN :

使用 CROSS JOIN 关键字进行连接。

- INNER JOIN :

使用 INNER JOIN 关键字,后面跟着连接条件。

- LEFT JOIN :

使用 LEFT JOIN 关键字,后面跟着连接条件。

- RIGHT JOIN :

使用 RIGHT JOIN 关键字,后面跟着连接条件。

- FULL JOIN :

使用 FULL JOIN 关键字,后面跟着连接条件。

 

四、CROSS JOIN 与其他连接查询的比较:

1. CROSS JOIN 返回的行数最多,因为它返回左表中的所有行与右表中的所有行的组合。

2. INNER JOIN 返回的行数最少,只返回满足连接条件的行。

3. LEFT JOIN 返回左表中的所有行,以及右表中满足连接条件的行。

4. RIGHT JOIN 返回右表中的所有行,以及左表中满足连接条件的行。

5. FULL JOIN 返回左表和右表中的所有行,如果其中某个表中的行在另一个表中没有匹配的行,则使用 NULL 填充。

五、高级应用:

1. 在连接查询中使用子查询。

2. 使用多个连接条件。

3. 使用 NATURAL JOIN 关键字。

4. 使用 USING 关键字。

以下是一个示例,演示了如何使用 CROSS JOIN 和其他连接查询:

```sql

-- 创建表

CREATE TABLE products (

    id INT PRIMARY KEY,

    name VARCHAR(50),

    price DECIMAL(10, 2)

);

 

CREATE TABLE orders (

    id INT PRIMARY KEY,

    order_date DATE,

    customer_id INT

);

 

CREATE TABLE order_items (

    id INT PRIMARY KEY,

    order_id INT,

    product_id INT,

    quantity INT

);

 

-- CROSS JOIN 示例

SELECT *

FROM products

CROSS JOIN orders;

 

-- INNER JOIN 示例

SELECT *

FROM products

INNER JOIN order_items ON products.id = order_items.product_id;

 

-- LEFT JOIN 示例

SELECT *

FROM products

LEFT JOIN order_items ON products.id = order_items.product_id;

 

-- RIGHT JOIN 示例

SELECT *

FROM orders

RIGHT JOIN order_items ON orders.id = order_items.order_id;

 

-- FULL JOIN 示例

SELECT *

FROM orders

FULL JOIN order_items ON orders.id = order_items.order_id;

```

(文章为作者在学习MySQL过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)

 

 

这篇关于MySQL入门学习-连接查询.CROSS JOIN的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1086935

相关文章

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

Java实现复杂查询优化的7个技巧小结

《Java实现复杂查询优化的7个技巧小结》在Java项目中,复杂查询是开发者面临的“硬骨头”,本文将通过7个实战技巧,结合代码示例和性能对比,手把手教你如何让复杂查询变得优雅,大家可以根据需求进行选择... 目录一、复杂查询的痛点:为何你的代码“又臭又长”1.1冗余变量与中间状态1.2重复查询与性能陷阱1.

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

MySQL的配置文件详解及实例代码

《MySQL的配置文件详解及实例代码》MySQL的配置文件是服务器运行的重要组成部分,用于设置服务器操作的各种参数,下面:本文主要介绍MySQL配置文件的相关资料,文中通过代码介绍的非常详细,需要... 目录前言一、配置文件结构1.[mysqld]2.[client]3.[mysql]4.[mysqldum