MySql数据库从0-1学习-第四天多表查询

多表查询,指从多张表查询数据

  • 连接查询
    • 内连接: 相当于查询A和B交集部分数据
    • 外连接
      • 左外连接: 查询左表所有的数据(包括两张表交集部分的数据)
      • 有外连接: 查询右表所有的数据(包括两张表交集部分的数据)
  • 子查询

内连接查询

隐式内连接查询

select 字段列表 from 表1,表2 where 条件...;

示例

//查询用户(tb_user)以及对应部门(tb_dept)
select tb_user.name,tb_dept.name from tb_user,tb_dept where tb_user.dept_id = tb_dept.id;

起别名示例

如果遇到表名比较长的情况,书写sql语句不方便,这个时候我们可以定义别名来进行书写sql

//查询用户(tb_user)以及对应部门(tb_dept)
select user.name,dept.name from tb_user user,tb_dept dept where user.dept_id = dept.id;

显示内连接查询

select 字段列表 from 表1[inner] join 表2 on 连接条件...;

示例

//查询用户(tb_user)以及对应部门(tb_dept)
select tb_user.name,tb_dept.name from tb_user inner join tb_dept on tb_user.dept_id = tb_dept.id;

外连接查询

//左外连接
select 字段列表 from  表1 left [outer] join 表2 on 连接条件...;

如果左表有19条数据,但是有条数据连接条件是空的,也会展示出来

//右外连接
select 字段列表 from 表1 right [outer] join 表2 on 连接掉件...;

如果右表有19条数据,但是有条数据并不在连接条件中,右侧表数据也会展示出来

子查询

  • 介绍: SQL语句中嵌套select语句,称为嵌套查询,又称子查询
  • 形式: select * from t1 where colum1=(select colum1 from t2…);
  • 子查询 外部语句可以是insert/update/delete/select的任何一个,最常见的是select.

分类

  • 标量子查询: 子查询返回的结果是单个值
  • 列子查询: 子查询返回的结果是一列
  • 行子查询: 子查询返回的结果为一行
  • 表子查询: 子查询返回的结果为多行多列

标量子查询

  • 子查询返回的结果是单个值(数字,字符串,日期等),最简单的形式
  • 常用的操作符: = <> > >= < <=
//查询教育部下的所有员工
//先查询教育部的部门id
select id from tb_dept where name='教育部';
//在查询教育部门id下的所有用户
select * from tb_user where dept_id=2;//合并后为sql语句为
select * from tb_user where dept_id=(select id from tb_dept where name='教育部');

列子查询

  • 子查询返回的结果是一列(可以是多行)
  • 常用的操作符,in not in 等
//查询教育部和后勤部的所有员工
//先查询教育部和后勤部的id
select id from tb_dept where name='教育部' or name='后勤部';
//再根据查询到的部门id 查询对应的用户列表
select * from tb_user where dept_id in(2,3);//合并后的sql语句
select * from tb_user where dept_id in(select id from tb_dept where name='教育部' or name='后勤部');

行子查询

  • 子查询返回的是一行(可以是多列)
  • 常用操作符:= ,<> ,in ,not ,in等
//查询张三丰的入职日期,并查出与其相同的入职日期和相同部门的员工
//先查询张三丰的入职日期
select join_time,dept_id from tb_user where name='张三丰';
//再查出入职日期相同的员工
select * from tb_user where join_time='2020-01-01' and dept_id=3;//合并后的sql语句
select * from tb_user where (join_time,dept_id)=(select join_time from tb_user where name='张三丰');

表子查询

  • 子查询返回的结果是多行多列,常作为临时表
  • 常用的操作符 in
//查询入职日期'2022-01-01'之后的员工,及其部门名称
//先查询入职日期是'2022-01-01'之后的员工
select * from tb_user where join_time>'2022-01-01';
//再查询对应的员工信息和部门
select user.*,dept.name from (select * from tb_user where join_time>'2022-01-01') user, tb_dept dept where user.dept_id=dept.id;

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

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

