mysql 四表链接查询_MySql_Day4—去重distinct—连接查询(内、外连接、多张表连接)...

MySql_Day4—去重distinct—连接查询(内、外连接、多张表连接)

MySql_Day4—去重distinct—连接查询(内、外连接、多张表连接)

1.distinct关键字去除重复记录——distinct只能出现在所有字段的最前面

select distinct job from emp;

9a675a0bf4b0f875c704a96c77a0bfe5.png

select distinct deptno,job from emp;

5209e68e11655c615c4754d665883451.png

统计岗位的数量?

select count(distinct job) from emp;

c85220a998d6fdce0bdb3666d7afb505.png

2.连接查询

2.1.连接查询的分类

SQL92:一些老的DBA可能还在使用这种语法。DBA:DataBase Administrator,数据库管理员

SQL92语法:

……

A,B

where

……

SQL99:比较新的语法

SQL99语法:

……

A

join

B

on

连接条件

where

……

979d9b91a526b1c2f844564ba2e0f748.png

区分内外连接:

——>join前,有无left、right。

内外连接的区别:

外连接:在2张表匹配不上时,会填充NULL

内连接:在2张表匹配不上时,就不显示了

关于表的别名:

select e.ename,d.dname from emp e,dept d;

表的别名有什么好处?

1、执行效率高。

2、可读性好。

2.2.内连接之等值连接

找出每个员工,显示员工名和部门名——emp与dept表联动

SQL99语法:select e.ename , d.dname from emp e join dept d on e.deptno=d.deptno;

81894fd3db8287e9f76d6289ffe8a9a2.png

SQL92语法:select e.ename , d.dname from emp e join dept d where e.deptno=d.deptno;

f90b60eaa209126dbb93476b27c0c0ae.png

2.3.内连接之非等值连接

特点是:连接条件中的关系是非等量关系。

找出每个员工的工资等级,要求显示员工名、工资、工资等级

select e.ename,e.sal,s.grade from emp e join salgrade s on (e.sal>=s.losal and e.sal<=hisal);

或 select e.ename,e.sal,s.grade from emp e join salgrade s on (e.sal between s.losal and hisal);

0a8533e078b762323db74610748e6806.png

2.4.自连接——必须借用“别名”

特点是:一张表看做两张表。自己连接自己。

找出每个员工的上级领导,要求显示员工名和对应的领导名。

select a.ename as '员工',b.ename as '领导' from emp a (inner可以省略) join emp b on a.mgr=b.empno;

e0ddfa18fbb57a053c4ba92e169cfd51.png

2.5.外连接——分主、副表

外连接最重要的特点是:主表的数据无条件的全部查询出来。

找出每个员工的上级领导,要求显示员工名和对应的领导名。

select a.ename as '员工',b.ename as '领导' from emp a left (outer可以省略) join emp b on a.mgr=b.empno;

b64701ef1411dd814c990cc861a9fa57.png

找出哪个部门没有员工?

select d.* from emp e right join dept d on e.deptno=d.deptno where e.empno is null;

7dc2668ce4f0a996cfb68f30636d478b.png

2.6.——3张表的连接

A先和B连接,再和C连接

....

A

join

B

join

C

on

...

找出每一个员工的部门名称、工资等级、以及上级领导。

select

e.ename,d.dname,s.grade,e2.ename

from

emp e

join

dept d

on

e.deptno=d.deptno//匹配部门名称

join

salgrade s

on

e.sal between s.losal and s.hisal //匹配工资等级

left join

emp e2

on

e.mgr=e2.empno;//匹配领导名

8db5d21fc3502ff449de206849d310a8.png

MySql_Day4—去重distinct—连接查询(内、外连接、多张表连接)相关教程

MySQL5.5安装出现CMake错误找不到CMakelists.txt原因

MySQL5.5安装出现CMake错误找不到CMakelists.txt原因 为什么80%的码农都做不了架构师? 今天虚拟机上测试安装 CentOS6.3 + PHP5.4.8 + MySQL5.5.28,结果捣鼓了半天 MySQL都没装上,老是CMake目录下找不到那个 lists 文件,郁闷的不行,最后发现问题所在,总

MySQL 基础

MySQL 基础 事务就是满足 ACID 特性的一组操作,可以用 commit 提交一个事务,也可以用 rollback 回滚事务。 AUTOCOMMIT MySQL 默认 自动提交模式。也就是说,如果不显式使用 START TRANSACTION 语句来开始一个事务,那么每个查询都会被当做一个事务自动提交

Mysql之replication初探

Mysql之replication初探 MySQL的Replication是一种多个MySQL的数据库做主从同步的方案,特点是异步,广泛用在各种对MySQL有更高性能,更高可靠性要求的场合。与之对应的另一个技术是同步的MySQL Cluster,但因为比较复杂,使用者较少。 下图是MySQL官方给出

How-to: 使用 highcharts + MySQL 构建自己的简易网站监控系统

How-to: 使用 highcharts + MySQL 构建自己的简易网站监控系统 出自我的个人博客: http://www.suzf.net/thread-1001-345.html Highcharts 是一个用纯JavaScript编写的一个图表库。 Highcharts 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表 H

mysql主键非空约束怎么设置

mysql中可以通过在“CREATE TABLE”语句中,使用“字段名 数据类型 PRIMARY KEY [默认值]”语句来设置主键约束,使用“字段名 数据类型 NOT NULL”语句来设置非空约束。 mysql主键约束 主键(PRIMARY KEY)的完整称呼是“主键约束”,是 MySQL 中使用最为频

腾讯T3大牛总结的500页MySQL实战笔记意外爆火P8看了直呼内行

腾讯T3大牛总结的500页MySQL实战笔记意外爆火,P8看了直呼内行 前几天逛知乎的时候看到一个话题: MySQL没前途了吗? 最近几年,似乎总有一种声音在说,MySQL可能不太行了,原因无非是这么几条,MySQL功能不如PG强大,原生没有分库分表不如TIDB,OLAP性能差

MySQL学习第7天—JDBC

MySQL学习第7天—JDBC 文章目录 一、JDBC 二、第一个JDBC程序 1. 创建测试数据库 2. 导入数据库驱动 3. JDBC程序 4. 步骤总结 1、加载驱动 2、连接数据库 DriverManager 3、获得执行SQL的对象 Statement 4、获得返回的结果集 5、释放连接 5. 总结 三、stateme

MySQL5.7安装文档

MySQL5.7安装文档 步骤一:软件的卸载准备 学习网络编程时,TCP/IP协议程序有服务器端和客户端。mysql这个数据库管理软件是使用TCP/IP协议。我们现在要卸载的是mysql的服务器端,它没有界面。 【计算】–右键–【管理】–【服务】–【mysql的服务】–【停止】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值