#要多练练

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. Ubuntu16.04 安装lamp环境

    拿到新装的ubuntu16.04新系统 首先 apt-get update 更新一下 我这里是root用户,如果您不是超级管理员,命令前加sudo即可 如果您加了sudo也不好使,那就联系管理员,给你 ...

  2. 模拟线程安全的售票案例(java)

    package try51.thread.safe; import java.util.ArrayList; import java.util.Random; import java.util.con ...

  3. 肖俊:HPE IT 的DevOps 实践分享

    本篇文章来自于HPE和msup共同举办的技术开放日HPE测试技术总监肖俊的分享,由壹佰案例整理编辑. 一.DevOps含义解析 这是DevOps的趋势图.DevOps这个概念大概是在2009年被提出来 ...

  4. ububtu16.04下安装protobuf

    重新下载protobuf,我下载的时最新的protobuf-all-3.5.1.tar.gz   protobuf网址:https://github.com/google/protobuf/relea ...

  5. 初识Spring Webflux

    Important to know is that there are two ways to use Spring Webflux. One using annotations, which is ...

  6. win7 链接打印机时提示未知的用户名或错误密码

    使用win7系统时,访问局域网内的计算机 \\ip 要求输入正确用户名和密码,输入用户名和密码后,还是一直提示“未知的用户名或错误密码”. 解决方法: 开始---->运行 打开组策略编辑器 gp ...

  7. Hibernate错误

    1.Field 'id' doesn't have a default value 原来是我的数据设计的时候,把主键的类型定义为int的,原本想是用自增的方式来的,可是由于自己的粗心,写sql语句的时 ...

  8. python 面向对象 新式类和经典类

    # 经典类写法 # schoolMember.__init__(self, name, age, sex) # 新式类写法 super(Teather, self).__init__(name, ag ...

  9. elasticsearch 6.0java api的使用

    elasticsearch 6.0 中java api的使用 1:使用java api创建elasticsearch客户端 package com.search.elasticsearch; impo ...

  10. Selenium定位元素-Xpath的使用方法

    工具 Xpath的练习建议下载火狐浏览器,下载插件Firebug.Firepath. 由于最新版火狐不支持Firebug等扩展工具了,所以需要下载49版以下的版本安装https://ftp.mozil ...