Mysql多表设计

前言

多表查询中要给每一表起别名

  • tableA as 别名1 , tableB as 别名2 ; (111111推荐)

  • tableA 别名1 , tableB 别名2 ;

例子:

select emp.name , dept.name
from tb_emp emp inner join tb_dept dept
on emp.dept_id = dept.id;

一对一

在任意一方加入对方表的主键

(一对多的一中)

一对多

连接查询

  • 在(t1)多的一方加入 一(t2)的主键 

    例:select * from t1,t2 where t1.t2_id=t2.id;

  • 内连接 查询A,B交集部分数据

    • 隐式内连接
      • select tb_emp.name , tb_dept.name -- 分别查询两张表中的数据
        from tb_emp , tb_dept -- 关联两张表
        where tb_emp.dept_id = tb_dept.id; -- 消除笛卡尔积
    • 显示内连接
      • select tb_emp.name , tb_dept.name
        from tb_emp inner join tb_dept
        on tb_emp.dept_id = tb_dept.id;

  • 外连接(左右连接可以切换)

    • 左外连接(推荐)
      • 左外连接相当于查询表1(左表)的所有数据,当然也包含表1和表2交集部分的数据。即使表2中没有与之对应的数据该数据也会被查询出来
      • select  字段列表   from   表1  left  [ outer ]  join 表2  on  连接条件 ... ;
      • -- 左外连接:以left join关键字左边的表为主表,查询主表中所有数据,
        以及和主表匹配的右边表中的数据
        select emp.name , dept.name
        from tb_emp AS emp left join tb_dept AS dept on emp.dept_id = dept.id;
    • 右外连接
      • select  字段列表   from   表1  right  [ outer ]  join 表2  on  连接条件 ... ;
  • 子查询

    • SQL语句中嵌套select语句,称为嵌套查询,又称子查询。
    • SELECT * FROM t1 WHERE column1=( SELECT column1 FROM t2 ... );
      • 标量子查询
        • 子查询返回的结果是单个值(数字、字符串、日期等),最简单的形式,这种子查询称为标量子查询。

        • 常用的操作符: = <> > >= < <

        • ​
          -- 1.查询"教研部"部门ID
          select id from tb_dept where name = '教研部';    #查询结果:2
          -- 2.根据"教研部"部门ID, 查询员工信息
          select * from tb_emp where dept_id = 2;-- 合并出上两条SQL语句
          select * from tb_emp where dept_id = (select id from tb_dept where name = '教研部');​
      • 列子查询
        • (子查询结果为一列,但可以是多行)

        • 操作符描述
          IN在指定的集合范围之内,多选一
          NOT IN不在指定的集合范围之内
        • -- 1.查询"销售部"和"市场部"的部门ID
          select id from tb_dept where name = '教研部' or name = '咨询部';    #查询结果:3,2
          -- 2.根据部门ID, 查询员工信息
          select * from tb_emp where dept_id in (3,2);-- 合并以上两条SQL语句
          select * from tb_emp where dept_id in (select id from tb_dept where name = '教研部' or name = '咨询部');

      • 行子查询(子查询结果为一行,但可以是多列)
      • 表子查询(子查询结果为多行多列[相当于子查询结果是一张表])
        • -- 1.查询"方东白"的入职日期
          select entrydate from tb_emp where name = '方东白';     #查询结果:2012-11-01
          -- 2.查询指定入职日期之后入职的员工信息
          select * from tb_emp where entrydate > '2012-11-01';-- 合并以上两条SQL语句
          select * from tb_emp where entrydate > (select entrydate from tb_emp where name = '方东白');
    • 子查询可以书写的位置
      • where之后

      • from之后

      • select之后

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

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

相关文章

接口测试工具的实验,Postman、Swagger、knife4j(黑马头条)

一、Postman 最常用的接口测试软件&#xff0c;需要注意点&#xff1a;在进行post请求时&#xff0c;需要选择JSON形式发送 输入JSON字符串&#xff0c;比如&#xff1a; {"maxBehotTime": "2021-04-19 00:19:09","minBehotTime": "2021-…

微信小程序:怎么在一个js中修改另一个js的数据(这里通过缓存进行实现)

实例&#xff1a;现有两个页面index.js和category.js,我现在想在index.js中修改category.js的数据 初始数据 category [{name: 物流配送,list: [{id: 1,job: 外卖骑手,checked: true}, {id: 2,job: 快递员,checked: false}, {id: 3,job: 司机,checked: false}, {id: 4,job: …

远程仓库地址改变后更换url

请按照以下步骤进行操作&#xff1a; 打开终端或命令提示符&#xff0c;并导航到你的本地仓库目录。运行以下命令&#xff0c;查看当前的远程仓库配置&#xff1a;git remote -v 这将显示当前的远程仓库地址。 如果远程仓库地址显示为192.168.1.178&#xff0c;请使用以下命…

Nat. Med. | 基于遗传学原发部位未知癌症的分类和治疗反应预测

今天为大家介绍的是来自Alexander Gusev团队的一篇论文。原发部位未知癌症&#xff08;Cancer of unknown primary&#xff0c;CUP&#xff09;是一种无法追溯到其原发部位的癌症&#xff0c;占所有癌症的3-5&#xff05;。CUP缺乏已建立的靶向治疗方法&#xff0c;导致普遍预后…

支持存档的书签服务LinkWarden

