MYSQL(连接查询)
目录
连接查询
等值连接
为表起别名
添加筛选
添加分组
加排序
三表连接
非等值连接
自链接
例题
连接查询
含义:
又称多表查询,当查询的字段来自多个表时用到连接查询。
按年代分类:
sql192标准,sql199标准(推荐)
按功能分类:
1.内连接:等值连接,非等值连接,自链接
2.外连接:左外连接,右外连接,全外连接
3.交叉连接
等值连接
1.多表等值连接的结果为多表的交集部分
2.n表连接,至少需要n-1个连接条件
3.多表的顺序没有要求
4.一般需要为表起别名
#等值连接
#查询员工名和对应的部门名
SELECT last_name 员工名,department_name 部门名
FROM employees,departments
WHERE employees.`department_id`=departments.`department_id`;
为表起别名
作用:
提高语言的简洁度
区分多个重名字段
注意:如果为表起了别名,查询的字段不能使用原来表的名字。
添加筛选
#添加筛选
#案例:查询有奖金的员工名,部门名
SELECT last_name,department_name
FROM employees e,departments d
WHERE e.`department_id`=d.`department_id`
AND e.`commission_pct`IS NOT NULL;#案例:查询城市名中第二个字母为o的城市名和部门名
SELECT city,department_name
FROM locations l,departments d
WHERE l.`location_id`=d.`location_id`
AND l.`city`LIKE '_o%';
添加分组
#添加分组
#案例:查询每个城市的部门个数
SELECT COUNT(*),city
FROM departments d,locations l
WHERE d.`location_id`=l.`location_id`
GROUP BY city;#案例:查询有奖金有奖金的每个部门的
#部门名和该部门的最低工资
#和部门的领导编号
SELECT d.department_name,MIN(salary),d.manager_id
FROM departments d,employees e
WHERE d.`department_id`=e.`department_id`
AND e.`commission_pct`IS NOT NULL
GROUP BY department_name;
加排序
#加排序
#案例:查询每个工种的工种名和员工个数
#按员工个数排序
SELECT job_title,COUNT(*)
FROM jobs j,employees e
WHERE j.`job_id`=e.`job_id`
GROUP BY job_title
ORDER BY COUNT(*);
三表连接
#三表连接
#案例:查询员工名,部门名和所在的城市
SELECT last_name,department_name,city
FROM employees e,departments d,locations l
WHERE e.`department_id`=d.`department_id`
AND d.`location_id`=l.`location_id`;
非等值连接
#非等值连接
#案例:查询员工的工资和工资级别
SELECT salary,grade_level
FROM employees e,job_grades g
WHERE salary BETWEEN g.`lowest_sal`AND g.`highest_sal`;
所用到的job_grades表
自链接
#自链接
#案例:查询员工名和上级名称
SELECT e.last_name 员工名,e.employee_id 员工编号,
m.last_name 上级名,m.employee_id 上级编号
FROM employees e,employees m
WHERE e.`manager_id`=m.`employee_id`;
例题
#1.显示所有员工的姓名,部门号和部门名称
SELECT last_name 姓名,e.department_id 部门号,
department_name 部门名称
FROM employees e,departments d
WHERE e.`department_id`=d.`department_id`;#2.查询90号部门员工的工种号和位置编号
SELECT job_id,location_id
FROM employees e,departments d
WHERE e.`department_id`=d.`department_id`
AND e.department_id=90;#3.查询每个工种,每个部门的部门名,工种名和最低工资
SELECT department_name 部门名,job_title 工种名,
MIN(salary) 最低工资
FROM departments d,jobs j,employees e
WHERE d.`department_id`=e.`department_id`
AND e.`job_id`=j.`job_id`
GROUP BY j.`job_id`,d.`department_id`;#4.查询每个国家下的部门个数>2的国家编号
SELECT country_id 国家编号,COUNT(*) 部门个数
FROM departments d,locations l
WHERE d.`location_id`=l.`location_id`
GROUP BY l.`country_id`
HAVING COUNT(*)>2;
MYSQL(连接查询)相关推荐
- MySQL外键关联(一对多)MySQL连接查询
MySQL外键关联(一对多) 外键说明 什么是外键? 1)表A中有字段(如身份证号)做了主键,表B中也有这个字段(身份证号),这里的身份证号一定来自表A同样字段里的内容,但再B表中身份证号对应id可以 ...
- 二、MySQL连接查询学习笔记(多表连接查询:内连接,外连接,交叉连接详解)
MySQL连接查询(多表连接查询:内连接,外连接,交叉连接详解) 6:多表连接查询 笛卡尔乘积:如果连接条件省略或无效则会出现 解决办法:添加上连接条件 连接查询的分类: 1.按年代分类:1)sql ...
- mysql连接查询on_MySql 连接查询中 on 和 where 的区别
MySql 连接查询时,on 后面跟的是连接条件,再跟 and 关键就可以继续加过滤条件,这样看来是不是可以免用 where 增加过滤条件了呢?开始我也是这样以为的(老师是这么教的,且使用 on 的情 ...
- Mysql连接查询主要分为三种:内连接、外连接、交叉连接
Mysql 连接查询主要分为三种:内连接.外连接.交叉连接 内连接 使用比较运算符(包括=.>.<.<>.>=.<=.!>和!<)进行表间的比较操作,查 ...
- Mysql连接查询详解
前言 记得刚工作几年的时候,就写了一篇关于Mysql连接查询的博客文章,里面简单的认为先对关联表的记录进行笛卡尔积,然后再根据where条件过滤,现在看来有点贻笑大方了.正好最近看了<mysql ...
- MySQL连接查询(内连接,外连接,全连接)
对比分析MySQL连接查询(内连接,外连接,全连接) 内连接 等值连接 非等值连接 ==自连接== 外连接 左外连接 右外连接 全外连接 交叉连接 首先建三个数据表 sql文件下载 https://w ...
- MySQL连接查询 内连接和外连接的区别
MySQL 连接查询 @ sunRainAmazing 1.使用连接查询的场景 将多张表进行记录的连接查询(按照某个字段指定的条件进行数据的拼接):进行数据的拼接(两张表的内容显示在一个结果表中 使用 ...
- MySQL连接查询——MySQL 基础查询你会了吗?
前言: 由于大一学习数据库不扎实,学到后面有点吃力,所以回过头来认真学习一边,写一些学习总结,提醒自己.也要告诫读者,把基础打扎实.读者觉得有用的话可以收藏点赞哦! 上一篇:MySQL函数查询--My ...
- MySql 连接查询中 on 和 where 的区别
大家可以先看MySQL:left join 避坑指南 看过之后再接着看下面 在多表查询时,ON和where都表示筛选条件,on先执行,where后执行. on 后跟连接条件,然后再加的筛选条件只针对关 ...
- MySQL连接查询-笛卡尔乘积
MySQL连接查询 前言 一.笛卡尔积 二.SQL92(支持内连接) 三.SQL99(内.外.交叉) 1.内连接 2.外连接 2.1.左右外连接 2.2.全外连接 3.交叉连接(MySQL支持) 总结 ...
最新文章
- LLVM Backend技术
- Navicat Premium
- PL/SQL Developer 和 instantclient客户端快速安装配置(图文)
- 通俗讲解和学习SQL
- Android 自定义属性时TypedArray的使用
- [转]JavaScript构造函数及原型对象
- LeetCode021 Merge Two Sorted Listss C语言
- Telnet三步完成连接(简短版)
- kubeflow fairing详解
- [转]给新同学的礼仪建议
- Atitit it法学论 uke协会it刑法attilax总结 目录 1. 法学plus	1 1.1. 替换表	1 2. 第一章 刑法概说	1 2.1. 财产	1 3. Line 65: 第四章 犯
- 如何防止CSRF攻击?
- 打开Internet信息服务及IIS管理器
- html QQ空间留言版,qq空间留言
- CTF-MISC基础-压缩包隐写总结
- 程序员试用期提离职被领导起诉
- Linux系统上没有scp命令,Linux scp命令没反应
- 由内而外全面造就自己(一)
- Cocos Shader入门基础七:一文彻底读懂深度图。
- Havel-Hakimi定理(判断一个度序列是否可图)