学习
路无止境!

没有伞的孩子要学会努力奔跑!


  • 首页

  • 归档

  • 关于我

  • 公益404

  • 搜索

MySQL-连接查询

连接查询

当查询中涉及到了多个表的字段,需要使用多表连接 select 字段1,字段2 from 表1,表2,…;

笛卡尔乘积:当查询多个表时,没有添加有效的连接条件,导致多个表所有行实现完全连接 如何解决:添加有效的连接条件

Untitled

分类

按年代分类: sql92: 等值 非等值 自连接 也支持一部分外连接(用于oracle、sqlserver,mysql不支持) sql99【推荐使用】 内连接 等值 非等值 自连接 外连接 左外 右外 全外(mysql不支持) 交叉连接

等值连接

Untitled

#2.为表起别名 #查询员工的名,工种号和工种名 #如果起了别名,就不能在语句中使用原来的字段

Untitled

Untitled

#3.from 表的顺序,可以调换

Untitled

#4.加筛选条件,AND #查询有奖金的员工和部门

Untitled

#5. 加分组 #查询每个城市的部门个数

Untitled

#查询有奖金的每个部门的名字和领导编号即该部门的最低工资

Untitled

#查询每个工种的名字和员工个数,并按个数降序排列

Untitled

#7.三表连接,多条件用AND

Untitled

总结:

  1. 多表等值连接为多表的交集
  2. 多表条件为n-1
  3. 一般会起别名
  4. 可以搭配分组、排序等

非等值连接

#查询员工工资和等级,先建一个等级表

CREATE TABLE job_grades
(grade_level VARCHAR(3),
lowest_sal INT,
highest_sal INT);
INSERT INTO job_grades
VALUES ('A', 1000, 2999);
INSERT INTO job_grades
VALUES ('B', 3000, 5999);
INSERT INTO job_grades
VALUES('C', 6000, 9999);
INSERT INTO job_grades
VALUES('D', 10000, 14999);
INSERT INTO job_grades
VALUES('E',15000,24999);
INSERT INTO job_grades
VALUES('F',25000,40000);

Untitled

自连接

表内的等值连接

#查询员工名字和上级名字,注意别名的应用

Untitled

Sql99

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

连接类型:

內连 :inner
       等值,非等值,自连接
外连:
    左外:left [outer]
    右外:right [outer]
    全外:full [outer]
交叉连接:cross

Untitled

外连接

①查询的结果=主表中所有的行,如果从表和它匹配的将显示匹配行,如果从表没有匹配的则显示null ②left join 左边的就是主表,right join 右边的就是主表 full join 两边都是主表 ③一般用于查询除了交集部分的剩余的不匹配的行

#查询没有男朋友的
USE girls;
SELECT g.name,b.*
FROM  beauty g
LEFT OUTER JOIN boys b
ON g.id=b.id
WHERE b.id IS NULL;

Untitled

#查询没有人的部门
SELECT d.department_name,e.department_id
FROM employees e
RIGHT OUTER JOIN departments d
ON e.department_id=d.department_id
WHERE e.department_id IS NULL;

Untitled

Untitled

Untitled

交叉连接

sql99下的笛卡尔集

Untitled

  • 文章目录
  • 站点概览
Etaon

Etaon

Kepp Going!

80 日志
15 分类
43 标签
GitHub CSDN
友情链接
  • Kubernetes
  • Cisco
  • W3School
  • 廖雪峰
标签云
  • Mysql
  • Aws
  • Dql
  • Hadoop
  • Kubernetes
  • Nsx t
  • Redis
  • Azure
  • Cicd
  • Git
  • 连接查询
  • 等值连接
  • 非等值连接
  • 自连接
  • Sql99
    • 外连接
    • 交叉连接
© 2010 - 2023 路无止境!
Powered by - Hugo v0.101.0 / Theme by - NexT
/
Storage by Azure static web apps /
0%