用法:

当查询的字段来自于多个表时,就会用到连接查询

按照功能分类

内连接: 等值/非等值链接,自链接

外连接: 左/右外连接,全外链接

交叉链接

笛卡尔乘积现象

表1有m行,表2有n行,结果=m*n行

发生原因:没有有效的连接条件

一.内链接之等值连接

案例一:从女生表查找到男生表中的男女朋友关系

SELECT name,boyName FROM boys,beauty
WHERE beauty.boyfriend_id=boys.id

案例二:添加筛选条件

查询有奖金的员工名,部门名

SELECT  last_name,department_name,commission_pct
FROM employees,departments
WHERE employees.department_id=departments.department_id
and employees.commission_pct is not null


案例三:添加分组

查询每个城市的部门个数

SELECT  count(*) 个数, city
FROM departments, locations
WHERE departments.location_id=locations.location_id
GROUP BY city;


案例四:添加排序

查询每个工种的工种名 和 员工的个数,并按照员工的个数进行排序

SELECT  job_title,count(*)
FROM employees,jobs
WHERE jobs.job_id = employees.job_id
GROUP BY job_title
ORDER BY COUNT(*) DESC;


案例四:实现三表链接
查询员工名,部门名 和 所在的城市

SELECT  last_name,department_name,city
FROM employees,departments,locations
WHERE employees.department_id=departments.department_id
and departments.location_id = locations.location_id
ORDER BY department_name DESC;

二.内链接之非等值连接

查询员工的工资与工资级别

SELECT last_name,salary,grade_level
FROM employees e, job_grades g
WHERE salary BETWEEN g.lowest_sal and  g.highest_sal

自连接

即连续查询一个表两次

案例:查询员工名和上级领导的名称

因为上级领导也是属于员工,需要在员工表中查询两次

SELECT e.employee_id ,e.last_name 员工名 ,m.employee_id,m.last_name  领导名
FROM employees e, employees m   #查询第一遍备注为e,第二遍为m
WHERE e.manager_id=m.manager_id

SQL语言之DQL语言学习(八)多表查询/链接查询 SQL92学习相关推荐

  1. 1.实现sql语言中DQL语言,实现简单查询、条件查询、排序查询等。

    1.实现sql语言中DQL语言,实现简单查询.条件查询.排序查询等. (1)检索grade表当中的所有信息. (2)检索grade表数学成绩大于100的所有人信息. <%@ page langu ...

  2. SQL语言之DQL语言学习(十一)分页查询

    应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求语法: 语法: select查询列表 from表 [join type join表2 on连接条件 where筛选条件 group by分 ...

  3. SQL语言之DQL语言学习(一) 基础查询

    DQL(data query language)数据查询语言select DQL (数据查询语言) 用于查询数据库的数据 主要命令 SELECT 基础查询 语法 select 查询列表 from 表名 ...

  4. SQL语言之DQL语言学习(十)子查询

    含义: 出现在其他语句中的select语句,称为子查询或内查询外部的查询语句,称为主查询或外查询 分类 按子查询出现的位置: select后面: 仅仅支持标量子查询 from后面: 支持表子查询 wh ...

  5. SQL语言之DQL语言学习(九)多表查询/链接查询 SQL99学习

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

  6. SQL语言之DQL语言学习(七)分组查询

    语法 select分组函数,列(要求出现在group by的后面) from 表 where 筛选 group by 分组列表 order by 排序子句 案例一: 查询每个工种的最高工资 SELEC ...

  7. SQL语言之DQL语言学习(三)排序查询

    语法: select 查询列表 from表where筛选条件order by 排序列表[asc / desc] 其中降序为 DESC 升序为 ASC 如果两者都不写的话系统默认是升序 案例一 查询员工 ...

  8. SQL语言之DQL语言学习(二)条件查询

    查询后并拼接字段 主要利用Concat( , )拼接函数; SELECT CONCAT(last_name,first_name) AS 姓名 from employees; 条件查询语法 selec ...

  9. 【SQL Server数据库】建库、建表、简单查询语句(一)

    记录数据库原理实验所用到的代码. 创建数据库 创建名称为XSGL_CP的数据库. create database XSGL_CP --设置主文件的逻辑名称.文件名.初始大小.最大文件大小限制.需要增加 ...

最新文章

  1. Android期末项目-校园论坛
  2. [CVPR 2016] Weakly Supervised Deep Detection Networks论文笔记
  3. oracle client中对 TNSNAMES.ORA的研究
  4. Stream流中的常用方法_limit
  5. [转] 外企面试官最爱提的问题 TOP10
  6. 瑞星杀毒全面免费 请下载
  7. django解决NameError: name ‘_mysql‘ is not defined 或 mysqlclient 1.4.0 or newer is required报错
  8. 算法导论6:排序小结和最值取法 2016.1.6
  9. 数据结构实验之图论七:驴友计划(最新版)
  10. ble l2cap 工作过程_BLE 链路层报文详解
  11. laravel ::all() 选择字段_Laravel 性能优化:优化 ORM 性能使应用程序高可用
  12. IDEA 代码格式化设置
  13. Dota2 AI开发(一)环境配置
  14. MAE 论文逐段精读【论文精读】(深度学习论文篇)
  15. 弹出visual studio 实时调试器解决
  16. TS实现Base64的加密解密
  17. 图片Base64编码 图片Base64在线转换
  18. HTML5中图片路径的几种使用方式
  19. 白帽SEO霸屏技术分享,霸屏并没有想象的那样神秘
  20. 2015年找工作总结

热门文章

  1. 活动目录的备份与还原
  2. Java 11新特性解读
  3. service-mesh
  4. Android TabLayout添加自定义分割线并且可以修改分割线高度
  5. 《Unity3D-控制角色受伤的时候身体颜色变化的代码》
  6. Linux文本处理三剑客之awk
  7. 用JAVA日志来写诗
  8. [转载]MVC、MVP以及Model2(下)
  9. wcf返回datatable必须给tablename赋值
  10. 温斯顿英语 PHP,温斯顿英语