【MySQL数据库的表连接语句】

news2024/11/23 19:37:37

目录

  • 一、连接查询
    • 1、inner join(内连接)
    • 2、left join(左连接)
    • 3、right join(右连接)
  • 二、CREATE VIEW
  • 三、UNION
    • 取非交集的值
  • 五、CASE
  • 六、空值(NULL) 和 无值('') 的区别


一、连接查询

A表
请添加图片描述

B表

UPDATE store_info SET store_name='Washington' WHERE sales=300;

#修改一下表里面的数据方便实验

在这里插入图片描述
请添加图片描述

1、inner join(内连接)

inner join(内连接):只返回两个表中联结字段相等的行

select 左表别名.字段 from 左表 坐标别名 inner join 右表 右表别名 on 坐标别名.字段 = 右表别名.字段 

在这里插入图片描述

在这里插入图片描述
内连接的另外几种方式

select * from location a, store_info b where a.store_name = b.store_name;

在这里插入图片描述

select * from location a inner join store_info b using(store_name);

在这里插入图片描述

2、left join(左连接)

left join(左连接):返回包括左表中的所有记录和右表中联结字段相等的记录
在这里插入图片描述

select * from location A left join store_info B on A.store_name = B.store_name;

没有交集的字段就会为空
在这里插入图片描述

3、right join(右连接)

right join(右连接):返回包括右表中的所有记录和左表中联结字段相等的记录

select * from location A right join store_info B on A.store_name = B.store_name;

左表中没有的值就会为空
在这里插入图片描述

二、CREATE VIEW

视图,可以被当作是虚拟表或存储查询。

视图跟表格的不同是,表格中有实际储存数据记录,而视图是建立在表格之上的一个架构,它本身并不实际储存数据记录。
临时表在用户退出或同数据库的连接断开后就自动消失了,而视图不会消失。
视图不含有数据,只存储它的定义,它的用途一般可以简化复杂的查询。比如你要对几个表进行连接查询,而且还要进行统计排序等操作,写SQL语句会很麻烦的,用视图将几个表联结起来,然后对这个视图进行查询操作,就和对一个表查询一样,很方便。

语法:CREATE VIEW "视图表名" AS "SELECT 语句";

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

创建一个原表数据的试图表
在这里插入图片描述

在这里插入图片描述

三、UNION

两表数据
在这里插入图片描述

联集,将两个SQL语句的结果合并起来,两个SQL语句所产生的字段需要是同样的数据记录种类

UNION :生成结果的数据记录值将没有重复,且按照字段的顺序进行排序

语法:[SELECT 语句 1] UNION [SELECT 语句 2];
select store_name from location union select store_name from store_info;

UNION ALL :将生成结果的数据记录值都列出来,无论有无重复

语法:[SELECT 语句 1] UNION ALL [SELECT 语句 2];
select store_name from location union all select store_name from store_info;

在这里插入图片描述内连接求去重后的交集
在这里插入图片描述

左连接求交集
在这里插入图片描述

使用子查询的方式求交集的值

SELECT DISTINCT Store_Name FROM location WHERE (Store_Name) IN (SELECT Store_Name FROM store_info);

在这里插入图片描述

求交集

select [distinct] A.字段 from 左表 A inner join 右表 B on A.字段 = B.字段;select A.字段 from 左表 A inner join 右表 B using(同名字段);

select B.字段 from 左表 A left join 右表 B on A字段 = B.字段 where B.字段 is not null;

select A.字段 from 左表 A right join 右表 B on A.字段 = B.字段 where A字段 is not null;

select A.字段 from 左表 A,右表 B where A.字段 = B.字段;select 字段 from 左表 where 字段 in (select 字段 from 右表);

求无交集单表的无交集

select 字段 from 左表 where 字段 not in (select 字段 from 右表);

select A.字段 from 左表 A left join 右表 B on A.字段 = B.字段 where B.字段 is null;

select B.字段 from 左表 A right.join 右表 B on A.字段 = B.字段 where A.字段 is null;

多表的无交集

create view V XXX as select 字段 from 左表 union all select 字段 from 右表select 字段 from V xxx group by 字段 having count(字段) = 1;

select .子段 from (select distinct] 字段 from 左表 union all selet distinct] 字段 from 表)  group by h.字段 having countih.字段) = 1;

取非交集的值

