MySQL数据库——连接查询
1.基本含义
连接就是指两个或2个以上的表(数据源)“连接起来成为一个数据源”。
实际上,两个表的完全的连接是这样的一个过程:
左边的表的每一行,跟右边的表的每一行,两两互相“横向对接”后所得到的所有数据行的结果。
注意:连接之后,并非形成了一个新的数据表,而只是一种“内存形态”。
2.连接语法的基本形式
from 表1 [连接方式] join 表2 [on 连接条件];
连接的结果可以当作一个“表”来使用。常用有以下几种连接方式:交叉连接 内连接 外连接 左、右外连接
3.交叉连接:
实际上,交叉连接是将两个表不设定任何条件的连接结果。
交叉连接通常也被叫做“笛卡尔积”——数学上可能比较多。 注【无意义】
语法:
from 表1 [cross] join 表2 ; //可见交叉连接只是没有on条件而已。
cross这个词也可以省略,还可以使用inner这个词代替
表1:
表2:
交叉:
4.内连接:
from 表1 [inner] join 表2 on 表1.字段1=表2.字段2;
含义:找出(过滤)在交叉连接的结果表中的表1的字段1的值等于表2的字段2的值的那些行。
5.左[外]连接:
from 表1 left [outer] join 表2 on 连接条件。
说明:
1,这里,left是关键字。
2,连接条件跟内连接一样。
3,含义是:内连接的结果基础上,加上左边表中所有不符合连接条件的数据,相应放右边表的字段的位置就自动补为“null”值。
则左连接结果为:
6.右[外]连接:
右连接跟左连接恰恰相反:
形式:
from 表1 right [outer] join 表2 on 连接条件。
说明:
1,这里,right是关键字。
2,连接条件跟内连接一样。
3,含义是:在内连接的结果基础上,加上右边表中所有不符合连接条件的数据,相应本应放左边表的字段的位置就自动补为“null”值。
7.全[外]连接:
形式:
from 表1 full [outer] join 表2 on 连接条件;
说明:
1,含义:其实是左右连接的“并集”(消除重复项),即内连接的结果,加上左表中不满足条件的所有行(右边对应补null),再加上,右表中不满足条件的所有行(左边对应补null)。
2,mysql中其实不认识全[外]连接语法,即mysql这个软件本身不支持全连接的语法。
3,此概念在其他数据库有的存在,了解就可以。
8.子查询:
子查询就是把一个查询的结果当作另一个查询的条件。
使用in子查询:
in的基本语法形式为:
where 操作数 in (值1,值2, ....)
则in子查询就是:
where 操作数 in ( 列子查询 );
含义:
表示该操作数(字段值) 等于 该子查询的其中任意一个只,就算满足条件。
9.联合查询:
联合查询的关键字是: union
基本含义:
联合查询就是将两个select语句的查询结果“层叠”到一起成为一个“大结果”。
两个查询结果的能够进行“联合”的先觉条件是:结果字段数相等。
MySQL数据库——连接查询的更多相关文章
- MySql的连接查询
类似于oracle的连接查询,mysql连接查询也有左外连接.右外连接.内连接查询.但是,不同的是没有直接 的全外连接查询. 这里介绍MySql的连接查询: 这里已两张表为例:STUDENT 表 和 ...
- MySQL查询优化:连接查询排序limit
MySQL查询优化:连接查询排序limit(join.order by.limit语句) 2013-02-27 个评论 收藏 我要投稿 MySQL查询优化:连接查询排序 ...
- SQL Server数据库————连接查询和分组查询
SQL Server数据库————连接查询和分组查询 分组查询 select 列from <表名> where …… group by 列 注意:跟order by一样group ...
- Mysql数据库使用量查询及授权
Mysql数据库使用量查询及授权 使用量查询 查看实例下每个库的大小 select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2 ...
- MySQL数据库的查询缓冲机制
MySQL数据库的查询缓冲机制 2011-08-10 11:07 佚名 火魔网 字号:T | T 使用查询缓冲机制,可以极大地提高MySQL数据库查询的效率,节省查询所用的时间.那么查询缓冲机制是怎样 ...
- 【杂记】mysql 左右连接查询中的NULL的数据筛选问题,查询NULL设置默认值,DATE_FORMAT函数
MySQL左右连接查询中的NULL的数据筛选问题 xpression 为 Null,则 IsNull 将返回 True:否则 IsNull 将返回 False. 如果 expression 由多个变量 ...
- MySql数据库慢查询
一.什么是数据库慢查询? 数据库慢查询,就是查询时间超过了我们设定的时间的语句. 可以查看设定的时间: 默认的设定时间是10秒.也可以自己根据实际项目设定. set long_query_time=0 ...
- Python 使用PyMySql 库 连接MySql数据库时 查询中文遇到的乱码问题(实测可行) python 连接 MySql 中文乱码 pymysql库
最近所写的代码中需要用到python去连接MySql数据库,因为是用PyQt5来构建的GUI,原本打算使用PyQt5中的数据库连接方法,后来虽然能够正确连接上发现还是不能提交修改内容,最后在qq交流群 ...
- C# 连接MySQL数据库 ,查询条件中有中文时,查询不出结果
使用C#成功连接上MySql数据库后,但如果查询条件中有中文,查询结果就为空. String connetStr = "server=127.0.0.1;port=3306;user=roo ...
随机推荐
- 关于python爬取异步ajax数据的一些见解
我们在利用python进行爬取数据的时候,一定会遇到这样的情况,在浏览器中打开能开到所有数据,但是利用requests去爬取源码得到的却是没有数据的页面框架. 出现这样情况,是因为别人网页使用了aja ...
- [斯坦福大学2014机器学习教程笔记]第六章-决策界限(decision boundary)
这一节主要介绍的是决策界限(decision boundary)的概念,这个概念可以帮组我们更好地理解逻辑回归的假设函数在计算什么. 首先回忆一下上次写的公式. 现在让我们进一步了解这个假设函数在什么 ...
- static关键字有何魔法?竟让Spring Boot搞出那么多静态内部类
生命太短暂,不要去做一些根本没有人想要的东西.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习 ...
- OSCP Learning Notes - Post Exploitation(2)
Windows Post Exploitation Target Server: IE8-Win 7 VM 1. Download and upload the fgdump, PwDump7, wc ...
- C++算法 广搜
有一个同学推荐我写一下广搜,广搜在最短路(骗分)上确实也有突出贡献,普及组应该也会考到,我今天就给要考普及组的同学讲讲课,今天讲广搜. 广搜,把可以走到的地点存进队列,然后一个个走,所以他第一次走到一 ...
- 什么是viewstate,能否禁用?是否所用控件都可以禁用
viewstate用于在两次postback之间保持状态的一种机制禁用viewstate将不能在回发之间保存状态 当控件状态无关使用viewstate将造成性能问题时需要禁用viewstate Vie ...
- luoguP1036 选数 暴力AC题解
luoguP1036 选数 暴力AC题解(非正解) 俗话说得好:暴力出奇迹,打表拿省一. 对于一些暴力就能拿分的题,暴力就好啦QWQ 题目描述 输入格式 输出格式 输入输出样例 定义变量 我们令输 ...
- Java基础之Bridge method(桥接方法)
1.什么是桥接方法 桥接方法是 JDK 1.5 引入泛型后,为了使Java的泛型方法生成的字节码和 1.5 版本前的字节码相兼容,由编译器自动生成的方法. 判断方法 我们可以通过 Method.isB ...
- 为什么我推荐Nginx作为后端服务器代理
1. 前言 我们真实的服务器不应该直接暴露到公网上去,否则更加容易泄露服务器的信息,也更加容易受到攻击.一个比较"平民化"的方案是使用Nginx反向代理它.今天就来聊一聊使用Ngi ...
- Python Python Python 100个练手项目
1.淘宝模拟登录2.天猫商品数据爬虫3.爬取淘宝我已购买的宝贝数据4.每天不同时间段通过微信发消息提醒女友5.爬取5K分辨率超清唯美壁纸6.爬取豆瓣排行榜电影数据(含GUI界面版)7.多线程+代理池爬 ...