SQL99版链接查询语法

连接查询按照功能分类

内连接

等值连接

非等值连接

自连接 //92SQL

外连接: //红色的连接查询类型92版SQL

左外连接

右外连接

全外连接

交叉连接

#剩下连接类型的SQL语法就不是前面同一个发布版本了

99版SQL语法格式区别于92版的是连接不在是用"="了,它是语法格式:

sql 复制代码
select 查询列表
from 表1 别名
【链接类型】 join 表2 别名
on 链接条件
where 数据筛选条件 .....以前讲过的其他部分;

【链接类型】的关键字

内连接:inner (还可以省略)

外连接:

左外连接 left 【outer】

右外连接 right 【outer】

全外连接 full 【outer】

交叉连接 cross 【outer】

案例1:用99版的SQL写法实现等值连接查询

1.查询员工名和其对应所属的部门名

sql 复制代码
select last_name,department_name
from employees e
inner join departments d
on e.department_id = d.department_id;

2.查询名字中包含e字母的员工名和其对象的部门名

sql 复制代码
select last_name , department_name
from employees e
inner join departments d
on e.department_id = d.department_id
where last_name like '%e%';

3.查询所在部门个数大于3的城市名和部门个数

sql 复制代码
select count(d.department_id) count , l.city
from departments d
inner join locations l
on d.location_id = l.location_id
group by l.city
having count>3;

4.查询员工个数大于3点部门名和员工个数,降序排序

sql 复制代码
SELECT d.department_name , COUNT(e.employee_id) c
FROM employees e
INNER JOIN departments d
ON e.department_id=d.department_id
GROUP BY d.department_name
HAVING c>3
ORDER BY c DESC;

5.查询员工名以及对应的工种名和部门名,按部门名降序排序

sql 复制代码
select e.last_name,j.job_title,d.department_name
from employees e
inner join departments d
on e.department_id = d.department_id
inner join jobs j
on e.job_id=j.job_id
order by d.department_name;

案例2:用99版的SQL写法实现非等值连接查询

sql 复制代码
SELECT
salary,grade_level
FROM
employees e
INNER JOIN
job_grades g
ON
e.salary BETWEEN g.`lowest_sal` AND g.`highest_sal`;

练习

查询同一个工资级别的员工的个数大于20的员工个数,并且按照工资级别降序排序

sql 复制代码
SELECT
COUNT(*) 员工个数,`grade_level`
FROM
`employees` e
INNER JOIN
`job_grades` g
ON
e.`salary` BETWEEN g.`lowest_sal` AND g.`highest_sal`
GROUP BY
`grade_level`
HAVING
COUNT(*)>20
ORDER BY
`grade_level` DESC;

案例3:用99版的SQL写法实现自连接查询

查询员工的名和其对应的直属领导

sql 复制代码
SELECT
e.last_name employee_name,
m.last_name manager_name
FROM
employees e
INNER JOIN
employees m
ON
e.`manager_id`=m.`employee_id`;
相关推荐
李纲明24 分钟前
WordPress 提示「建立数据库连接时出错」:先核 wp-config 与数据库服务,再查表损坏与磁盘配额
数据库·wordpress·devdiy
freejackman31 分钟前
【架构篇】双遍历 + 多栈协同:手撸 SQL 血缘引擎的架构思考
java·大数据·数据库·hive·sql·架构·spark
杨云龙UP34 分钟前
TDengine 社区版磁盘空间不足故障处理 SOP:历史日志清理、日志保留策略及数据保留 200 天
数据库·时序数据库·tdengine·tsdb·历史日志清理·trim database·logkeepdays
企业数字化笔记38 分钟前
业务单据怎样接入流程中心?启动条件、实例关联与失败回退
java·spring boot·mysql
betazhou44 分钟前
MySQL Oracle官方备份工具
数据库·mysql·oracle
一万年太久。1 小时前
mysql主从复制
数据库·mysql
车载中间件通信1 小时前
[TC8测试]TCP_FLAGS_PROCESSING_06
数据库·网络协议·tcp/ip·中间件·tc8
呆萌很1 小时前
达梦数据库(DM)和MySQL核心区别
数据库
l1t1 小时前
DeepSeek总结的pgrust以光速编程:构建 Gravity 查询引擎
数据库·人工智能·postgresql
木木_Q4057733492 小时前
Oracle 增量同步配置指南:只搬变了的数据,不重复也不漏数
数据库·oracle·数据同步·数据库同步·增量同步