1)联级方法中 count(*<=1
(2)左右内连接 将is not null 改为 is null
(3)子查询 外连接查询 not in (内连接查询)

五、CASE

是 SQL 用来做为 IF-THEN-ELSE 之类逻辑的关键字

语法:
SELECT CASE ("字段名")
  WHEN "条件1" THEN "结果1"
  WHEN "条件2" THEN "结果2"
  ...
  [ELSE "结果N"]
  END
FROM "表名";

# "条件" 可以是一个数值或是公式。 ELSE 子句则并不是必须的。

SELECT Store_Name, CASE Store_Name 
  WHEN 'Los Angeles' THEN Sales * 2 
  WHEN 'Boston' THEN 2000
  ELSE Sales 
  END 
"New Sales",Date 
FROM store_info;

#"New Sales" 是用于 CASE 那个字段的字段名。

在这里插入图片描述

六、空值(NULL) 和 无值(‘’) 的区别

1.无值的长度为 0,不占用空间的;而 NULL 值的长度是 NULL,是占用空间的。
2.IS NULL 或者 IS NOT NULL,是用来判断字段是不是为 NULL 或者不是 NULL,不能查出是不是无值的。
3.无值的判断使用='‘或者<>’'来处理。<> 代表不等于。
4.在通过 count()指定字段统计有多少行数时,如果遇到 NULL 值会自动忽略掉,遇到无值会加入到记录中进行计算。

sql 正则表达式的常见种类
在这里插入图片描述

select "字段" from "表名" where "字段" regexp '正则表达式';

在这里插入图片描述

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

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

相关文章

chatgpt赋能Python-python自动化办公真的有用吗_知乎

简介 如今&#xff0c;Python作为一种必学的编程语言&#xff0c;已经走进了各行各业的办公场景。Python自动化办公也逐渐成为了一个热门话题&#xff0c;很多人开始使用Python来进行一些机械化、重复性的办公工作&#xff0c;例如数据清洗、文本处理、文件管理、自动发送邮件…

专业CPU信息检测工具:CPU-Z

今天小编为大家测试了一款轻量级的CPU处理器的测试工具&#xff0c;可以查看CPU的详细信息&#xff0c;以供各位同学们学习。 一、简单介绍 CPU-Z是一款非常流行的CPU检测软件&#xff0c;被广大用户所熟知。它是目前最受欢迎的CPU检测软件之一&#xff0c;除了Intel和AMD自带…

chatgpt赋能python:Python自动化填表:省时省力的数据录入方式

Python自动化填表&#xff1a;省时省力的数据录入方式 现代社会&#xff0c;数据填写是我们日常工作中不可避免的一项任务。但手动填写数据不仅费时费力&#xff0c;还容易出错。那么有没有一种方法可以既省时又省力呢&#xff1f;答案是有的&#xff0c;那就是Python自动化填…

Swagger与knife4j接口文档组件详解

swagger介绍 相信无论是前端还是后端开发&#xff0c;都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力&#xff0c;经常来不及更新。其实无论是前端调用后端&#xff0c;还是后端调用后端&#xff…

【数据挖掘】——常见算法对比和选择

&#x1f935;‍♂️ 个人主页&#xff1a;Lingxw_w的个人主页 ✍&#x1f3fb;作者简介&#xff1a;计算机科学与技术研究生在读 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01; &#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4…

2022(一等奖)D678基于改进结构函数法的大气气溶胶遥感反演

作品介绍 1 应用背景 大气气溶胶是大气中重要的成分之一&#xff0c;是悬浮于大气中的固体和液体微粒与它们的气体载体共同组成的多相体系&#xff0c;其尺度大约在10-3到102 μm之间。大气气溶胶的特性对空气质量具有良好的指示作用&#xff0c;气溶胶的研究对空气质量的监测…

读发布!设计与部署稳定的分布式系统(2版)笔记12_超时模式

1. “模式采用量”绝不是好的质量指标 1.1. 应该形成一种“面向恢复”的思维模式 1.2. 良好的模式能为开发工程师提供架构和设计方面的指导&#xff0c;从而减少、消除或缓解系统中的裂纹产生的影响 1.2.1. 在新发布软件后&#xff0c;它们能让你睡个安稳觉 2. 超时 2.1. …

车载网络测试 - CANCANFD - 基础篇_04

9、CAN报文包含帧格式 1&#xff09;数据帧 2&#xff09;远程帧 3&#xff09;错误帧 4&#xff09;过载帧 SOF&#xff1a;Start Of Frame&#xff0c;帧起始位&#xff1b;一个显性位&#xff0c;表明一帧的开始 RTR&#xff1a;Remote Transmission Request&#xff0c;远…

数字孪生世界建设核心能力:数字孪生高效建模能力

创建高保真的数字孪生体虚拟模型是构建数字孪生应用的重要步骤之一&#xff0c;需要真实的再现物理实体的几何图形、属性、行为和规则等。数字孪生体模型不仅要在几何结构上与物理实体保持一致&#xff0c;更重要的是要能模拟物理实体的时空状态、行为、功能等。 1、三维数字孪…

python爬虫之Scrapy框架--日志信息--数据提取

目录 Scrapy日志信息 了解日志信息 关于日志信息的重要性 利用日志信息进行调试和优化 Scrapy数据的提取 选择器&#xff08;Selector&#xff09;的基本使用 Item的定义与使用 数据处理与管道&#xff08;Pipeline&#xff09; Scrapy日志信息 在开发和调试过程中&a…

chatgpt赋能python:Python能跨平台吗?一文详解

Python 能跨平台吗&#xff1f;一文详解 Python 是一种高级编程语言&#xff0c;自问世以来就一直备受欢迎。其简洁明了的语法&#xff0c;高效率的开发和优秀的文档支持为 Python 赢得了数量众多的粉丝。与其他编程语言相比&#xff0c;Python 最大的优势之一是其可在多个操作…

基于Java应急资源管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a; ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精…

什么是HuggingFace

一.HuggingFace简介 1.HuggingFace是什么 可以理解为对于AI开发者的GitHub&#xff0c;提供了模型、数据集&#xff08;文本|图像|音频|视频&#xff09;、类库&#xff08;比如transformers|peft|accelerate&#xff09;、教程等。 2.为什么需要HuggingFace 主要是HuggingFace…

机器学习——决策树算法

一、实验目的 掌握如何实现决策树算法&#xff0c;用并决策树算法完成预测。 二、实验内容 本次实验任务我们使用贷款申请样本数据表&#xff0c;该数据表中每列数据分别代表ID、年龄、高薪、有房、信贷情况、类别&#xff0c;我们根据如下数据生成决策树&#xff0c;使用代…

Python基础 P7 字典和集合

文章目录 Python基础 P7 字典和集合字典字典基础内置函数增操作fromkeys()删操作pop()、popitems()和clear()改操作update()查操作get()和in/not in视图对象keys(),values(),items()拷贝copy()setdefault() 其他函数键值数量len()列表转换list()迭代器转换iter()逆向序列revers…

【初识C语言(1)】变量和常量

文章目录 1. 局部变量和全局变量2. 变量的作用域和生命周期3. 常量 生活中的有些值是不变的&#xff08;比如&#xff1a;圆周率&#xff0c;性别&#xff0c;身份证号码&#xff0c;血型等等&#xff09;有些值是可变的&#xff08;比如&#xff1a;年龄&#xff0c;体重&…

GitHub 上数百万个存储库可能容易被劫持

GitHub 上数以百万计的企业软件存储库很容易受到重新劫持&#xff0c;这是一种相对简单的软件供应链攻击&#xff0c;威胁行为者将依赖于特定存储库的项目重定向到恶意攻击。 研究人员在本周的一份报告中表示&#xff0c;这个问题与 GitHub 用户或组织更改项目名称或将其所有权…

chatgpt赋能python:Python自动执行程序:提高效率,降低出错率的利器

Python自动执行程序&#xff1a;提高效率&#xff0c;降低出错率的利器 随着科技的进步和信息技术的发展&#xff0c;人们越来越依赖计算机和自动化技术来完成繁琐的工作。自动化编程技术的应用也越来越广泛&#xff0c;其中Python自动执行程序被广泛使用。 Python自动执行程…

图像处理的两种变换:2D-DWT和Gabor变换

pywt官方API文档&#xff1a; 2D Forward and Inverse Discrete Wavelet Transform 目录 1. 二维离散小波变换2D-DWT 1.1 二维离散小波变换的相关公式 1.2 使用pywt实现2D-DWT 2. 窗口傅里叶变换Gabor 1. 二维离散小波变换2D-DWT DWT(Discrete Wavelet Transformation)代…

c语言通讯录——静态版本(带详细文字解释)

1.定义用于存储一个人信息的结构体 typedef struct PeoInfo {char name[NAME_MAX];int age;char sex[SEX_MAX];char addr[ADDR_MAX];char tele[TELE_MAX]; }PeoInfo;定义了一个名为 “PeoInfo” 的结构体&#xff08;struct&#xff09;类型&#xff0c;用于存储有关一个人的信…