sql99语法--等值连接

#二、sql99语法
/*

语法:
select 查询列表
from  表1  别名  【连接类型】
join  表2  别名   on  连接条件
【where 筛选条件】
【group by 分组】 
【having 筛选条件】
【order by 排序列表】

内连接(♥): inner
外连接
      左外(♥): left 【outer】
      右外(♥):right 【outer】
      全外:full  【outer】
交叉连接:cross

*/
#一)内连接
/*
select 查询列表
from 表1  别名
inner  join  表2  别名
on 连接条件
注意:
(1)添加排序、分组、筛选
(2)inner可以省略
(3)筛选条件放在where后面,连接条件放在on后面,提高分离性,便于阅读。
(4)inner join 连接和sql92语法中的等值连接效果是一样的,都是查询多表的交集。




*/
#1.等值连接
#1.查询员工名、部门名
SELECT `last_name`,`department_name`
FROM `departments` d
INNER JOIN `employees` e
ON d.`department_id`=e.`department_id`;
#2.查询名字中包含e的员工名和工种名(筛选)
SELECT last_name ,`job_title`
FROM `employees` e
INNER JOIN `jobs` j
ON e.`job_id`=j.`job_id`
WHERE last_name LIKE '%e%';
#3.查询部门个数>3的城市名和部门个数(分组+筛选)
SELECT `city`,COUNT(*)
FROM `departments` e
INNER JOIN `locations` l
ON e.`location_id`=l.`location_id`
GROUP BY `city`
HAVING COUNT(*)>3;
#4.查询哪个部门的部门员工个数>3的部门名和员工个数,并按个数降序(排序)
SELECT `department_name`,COUNT(*) 员工个数
FROM `departments` d
INNER JOIN `employees` e
ON e.`department_id`=d.`department_id`
GROUP BY  `department_name`
HAVING  COUNT(*)>3 
ORDER BY COUNT(*) DESC;

#5.查询员工名、部门名、工种名,并按部门名降序
SELECT `last_name`,`department_name`,`job_title`
FROM `departments` d
INNER JOIN `employees` e ON e.`department_id`=d.`department_id`
INNER JOIN `jobs` j ON e.`job_id`=j.`job_id`
ORDER BY `department_name` DESC;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值