MySQL之表连接(内外连接和重命名的使用)
#要多练练
1.连接查询根据连接方式分为
内连接
等值连接
非等值连接
自连接
外连接
左外连接(左连接)
右外连接(右连接)
当多张表进行连接查询,若没有任何条件进行限制,会
发生什么现象?
会出现笛卡尔积,即两张表的记录的条数的乘积
##哪里用as?为什么这里不能用as?
#sql92:内连接中的等值连接
select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno;
#SQL99:内连接中的等值连接,优点:对表连接不满意的话,
#可以再追加where进行过滤。
select e.ename,d.dname from emp e join dept d on e.deptno=d.deptno;
#SQL99:内连接中的非等值连接?
#eg:显示薪水等级、部门名、薪水等
select e.ename,e.sal,s.grade from emp e join salgrade s on e.sal between s.losal and s.hisal;
#找出每个员工的上级领导的名称,说明领导也从属于员工表,所以要
#把一张表看成两张表(a、b两张表)。
select a.ename empname,b.ename leadrname from emp a inner join emp b on a.mgr=b.empno; select a.ename empname,b.ename leadername from emp a join emp b on a.mgr=b.empno;
#找出每个员工对应的部门名称,要求显示全部
#部门名全部显示
select e.ename,d.dname from emp e right join dept d on d.deptno=d.deptno;
#什么时候用外连接?什么时候用内连接?
#内连接的记录条数小于等于外连接,内连接
#是会显示相匹配的信息,对于不完整的信息不会显示
#而外连接(无条件的全部显示)是会对全部进行显示的
#左连接是将左边全部显示出来,而右连接是将右边全部
#显示出来,若无记录则用null来匹配
#案例:找出每个员工对应的领导名,要求显示
#所有的员工
select a.ename empname,b.ename leadername
from emp a
left join emp b
on a.mgr=b.empno;
#把一张表看成a、b两张表
#案例:找出每一个员工对应的部门名称,以及
#该员工对应的工资等级。要求显示员工名、部门
#名、工资等级
#多张表进行连接的语法格式:
select
XXX
from
a
join
b
on
条件
join
c
on
条件;
原理:a和b连接,再用a和c连接。
select
e.ename,d.dname,s.grade
from
emp e
join
dept d
on
e.deptno=d.deptno;
join
salgrade s
on
e.sal between s.losal and s.hisal;
MySQL之表连接(内外连接和重命名的使用)的更多相关文章
- Mysql多表合并以及连接问题
目的 1.为了备战过两天的面试,我又重新给孙老师的课件看了一遍,学累了,就写写自己的新的体会,和遇到的问题,来进行一个记录,这是知识产出的过程,据说可以帮助我学习,看视频什么的都是被动学习,不进行及时 ...
- mysql数据库表间内外链接详解
1. 内连接(自然连接) 2. 外连接 (1)左外连接 (左边的表不加限制)(2)右外连接(右边的表不加限制)(3)全外连接(左右两表都不加限制) 3. 自连接(同一张表内的连接) SQL的标准语法: ...
- rac下asm管理的表空间-数据文件的重命名
asm下表空间的重命名与普通文件系统下的表空间重命名原理是一样的,只不过asm管理的数据文件有一些需要注意的地方,另外在asm下操作数据文件需要格外小心,稍有不慎将会造成数据文件丢失,如可以做备份最好 ...
- mysql,多表的内外连接+子查询
表: student house course 关系:student_course 多对多 student house 多对一 需求:查询房间1 的学生 都学习了什么课程 select s.s_nam ...
- 【mysql优化 3】嵌套循环连接算法
原文地址:Nested-Loop Join Algorithms mysql在表之间执行连接操作,包括了使用循环嵌套算法或者其他在此基础上的变形. 循环嵌套连接算法: 一个简单的嵌套循环连接(NLJ: ...
- mysql.user表中Host为%的含义
百度搜: MySQL之权限管理(mysql.user表详解) 连接:http://blog.csdn.net/zmx729618/article/details/78026497 mysql.user ...
- Mysql 库表操作初识
Mysql 库表操作初识 终端登录mysql 这里只演示win下, cmd 终端. 至于怎么在win下, linux, mac安装, 感觉这是一个入门级的百度搜索问题, 安装都搞不定, 确实有点尴尬, ...
- mysql数据库表的修改及删除
一.对数据表的修改 1.重命名一张表: RENAME TABLE 原名 TO 新名字; ALTER TABLE 原名 RENAME 新名; ALTER TABLE 原名 RENAME TO 新名; 2 ...
- ALTER语句重命名,重新定义和重新排序列
该CHANGE,MODIFY和 ALTER子句可以改变现有列的名称和定义.他们有这些比较特征: CHANGE: 可以重命名列并更改其定义,或两者都可以. 具有更多的能力MODIFY,但是以某些操作的便 ...
- MySQL 进阶6: 连接查询 (多表连接) : 等值连接/非等值连接 /左右全连接/内连接
#进阶6: 连接查询 (多表连接) : 等值连接/非等值连接 /左右全连接/内连接 /* 含义: 当查询的字段来自于多个表时, 就会用到连接查询 一: sql 92标准 :等值连接 ,(#内连接) 1 ...
随机推荐
- [实战]MVC5+EF6+MySql企业网盘实战(1)
写在前面 不久前,一个朋友让帮他弄一个单位的企业网盘的管理站点,一直忙,最近抽出了点时间,也想琢磨琢磨mvc,ef,mysql,这算是边琢磨,边实践吧. 系列文章 [实战]MVC5+EF6+MySql ...
- ubuntu-server-18.04 设置开机启动脚本
ubuntu-16.10 开始不再使用initd管理系统,改用systemd systemd is now used for user sessions. System sessions had al ...
- poj2778 DNA Sequence【AC自动机】【矩阵快速幂】
DNA Sequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 19991 Accepted: 7603 Des ...
- hdu 1525 Euclid's Game【 博弈论】
Two players, Stan and Ollie, play, starting with two natural numbers. Stan, the first player, subtra ...
- Mac操作技巧
Command+Option+P+R,重置PRAM的. 官方关于重置PRAM的说明.(有助于电脑提速) 安装新版系统的时候失败,原因是下载的镜像有问题版本不对,具体是中国区暂未更新镜像,下载下来的有问 ...
- GUID Partition Table (GPT)
https://en.wikipedia.org/wiki/GUID_Partition_Table https://zh.wikipedia.org/wiki/全局唯一标识分区表 GUID Part ...
- Python开发【笔记】:关于子线程(子进程)与主线程(主进程)的关联
前言: 主要分析下面的问题: 主线程启线程 主线程执行完毕,会关闭子线程吗? 子线程启线程 主线程执行完毕,会结束吗? 主进程启动进程,主进程执行完毕,会怎样? 子进程启动进程,进程执行完毕,又会 ...
- IO流(8)递归删除带文件的目录
递归删除带内容的目录 * * 目录给定:demo * * 分析: * A:封装目录 * B:获取该目录下的所有文件或者文件夹的File数组 * C:遍历该File数组,得到每一个File对象 * D: ...
- Jedis 对 Redis 的操作详解
1. JedisUtil2. 键操作3. 字符串操作4. 字节串4. 整数和浮点数5. 列表6. 集合(Set)7. 散列8. 排序sort 本篇主要阐述Jedis对redis的五大类型的操作:字符串 ...
- Vue.js - 概述
概述 Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的库.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件. Vue.js ...