什么是 LinkWarden &#xff1f; Linkwarden 是一个自托管、开源协作书签管理器&#xff0c;用于收集、组织和存档网页。目标是将您在网络上找到的有用网页和文章组织到一个地方&#xff0c;并且由于有用的网页可能会消失&#xff08;参见链接失效的必然性&#xff09;&#xf…

[POI2006] OKR-Periods of Words——最大周期长度(扩展最小周期长度)

[POI2006] OKR-Periods of Words——最大周期长度(扩展最小周期长度) [原题链接](P3435 [POI2006] OKR-Periods of Words - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)) 字符串的周期 讲这道题之前&#xff0c;我们先聊一聊字符串的周期。我们要明确周期和border两个概念 …

【ChatGPT】ChatGPT的自定义指令

ChatGPT的自定义指令 关于ChatGPT自定义指令的常见问题解答概述可用性如何使用您的数据自定义指令设置将应用于所有新聊天。启动新聊天可查看更改iOS & AndroidWeb 示例常见问题使用自定义指令的好处字符限制我的ChatGPT数据导出中是否包含自定义指令&#xff1f;当我删除我…

回归模型原理总结及代码实现

前言 本文将介绍回归模型算法&#xff0c;并总结了一些常用的除线性回归模型之外的模型&#xff0c;其中包括一些单模型及集成学习器。 保序回归、多项式回归、多输出回归、多输出K近邻回归、决策树回归、多输出决策树回归、AdaBoost回归、梯度提升决策树回归、人工神经网络、…

nodejs:fs文件系统模块

定义&#xff1a;fs 模块是 Node.js 官方提供的、用来操作文件的模块。它提供了一系列的方法和属性&#xff0c;用来满足用户对文件的操作需求. const fs require(fs)1).fs.readFile()方法&#xff0c;用来读取指定文件中的内容 fs.readFile(path[,options],callback) …

Kibana使用Timelion根据时间序列展示数据

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

工业自动化工厂PLC远程控制网关物联网应用

远程控制网关在工厂自动化领域中起到了至关重要的作用&#xff0c;特别是在工厂PLC数据通讯方面。它充当着数据传输的桥梁&#xff0c;连接了工厂中的各类设备和系统&#xff0c;实现了远程监控和控制的功能。本文将详细介绍远程控制网关在工厂PLC数据通讯中的应用。 远程控制网…

计算机毕业设计 基于SpringBoot的私人西服定制系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

浅谈电力物联网时代物联网技术在电力系统中的应用

贾丽丽 安科瑞电气股份有限公司 上海嘉定201801 摘要&#xff1a;在电力系统建设中&#xff0c;物联网的应用不仅促进了我国电力工业的发展&#xff0c;而且对我国的物联网技术也起到了一定的促进作用。随着物联网技术应用于电力系统&#xff0c;推动了中国工业的快速发展。因…

利用python找出偏序集中极大元、极小元、最大元和最小元

1 问题 在离散数学“关系”这一章的学习过程中&#xff0c;学到偏序集中极大元、极小元、最大元和最小元的求解方法&#xff0c;于是提出能不能用python语言实现偏序集中极大元、极小元、最大元和最小元的求解&#xff1f; 2 方法 判断偏序集中的极大元、极小元、最大元和最小元…

7.2 创建和销毁条件变量

方法 pthread_cond_init(condition, attr) pthread_cond_destroy(condition) pthread_condattr_init(attr) pthread_condattr_destroy(attr) 用法

vivado查看报告和消息5

1、可配置报告策略 “ Configurable Report Strategies ” &#xff08; 可配置报告策略 &#xff09; 支持在 Vivado 工程模式下运行综合与实现的每个步骤之后选择 要运行的报告命令。根据设计阶段、设计复杂性和用户首选项&#xff0c; 需自动生成一组不同的报告以供频繁查…

常见React Hooks 钩子函数用法

一、useState useState()用于为函数组件引入状态&#xff08;state&#xff09;。纯函数不能有状态&#xff0c;所以把状态放在钩子里面。 import React, { useState } from react import ./Button.cssexport function UseStateWithoutFunc() {const [name, setName] useStat…

了解高防服务器的工作原理

在当今互联网时代&#xff0c;网络安全问题日益突出&#xff0c;各种网络攻击层出不穷。为了保护企业的网络安全&#xff0c;高防服务器应运而生。那么&#xff0c;你是否了解高防服务器的工作原理呢?下面就让我们一起来探索一下。 高防服务器是一种能够有效抵御各种网络攻击的…

Bun 1.0.7 版本发布,实现多个 Node.js 兼容改进

导读Bun 是一个集打包工具、转译器和包管理器于一体的 JavaScript 运行时&#xff0c;由 Jarred Sumner 发布了 1.0.7 版本。本次更新实现了对 Node.js 运行时的多项兼容性改进&#xff0c;并修复了近 60 个 bug。 根据发布说明&#xff0c;本版本对 “bun install” 命令进行…

webgoat-Security Logging Failures安全日志记录失败

概念 日志记录对于现代系统非常重要。我们出于各种原因使用它&#xff1a; 应用程序监视和调试。 审计日志记录&#xff1a;例如&#xff0c;记录用户和系统的特定操作。 安全事件监控&#xff1a;例如&#xff0c;向 SIEM 或 SOAR 系统提供信息&#xff0c;该系统将根据这…