MYSQL数据库学习十一 多表数据记录查询
11.1 关系数据操作
并(UNION):把具有相同字段数目和字段类型的表合并到一起。
笛卡尔积(CARTESIAN PRODUCT):没有连接条件表关系的返回结果。字段数=table1字段数+table2字段数,记录数=table1记录数*table2记录数。
内连接(INNER JOIN):在表关系的笛卡尔积数据记录中,保留表关系中所有匹配的数据记录,舍弃不匹配的数据记录.
外连接(OUTER JOIN):在表关系的笛卡尔积数据记录中,不仅保留表关系中所有匹配的数据记录,而且还会保留部分不匹配的数据记录。
11.2 内连接(INNER JOIN)
按照匹配的条件分为:自然连接,等值连接,不等连接
1.自然连接:表关系的笛卡尔积中,首先根据表关系中相同名称的字段自动进行记录匹配,然后去掉重复的字段。
2.等值连接:表关系的笛卡尔积中,选择所匹配字段值相等(=符号)的数据记录,在新关系中不会去掉重复的字段。
3.不等连接:表关系的笛卡尔积中,选择所匹配字段值不相等(!=符号)的数据记录,在新关系中不会去掉重复的字段。
SELECT field1,field2,...,fieldn
FROM join_tablename1 INNER JOIN join_tablename2
ON join_condition
11.3 外连接(OUTER JOIN)
按照保留不匹配条件数据来源可以分为:左外连接、右外连接、全外连接
1.左外连接:表关系的笛卡尔积中,除了选择相匹配的数据记录,还包含关联左边表中不匹配的数据记录。
2.右外连接:表关系的笛卡尔积中,除了选择相匹配的数据记录,还包含关联右边表中不匹配的数据记录。
3.全外连接:表关系的笛卡尔积中,除了选择相匹配的数据记录,还包含左右两表中不匹配的数据记录。
SELECT field1,field2,...,fieldn
FROM join_tablename1 LEFT|RIGHT|FULL [OUTER] JOIN join_tablename2
ON join_condition
11.4 合并查询
MySQL通过 UNION|UNION ALL 实现并操作,UNION去掉了重复数据记录,UNION ALL没有去掉重复数据记录。
SELECT field1,field2,...,fieldn
FROM tablename1
UNION|UNION ALL
SELECT field1,field2,...,fieldn
FROM tablename2
UNION|UNION ALL
SELECT field1,field2,...,fieldn
FROM tablename3
……
11.5 子查询
通过统计函数 COUNT() 查询所关联表笛卡尔积后的数据记录数(两表数据记录乘积条数据记录数),具体SQL语句如下:
SELECT COUNT(*)
FROM t_dept,t_employee
如果查询到的数据记录数MySQL可以接受,然后才进行多表连接查询。如果查询到的数据记录数远大于MySQL软件可接受的范围,则通过子查询来实现多表查询。
11.5.1 返回结果为单行单列和单行多列
子查询一般在WHERE子句里,通常会包含比较运算符(“>”、“<”、“=”、“!=”等)。
11.5.2 返回结果为多行单列
子查询一般在WHERE子句里,通常会包含IN、ANY、ALL、EXISTS等。
IN:主查询的查询条件在子查询的查询结果中时使用。
ANY:主查询的查询条件为满足子查询查询结果中任意一条数据记录。
=ANY:功能和IN一样;
>(>=)ANY:大于(大于等于)最小的数据记录;
<(<=)ANY:小于(小于等于)最大的数据记录。
ALL:主查询的查询条件为满足子查询查询结果中所有数据记录。
>(>=)ALL:大于(大于等于)最大的数据记录;
<(<=)ALL:小于(小于等于)最小的数据记录。
EXISTS:返回记录行时条件为真,返回当前遍历到的记录,反之丢弃。
11.5.3 返回结果为多行多列子查询
子查询一般在FROM子句里,被当做一张临时表来处理。
SELECT d.deptno,d.dname,d.loc,number,average
FROM t_dept d INNER JOIN (
SELECT depno dno,COUNT(empno) number,AVG(sal) average FROM t_employee GROUP BY depno DESC) employee
ON d.deptno=employee.dno;
MYSQL数据库学习十一 多表数据记录查询的更多相关文章
- MYSQL数据库学习十 单表数据记录查询
10.1 简单数据记录查询 SELECT field1,field2,...fieldn FROM table_name; “*” ——查询所有记录 SELECT * FROM table_name; ...
- MySQL多表数据记录查询详解
在实际应用中,经常需要实现在一个查询语句中显示多张表的数据,这就是所谓的多表数据记录连接查询,简称来年将诶查询. 在具体实现连接查询操作时,首先将两个或两个以上的表按照某个条件连接起来,然后再查询到所 ...
- Mysql-多表数据记录查询
多表数据记录查询 一.关系数据操作 并(UNION) 并就是把具有相同字段数目和字段类型的表合并到一起 笛卡尔积(CARTESIAN PRODUCT) 笛卡尔积就是没有连接条件表关系返回的结果. 内连 ...
- Mysql--单表数据记录查询
1.简单数据记录查询 1.1 简单数据查询 1.1.1 查询所有字段数据 例子: 1.1.2 "*"符号的使用 语法: 例子: 1.1.3 查询指定字段数据 例子: ...
- MySQL数据库实验:任务二 表数据的插入、修改及删除
目录 任务二 表数据的插入.修改及删除 一.利用界面工具插入数据 二.数据更新 (一)利用MySQL命令行窗口更新数据 (二)利用Navicat for MySQL客户端工具更新数据 三.数据库的备份 ...
- mysql进阶(二十一)删除表数据
MySQL删除表数据 在MySQL中有两种方法可以删除数据,一种是DELETE语句,另一种是TRUNCATE TABLE语句.DELETE语句可以通过WHERE对要删除的记录进行选择.而使用TRUNC ...
- mysql数据库通过二进制 -【恢复数据记录】
1.修改配置文件 vi /etc/my.cnf log-bin = binlog systemctl restart mysqld mysql -uroot -p123456 mysql> sh ...
- MySQL 数据库恢复一张表中的数据
如果使用 mysqldump -uroot -p123 user > test.sql备份了user数据库中的所有数据,但是当前只想要恢复该数据库的某张表数据,该怎么处理呢? 已知恢复整个数据库 ...
- MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
随机推荐
- 决策树学习笔记(Decision Tree)
什么是决策树? 决策树是一种基本的分类与回归方法.其主要有点事模型具有可得性,分类速度快.学习时,利用训练数据,根据损失函数最小化原则建立决策树模型:预测时,对新数据,利用决策树模型进行分类. 决策树 ...
- ubuntu11.04编译gm8180的ffmpeg
1.1 About this documentThe ffmpeg is a open source package that provides video application for gener ...
- linux下的framebuffer显示图片
void showbmp2() { int x,y; unsigned char *p; int index=0; struct fb_var_screen ...
- linux命令--ldconfig和ldd用法
一.ldconfig ldconfig是一个动态链接库管理命令,为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfig. ldconfig 命令的用途,主要是在默认搜寻目录(/ ...
- 芝麻HTTP:Python爬虫实战之爬取糗事百科段子
首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致之前的代码没法用了,会导致无法输出和CPU占用过高的 ...
- 2016-2017 CT S03E06: Codeforces Trainings Season 3 Episode 6 The Baguette Master
比赛看不懂 之后不确定题意去瞄了题解,需要分类讨论?囧 之后按照队友已经ac的题意 就是求外面一圈周长,直接可以求得 #include<bits/stdc++.h> using names ...
- 通过ApplicationContext.getBean(beanName)动态加载数据。
一,前台数据 $.ajax({ url: '/intra/coe/order/ploadTable.htm', type: 'POST', dataType: 'json', data: {keyId ...
- 自己用的reset.css,大部分转载,加上自己常用的设置
@charset "UTF-8";/*KISSY CSS Reset理念:清除和重置是紧密不可分的特色:1.适应中文 2.基于最新主流浏览器维护:玉伯(lifesinger@gma ...
- 【BZOJ2693】jzptab(莫比乌斯反演)
[BZOJ2693]jzptab(莫比乌斯反演) 题面 讨厌权限题,只能跑到别的OJ上交 和这题是一样的 多组数据 求\[\sum_{i=1}^n\sum_{j=1}^mlcm(i,j)\] 题解 前 ...
- [SCOI2010]股票交易
题目大意: 网址:https://www.luogu.org/problemnew/show/P2569 大意:在接下来的T天中,每天股票有一个买入价格Api与卖出价格Bpi. 同时,每天买入股票数与 ...