#要多练练

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之表连接(内外连接和重命名的使用)的更多相关文章

  1. Mysql多表合并以及连接问题

    目的 1.为了备战过两天的面试,我又重新给孙老师的课件看了一遍,学累了,就写写自己的新的体会,和遇到的问题,来进行一个记录,这是知识产出的过程,据说可以帮助我学习,看视频什么的都是被动学习,不进行及时 ...

  2. mysql数据库表间内外链接详解

    1. 内连接(自然连接) 2. 外连接 (1)左外连接 (左边的表不加限制)(2)右外连接(右边的表不加限制)(3)全外连接(左右两表都不加限制) 3. 自连接(同一张表内的连接) SQL的标准语法: ...

  3. rac下asm管理的表空间-数据文件的重命名

    asm下表空间的重命名与普通文件系统下的表空间重命名原理是一样的,只不过asm管理的数据文件有一些需要注意的地方,另外在asm下操作数据文件需要格外小心,稍有不慎将会造成数据文件丢失,如可以做备份最好 ...

  4. mysql,多表的内外连接+子查询

    表: student house course 关系:student_course 多对多 student house 多对一 需求:查询房间1 的学生 都学习了什么课程 select s.s_nam ...

  5. 【mysql优化 3】嵌套循环连接算法

    原文地址:Nested-Loop Join Algorithms mysql在表之间执行连接操作,包括了使用循环嵌套算法或者其他在此基础上的变形. 循环嵌套连接算法: 一个简单的嵌套循环连接(NLJ: ...

  6. mysql.user表中Host为%的含义

    百度搜: MySQL之权限管理(mysql.user表详解) 连接:http://blog.csdn.net/zmx729618/article/details/78026497 mysql.user ...

  7. Mysql 库表操作初识

    Mysql 库表操作初识 终端登录mysql 这里只演示win下, cmd 终端. 至于怎么在win下, linux, mac安装, 感觉这是一个入门级的百度搜索问题, 安装都搞不定, 确实有点尴尬, ...

  8. mysql数据库表的修改及删除

    一.对数据表的修改 1.重命名一张表: RENAME TABLE 原名 TO 新名字; ALTER TABLE 原名 RENAME 新名; ALTER TABLE 原名 RENAME TO 新名; 2 ...

  9. ALTER语句重命名,重新定义和重新排序列

    该CHANGE,MODIFY和 ALTER子句可以改变现有列的名称和定义.他们有这些比较特征: CHANGE: 可以重命名列并更改其定义,或两者都可以. 具有更多的能力MODIFY,但是以某些操作的便 ...

  10. MySQL 进阶6: 连接查询 (多表连接) : 等值连接/非等值连接 /左右全连接/内连接

    #进阶6: 连接查询 (多表连接) : 等值连接/非等值连接 /左右全连接/内连接 /* 含义: 当查询的字段来自于多个表时, 就会用到连接查询 一: sql 92标准 :等值连接 ,(#内连接) 1 ...

随机推荐

  1. vue中打包生成可配置文件以便修改接口地址

    vue打包上传到服务器之后,如果数据接口域名发生变化,需要手动修改接口地址,在发布的时候也麻烦,于是.. 在打包之后如果有一个json配置文件以便修改那不是方便很多 在网上找了一些方法貌似都是异步请求 ...

  2. ABP之仓储

    一.仓储的简单介绍 仓储(Repository):这是属于领域层的重要组成部分,它的作用就是完成和数据库的交互工作,仓储里封装了很多操作数据库的方法.所以说仓储是数据映射层和领域层的交互中介.ABP针 ...

  3. easyui_2----messager

    <script> $.messager.alert("这是头","这是内容"); </script> 必须放在 $(function() ...

  4. HUSTM 1601 - Shepherd

    题目描述 Hehe keeps a flock of sheep, numbered from 1 to n and each with a weight wi. To keep the sheep ...

  5. pcl学习笔记(二):点云类型

    不同的点云类型 前面所说的,pcl::PointCloud包含一个域,它作为点的容器,这个域是PointT类型的,这个域是PointT类型的是pcl::PointCloud类的模板参数,定义了点云的存 ...

  6. Kettle 4.2源码分析第四讲--KettleJob机制与Database插件简介(含讲解PPT)

    1.  Job机制 一个job项代表ETL控制流中的一项逻辑任务.Job项将会顺序执行,每个job项会产生一个结果,能作为别的分支上job项的条件. 图 1 job项示例 1.1. Job类图简介 图 ...

  7. POJ3468 a simple problem with integers 分块

    题解:分块 解题报告: 是个板子题呢qwq 没什么可说的,加深了对分块的理解趴还是 毕竟这么简单的板子题我居然死去活来WA了半天才调出来,,,哭了QAQ 还是说下我错在了哪几个地方(...是的,有好几 ...

  8. 10 jmeter之动态关联

    jmeter中关联是通过之前请求的后置处理器实现的,具体有两种方式:XPath Extractor(一般xml的时候用的多)和正则表达式提取器. 以webtours登录为例进行演示login.jmx ...

  9. SQL 1

    SQL 教程 SQL 是用于访问和处理数据库的标准的计算机语言. 在本教程中,您将学到如何使用 SQL 访问和处理数据系统中的数据,这类数据库包括:MySQL.SQL Server.Access.Or ...

  10. git pull报错,error: cannot lock ref导致拉流失败

    使用git命令删除相应refs文件,git update-ref -d refs/remotes/XXX,或者手动删除文件 简单粗暴强行git pull,执行git pull -p 原文:https: ...