相关文章

聪明利用ChatGPT,让你的论文更加出色

ChatGPT无限次数:点击直达 聪明利用ChatGPT&#xff0c;让你的论文更加出色 引言 近年来&#xff0c;人工智能技术的快速发展给我们的学术研究带来了前所未有的便利。其中&#xff0c;自然语言处理技术中的ChatGPT模型&#xff0c;作为一种生成式预训练模型&#xff0c;为我们…

【电控笔记2.3】速度回路+系统延迟

2.3.1速度回路pi控制器设计 pi伯德图近似设计(不考虑延时理想情况下) Tl:负载转矩 PI控制器的转折频率:Ki/Kp

VScode插件发布

背景 上期在初涉 VS Code 插件开发-CSDN博客中&#xff0c;通过Yeoman工具创建了第一个插件项目&#xff0c;在helloworld的基础上修改&#xff0c;实现预期的功能后&#xff0c;需要将VScode插件发布到插件市场中使用。 官方文档&#xff1a;Publishing Extensions | Visual…

【C语言】带你完全理解指针(六)指针笔试题

目录 1. 2. 3. 4. 5. 6. 7. 8. 1. int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf("%d,%d", *(a 1), *(ptr - 1));return 0; } 【答案】 2&#xff0c;5 【解析】 定义了一个指向整数的指针ptr&#xff0c;并将其初始化为&…

动态规划专练( 198.打家劫舍)

198.打家劫舍 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。 给定一个代表每个…

设计模式学习笔记 - 设计模式与范式 -总结:1.回顾23中设计模式的原理、背后的思想、应用场景等

1.创建型设计模式 创建型设计模式包括&#xff1a;单例模式、工厂模式、建造者模式、原型模式。它主要解决对象的创建问题&#xff0c;封装复杂的创建过程&#xff0c;解耦对象的创建代码和使用代码。 1.单例模式 单例模式用来创建全局唯一的对象。一个类只允许创建一个对象…

Angular 使用DomSanitizer防范跨站脚本攻击

跨站脚本Cross-site scripting 简称XSS&#xff0c;是代码注入的一种&#xff0c;是一种网站应用程序的安全漏洞攻击。它允许恶意用户将代码注入到网页上&#xff0c;其他用户在使用网页时就会收到影响&#xff0c;这类攻击通常包含了HTML和用户端脚本语言&#xff08;JS&…

微博百度热搜收集

背景 大家都有使用微博、百度吧&#xff0c;而每天的热搜想必大家也用的不少。微博、百度的热搜有7、8种分类&#xff0c;每个单独查看比较耗费时间&#xff0c;效率极低&#xff0c;大概要花费3&#xff0c;4分钟左右。最近闲来无事&#xff0c;冒出个想法&#xff0c;是不是有…

Python编程:高效数据处理与自动化任务实践

一、引言 Python,作为一种解释型、交互式、面向对象的编程语言,凭借其简洁易懂的语法和强大的功能库,已经成为数据科学、机器学习、Web开发等多个领域的首选工具。本文将探讨Python在数据处理和自动化任务方面的应用,通过具体的代码案例展示Python的强大功能。 二、数据处理…

官宣:2024第二十届国际铸造件展12月精彩呈现!

Shanghai International Die-casting Casting Expo 2024第二十届上海国际压铸、铸造展览会 2024第二十届上海国际压铸、铸件产品展 时间&#xff1a;2024年12月18-20日 地点&#xff1a;上海新国际博览中心&#xff08;浦东区龙阳路2345号&#xff09; 报名参展&#xff1…

Spring ApplicationEvent 事件处理--不用引入中间件

