• 多表查询_子查询


    设置主外键关系的第一种方案:图形化的操作
    首先创建员工表“employee”
    在这里插入图片描述
    在表里填信息:
    在这里插入图片描述
    再创建部门表“dept”
    在这里插入图片描述
    再删除表“employee”里面的三个字段depeNO、deptName、deptLeader ,并保存

    在这里插入图片描述
    在这里插入图片描述
    外键:就是把一张表的主键拿到另一张表中作为一个普通的字段,通过外键可以把两张表连接起来
    在表“employee”里加入字段“deptNo”
    在这里插入图片描述
    填入外键信息:
    在这里插入图片描述

    所以在这里,就是把表“dept”里的“id”作为主键拿到表“employee”中作为外键“deptNo”

    在表“depth”里面填入信息:
    在这里插入图片描述
    再填好表“employee”中字段“deptNo”的信息
    在这里插入图片描述

    设置主外键关系的第二种方案:写sql语句
    先删除表“employee”和“dept”。
    写sql语句创建表的时候,应该先创建部门表“dept”,再创建员工表“employee”,因为员工表“employee”的“deptNo”需要部门表“dept”的“id”的支持。

    sql语法:constraint 约束名 foreign key(列名) references 对方表(列名)

    创建部门表“dept”的sql语句:

    create table dept(
     id int(10) not null primary key auto_increment,
     deptName varchar(50),
     deptLeader varchar(50)
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5

    创建员工表“employee”的sql语句:

    create table emp(
    	id int(10) not null primary key auto_increment,
    	name varchar(50),
    	salary decimal(10,2),
    	deptNo int(10),
    	constraint foreign_key_deptNo foreign key(deptNo) REFERENCES dept(id)
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述
    然后在表“dept”和“emp”里写入信息
    在这里插入图片描述
    在这里插入图片描述

    现在主表和副表建立完了,现在看如何做多表关联查询。
    方法一:子查询
    方法二:关联查询(下面的博客会写这部分内容)

    方法一:子查询
    第一题:通过部门的名称查询出该部门所有的员工信息,比如查询明教的员工信息
    两步走,
    第一步:查询明教的部门信息,

    select id from dept where deptName = '明教'
    
    • 1

    第二步:根据id查询员工信息

    select * from emp where deptNo = 3
    
    • 1

    结合这两步可以得出:

    select * from emp where deptNo = (select id from dept where deptName = '明教')
    
    • 1

    在这里插入图片描述

    第二题:查询出各个部门的平均工资

    select avg(salary) from emp group by deptNo
    
    • 1

    在这里插入图片描述

    第三题:把部门和员工放在一起,查询出各个部门的平均工资

    select dept.deptName,avg(emp.salary) from emp,dept where emp.deptNo = dept.id group by dept.deptName
    
    • 1

    在这里插入图片描述

  • 相关阅读:
    多测师肖sir_高级讲师_第二个月python讲解03(索引、切片、字符、列表、元组、字典、集合)
    第一范式&第二范式&第三范式学习笔记
    RHCE实验--配置nfs服务
    【NLP开发】Python实现聊天机器人
    Servlet | Servlet生命周期、适配器模式改造Servlet
    12.组合模式
    SSMP整合案例交互之在idea中利用vue和axios发送异步请求进行前后端调用
    3D角色建模师和3D角色动画师哪个更有前景?哪个更适合小白入门?
    Linux 日志系统API详解
    Python数据采集与处理之网页爬取
  • 原文地址:https://blog.csdn.net/AKK188888881/article/details/126048941