SQL语言之DQL语言学习(八)多表查询/链接查询 SQL92学习
用法:
当查询的字段来自于多个表时,就会用到连接查询
按照功能分类
内连接: 等值/非等值链接,自链接
外连接: 左/右外连接,全外链接
交叉链接
笛卡尔乘积现象
表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.实现sql语言中DQL语言,实现简单查询、条件查询、排序查询等。
1.实现sql语言中DQL语言,实现简单查询.条件查询.排序查询等. (1)检索grade表当中的所有信息. (2)检索grade表数学成绩大于100的所有人信息. <%@ page langu ...
- SQL语言之DQL语言学习(十一)分页查询
应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求语法: 语法: select查询列表 from表 [join type join表2 on连接条件 where筛选条件 group by分 ...
- SQL语言之DQL语言学习(一) 基础查询
DQL(data query language)数据查询语言select DQL (数据查询语言) 用于查询数据库的数据 主要命令 SELECT 基础查询 语法 select 查询列表 from 表名 ...
- SQL语言之DQL语言学习(十)子查询
含义: 出现在其他语句中的select语句,称为子查询或内查询外部的查询语句,称为主查询或外查询 分类 按子查询出现的位置: select后面: 仅仅支持标量子查询 from后面: 支持表子查询 wh ...
- SQL语言之DQL语言学习(九)多表查询/链接查询 SQL99学习
语法 select 查询列 表 from 表1 别名 [连接类型] join 表2 别名 on 连接条件 #where 筛选条件 #group by 分组 #having 筛选条件 #order by ...
- SQL语言之DQL语言学习(七)分组查询
语法 select分组函数,列(要求出现在group by的后面) from 表 where 筛选 group by 分组列表 order by 排序子句 案例一: 查询每个工种的最高工资 SELEC ...
- SQL语言之DQL语言学习(三)排序查询
语法: select 查询列表 from表where筛选条件order by 排序列表[asc / desc] 其中降序为 DESC 升序为 ASC 如果两者都不写的话系统默认是升序 案例一 查询员工 ...
- SQL语言之DQL语言学习(二)条件查询
查询后并拼接字段 主要利用Concat( , )拼接函数; SELECT CONCAT(last_name,first_name) AS 姓名 from employees; 条件查询语法 selec ...
- 【SQL Server数据库】建库、建表、简单查询语句(一)
记录数据库原理实验所用到的代码. 创建数据库 创建名称为XSGL_CP的数据库. create database XSGL_CP --设置主文件的逻辑名称.文件名.初始大小.最大文件大小限制.需要增加 ...
最新文章
- Android期末项目-校园论坛
- [CVPR 2016] Weakly Supervised Deep Detection Networks论文笔记
- oracle client中对 TNSNAMES.ORA的研究
- Stream流中的常用方法_limit
- [转] 外企面试官最爱提的问题 TOP10
- 瑞星杀毒全面免费 请下载
- django解决NameError: name ‘_mysql‘ is not defined 或 mysqlclient 1.4.0 or newer is required报错
- 算法导论6:排序小结和最值取法 2016.1.6
- 数据结构实验之图论七:驴友计划(最新版)
- ble l2cap 工作过程_BLE 链路层报文详解
- laravel ::all() 选择字段_Laravel 性能优化:优化 ORM 性能使应用程序高可用
- IDEA 代码格式化设置
- Dota2 AI开发(一)环境配置
- MAE 论文逐段精读【论文精读】(深度学习论文篇)
- 弹出visual studio 实时调试器解决
- TS实现Base64的加密解密
- 图片Base64编码 图片Base64在线转换
- HTML5中图片路径的几种使用方式
- 白帽SEO霸屏技术分享,霸屏并没有想象的那样神秘
- 2015年找工作总结