一、背景 有一天&#xff0c;小王向小李请教&#xff1a;“我碰到了一个功能需求&#xff0c;用户注册完账号后&#xff0c;我们需要通知他们进行激活。我想实现异步处理&#xff0c;但不知道怎么做才更优雅。”小李听后&#xff0c;不假思索地说&#xff1a;“你可以直接开启…

【Git】初识 Git

文章目录 1. 提出问题2. 如何解决&#xff1f;版本控制器3. 注意事项 1. 提出问题 不知道你工作或学习时&#xff0c;有没有遇到这样的情况&#xff1a;我们在编写各种文档时&#xff0c;为了防止文档丢失、更改失误、失误后能恢复到原来的版本&#xff0c;不得不复制出一个副…

CC工具箱使用指南:【浙江省村规结构调整表(杨欢)】

一、简介 群友定制工具。 这个工具的功能简单易懂&#xff0c;就是根据输入的现状用地和规划用地图层&#xff0c;生成浙江村规的结构调整表。 村规的结构调整表格式&#xff0c;各个省份都不太一样&#xff0c;无法做一个通用的工具&#xff0c;实在很让人头痛。 看了之后表…

多语言vue-i18n (vue2,uniapp)

安装vue-i18n npm install vue-i18n8 --save // npm install vue-i18n–save 9版本需要vue3.0 // 在vue2环境下&#xff0c;默认安装 npm install vue-i18n 的版本是 vue-i18n9.2.2&#xff0c; // 报错信息里提示这个版本要求是vue3&#xff0c;所以我们安装适合vue2版本的vu…

FactoryMethod工厂方法模式详解

目录 模式定义实现方式简单工厂工厂方法主要优点 应用场景源码中的应用 模式定义 定义一个用于创建对象的接口&#xff0c;让子类决定实例化哪一个类。 Factory Method 使得一个类的实例化延迟到子类。 实现方式 简单工厂 以下示例非设计模式&#xff0c;仅为编码的一种规…

linux系统简介与环境搭建

linux系统简介与环境搭建 注&#xff1a;该题册一旦提交不可见不可修改&#xff0c;甚至不知道成绩&#xff0c;请谨慎提交&#xff0c;以下答案均为个人见解&#xff0c;非标准答案&#xff0c;如有意见&#xff0c;请评论&#xff01;&#xff01;&#xff01; 一、单 选 题…

libcurl 简单使用

LibCurl是一个开源的免费的多协议数据传输开源库&#xff0c;该框架具备跨平台性&#xff0c;开源免费&#xff0c;并提供了包括HTTP、FTP、SMTP、POP3等协议的功能&#xff0c;使用libcurl可以方便地进行网络数据传输操作&#xff0c;如发送HTTP请求、下载文件、发送电子邮件等…

数据结构DAY4--哈希表

哈希表 概念&#xff1a;相当于字典&#xff0c;可以根据数据的关键字来寻找相关数据的查找表。 步骤&#xff1a;建立->插入->遍历->查找->销毁 建立 建立数据&#xff0c;形式随意&#xff0c;但一般为结构体&#xff08;储存的数据量大&#xff09;&#xff…

Pytorch深度学习完整GPU图像分类代码

1. CPU与GPU不同 1.输入数据 2.网络模型 3.损失函数 .cuda() 说明&#xff1a;下面代码中GPU版本中取消下划线的即为CPU版本 2.完成的分类代码(GPU) import torch import torchvision from torch.utils.tensorboard import SummaryWriter# from model import * # 准备数据集 …

vue3 依赖-组件tablepage-vue3说明文档,列表页快速开发,使用思路及范例(Ⅳ)其他配置项

github求⭐ vue3 依赖-组件tablepage-vue3说明文档&#xff0c;列表页快速开发&#xff0c;使用思路及范例&#xff08;Ⅰ&#xff09;配置项文档 vue3 依赖-组件tablepage-vue3说明文档&#xff0c;列表页快速开发&#xff0c;使用思路及范例&#xff08;Ⅱ&#xff09;搜索…