首页 > 数据库 >MySQL4多表查询 内连接

MySQL4多表查询 内连接

时间:2024-08-08 22:58:20浏览次数:9  
标签:insert MySQL4 -- into 查询 dept values emp 多表

多表查询

数据准备

CREATE DATABASE  db4;
USE db4;
-- 创建部门表
create table if not exists dept(
  deptno varchar(20) primary key ,  -- 部门号
  name varchar(20) -- 部门名字
);

-- 创建员工表
create table if not exists emp(
  eid varchar(20) primary key , -- 员工编号
  ename varchar(20), -- 员工名字
  age int,  -- 员工年龄
  dept_id varchar(20)  -- 员工所属部门
);

-- 给dept表添加数据
insert into dept values('1001','研发部');
insert into dept values('1002','销售部');
insert into dept values('1003','财务部');
insert into dept values('1004','人事部');
 
-- 给emp表添加数据
insert into emp values('1','乔峰',20, '1001');
insert into emp values('2','段誉',21, '1001');
insert into emp values('3','虚竹',23, '1001');
insert into emp values('4','阿紫',18, '1001');
insert into emp values('5','扫地僧',85, '1002');
insert into emp values('6','李秋水',33, '1002');
insert into emp values('7','鸠摩智',50, '1002'); 
insert into emp values('8','天山童姥',60, '1003');
insert into emp values('9','慕容博',58, '1003');
--注意,此处部门表中没有存在1005对应的部门,当然部门1004在此出没有员工,
--只是为了演示效果
insert into emp values('10','丁春秋',71, '1005');

SELECT * FROM emp;
SELECT * FROM dept;

一对一 一般需要表合并
一对多
多对多 需要从表

内连接

在这里插入图片描述

笛卡尔积

-- 笛卡尔积 A表m条,B表n条,查询结果为m*n条 
SELECT *
FROM emp,dept;

隐藏内连接

-- 隐式内连接(SQL92标准)
-- SELECT 字段列表 FROM 表1,表2... WHERE 条件;
-- 隐式内连接
SELECT *
FROM emp,dept
WHERE dept.deptno=emp.dept_id;

显式内连接

-- 显式内连接(SQL99标准) []包括的可以省略不写
-- SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 条件;
-- 显式内连接
SELECT *
FROM emp INNER join dept
ON dept.deptno=emp.dept_id;

内连接应用:

-- 查询在研发部的员工信息
SELECT *
FROM emp,dept
WHERE dept.deptno=emp.dept_id AND dept.NAME='研发部';

SELECT *
FROM emp INNER join dept
ON dept.deptno=emp.dept_id AND dept.NAME='研发部';

-- 查询每个部门的员工数,并升序
SELECT NAME,COUNT(*) AS con
FROM emp,dept
WHERE emp.dept_id=dept.deptno
GROUP BY deptno,NAME
ORDER BY con;

-- 查询人数大于3的部门,并按照人数进行降序
SELECT NAME,COUNT(*) AS con
FROM emp,dept
WHERE emp.dept_id=dept.deptno
GROUP BY deptno,NAME
HAVING con>=3
ORDER BY con DESC;

标签:insert,MySQL4,--,into,查询,dept,values,emp,多表
From: https://blog.csdn.net/weixin_60583755/article/details/141038372

相关文章

  • 3244. 新增道路查询后的最短距离 II
    原题链接题解建桥相当于把区间内的路合并起来,这引导我们用并查集维护可是具体如何实现呢?我们令桥内的所有节点的统一指向最右端点作为首领,然后对于桥内的所有小桥,每次更新完了之后往右边走一格codeclassSolution{public:intfa[2000005];intfinds(intnow){r......
  • 复杂查询还是直接写sql吧
    今日改了一个linq,为了查询优化。主要思路是把子查询改为连接查询。改完后,本地运行是很快的;但是发布到服务器,加上网络时间,就有点不如意了。所以感觉,非常复杂的查询还是直接用sql写好。更改前后更改前是这样的。voidsetPropety(List<SEO_Cust_RechargeModel>_l......
  • OS-Ubuntu-从源查询拉取安装包依赖-apt-cache&apt download
    OS-Ubuntu-从源查询拉取安装包依赖-apt-cache&aptdownload引用:Ubuntuapt-getapt-cache命令使用apt-get下载包及所有依赖指令apt-cachedepends--no-*--no-pre-depends--no-suggests--no-recommends--no-conflicts--no-breaks--no-enhances--recurseap......
  • OS-Ubuntu-系统版本信息查询及含义与源配置
    OS-Ubuntu-系统版本信息查询及含义与源配置引用https://blog.csdn.net/ix_fly/article/details/138271843指令lsb_release-aDemo:lsb_release-aDistributorID: UbuntuDescription: Ubuntu22.04.4LTSRelease: 22.04Codename: jammyUbuntu不同版本代号ver......
  • 用友U9数据库--用户对应的权限明细查询
    -----用户对应的权限菜单----------------------------------------------------------------------------------------selectdistincta.name组织,y.Name用户,U.Name用户组,b.Name角色名称,d.Name,menuBETrl.DisplayName菜单名称,caseauthorityBE.Opinionwhen0then......
  • 达梦数据库如何定位查询慢SQL
    数据库日常运维中,常常需要对数据库的性能和负载进行监控和优化,因此,能够及时采集发现慢SQL很重要。达梦有三种方式,可以获取数据库慢SQL。第一种,利用达梦的SQL日志如果将DM数据库配置文件中的参数SVR_LOG设置为打开,则系统还会在log目录下生成名为dmsql_实例名_日期_时间.log......
  • MYSQL通过sql语句将select查询出来的数据导出到文件中
    脱离数据库管理工具,想直接将select出来的数据导出到一个文件中。使用sql语句:SELECTfild_nameFROMtable_nameINTOOUTFILE'配置文件夹路径/b.xlsx';说明:配置文件夹路径是mysql配置文件中的配置如果不能顺利使用,可能需要修改配置。一、MYSQL配置1.1......
  • mysql慢查询分析
    MySQL慢查询分析一、mysqldumpslow分析工具mysql源码包scripts目录下mysqldumpslow命令使用[root@omscripts]#./mysqldumpslow--helpUsage:mysqldumpslow[OPTS...][LOGS...]ParseandsummarizetheMySQLslowquerylog.Optionsare--verboseverb......
  • MySQL线上查询性能调优:深入解析与实战策略
    MySQL线上查询性能调优:深入解析与实战策略在数据库管理的日常工作中,确保MySQL线上查询的高效执行是至关重要的。随着数据量的不断增长和查询复杂度的提升,性能调优成为了数据库管理员(DBA)和开发人员必须掌握的技能。本文将从多个维度深入解析MySQL线上查询性能调优的策略和技......
  • 掌握MySQL查询优化:理论与实践全解析
    1.MySQL查询优化器概述MySQL查询优化器的主要功能是优化和执行SELECT语句,确保在正确执行的前提下提升执行效率。它利用关系代数、启发式规则和代价估算模型等技术进行优化,主要针对SPJ(选择-投影-连接)类型和非SPJ类型的查询语句进行优化。1.1主要功能关系代数:将SQL语......