mysql各种连接总结
术语解释: 1、内连接: 只连接匹配的行 2、左外连接: 包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行 3、右外连接: 包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边表中全部匹配的行 4、全外连接: 包含左、右两个表的全部行,不管另外一边的表中是否存在与它们匹配的行。 5、交叉连接: 笛卡尔积
例子:
CREATE DATABASE test_link DEFAULT CHARACTER SET 'utf8'; use test_link; CREATE TABLE A ( id ) NOT NULL, name ) NOT NULL, PRIMARY KEY (id) )ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE B ( id ) NOT NULL, addr ) NOT NULL, a_id ) not null, PRIMARY KEY (id) )ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into A(id, name) values (', 'zhang'), (', 'li'), (', 'wang'); insert into B(id, addr, a_id) values ('), ('), ('); mysql> select * from A; +----+-------+ | id | name | +----+-------+ | zhang | | li | | wang | +----+-------+ mysql> select * from B; +----+----------+------+ | id | addr | a_id | +----+----------+------+ | | | +----+----------+------+ 左右连接 mysql> select A.name, B.addr from A left join B on A.id = B.a_id; +-------+----------+ | name | addr | +-------+----------+ | zhang | beijing | | wang | shanghai | | li | NULL | +-------+----------+ mysql> select A.name, B.addr from A right join B on A.id = B.a_id; +-------+----------+ | name | addr | +-------+----------+ | zhang | beijing | | wang | shanghai | | NULL | nanjing | +-------+----------+ 内连接inner join mysql> select A.name, B.addr from A inner join B on A.id = B.a_id; +-------+----------+ | name | addr | +-------+----------+ | zhang | beijing | | wang | shanghai | +-------+----------+ 自然连接 mysql> select A.name, B.addr from A, B where A.id = B.a_id; +-------+----------+ | name | addr | +-------+----------+ | zhang | beijing | | wang | shanghai | +-------+----------+ mysql> select * from A, B; +----+-------+----+----------+------+ | id | name | id | addr | a_id | +----+-------+----+----------+------+ | | | | | | | | | +----+-------+----+----------+------+ 全连接 mysql> select A.name, B.addr from A full join B; ERROR mysql> select * from A full outer join B; ERROR mysql> select * from A full join B; +----+-------+----+----------+------+ | id | name | id | addr | a_id | +----+-------+----+----------+------+ | | | | | | | | | +----+-------+----+----------+------+ 笛卡尔积连接 mysql> select * from A cross join B; +----+-------+----+----------+------+ | id | name | id | addr | a_id | +----+-------+----+----------+------+ | | | | | | | | | +----+-------+----+----------+------+
mysql各种连接总结的更多相关文章
- mysql交互式连接&非交互式连接
交互式操作:通俗的说,就是你在你的本机上打开mysql的客户端,就是那个黑窗口,在黑窗口下进行各种sql操作,当然走的肯定是tcp协议. 非交互式操作:就是你在你的项目中进行程序调用.比如一边是tom ...
- Mysql的连接状态
对应mysql的连接,任何时刻都有一个状态.表示mysql当前正在做什么. command里面的状态: sleep:线程正在等待客户发送新的请求. query:正在执行查询或者正在将结果发送客户端 这 ...
- mysql远程连接命令
mysql远程连接命令 一.MySQL 连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123” 之间不能有空格) C:\>mysql -h localhost -u ...
- Navicat for mysql 远程连接 mySql数据库10061、1045错误
原文地址:http://www.111cn.net/database/mysql/46377.htm 有朋友可能会碰到使用Navicat for mysql 远程连接 mySql数据库会提示10061 ...
- MySql的连接查询
类似于oracle的连接查询,mysql连接查询也有左外连接.右外连接.内连接查询.但是,不同的是没有直接 的全外连接查询. 这里介绍MySql的连接查询: 这里已两张表为例:STUDENT 表 和 ...
- 服务器保持与Mysql的连接
服务器程序经常要访问数据库,并且服务器程序是长时间保持运行的,mysql有一个特点,当连接上数据库后不做任何操作,默认8小时候会自动关闭休 眠的连接!一般情况下很难预料什么时候程序会执行数据库操作,如 ...
- PAIP.MYSQL SLEEP 连接太多解决
PAIP.MYSQL SLEEP 连接太多解决 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.n ...
- mysql中连接失败2003错误解决办法
在使用mysql数据库,新建连接时,会报2003-Can't connect to server on 'localhost'(10038)错误,原因主要是MYSQL服务没有启动起来,但是进入:计算机 ...
- mysql 远程连接速度慢的解决方案
PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的MYSQL开启了DNS的反向解析,在MY.INI(WINDOWS ...
- mysql 远程连接
4.现在如果用你电脑上的终端进行MySQL连接时,有可能出现如下错误: MySQL远程连接ERROR 2003 (HY000):Can't connect to MySQL server on'XXX ...
随机推荐
- Springboot整合pagehelper分页
一.在pom中添加依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId&g ...
- php重新整理数组索引
语法 array_merge(array1,array2,array3...) 参数 描述 array1 必需.输入的第一个数组. array2 必需.输入的第二个数组. array3 可选.可指定的 ...
- ThinkPHP 的一个神秘版本 ThinkPHP 1.2
ThinkPHP 的一个神秘版本 ThinkPHP 1.2 询问过 ThinkPHP 官网的小伙伴都知道,偶尔 ThinkPHP 故障时会出现 ThinkPHP 1.2(下次看到就截图下来). 但是我 ...
- FastAdmin 使用 Git 更新的新用法 (2019-02-28)
FastAdmin 使用 Git 更新的新用法 2019-02-28 新流程 增加一个 fastadmin 的远程仓库. 在项目的开发或主分支. 如果有代码更新将代码提交 commit. git pu ...
- CAM 查看里先选哪些层才能方便查看
CAM 检查 Gerber 时选 Layer 时有先后次序,才以看清楚是否有冲突. 比如检查 TOP 层时顺序应该是 MT ST L1 BOT 层检查顺序 MB SB L2/L4
- nginx 知识点
全部指令目录(淘宝翻译):http://tengine.taobao.org/nginx_docs/cn/docs/dirindex.html nginx 命令语法: nginx -s [signal ...
- Django 博客项目02 Form验证+ 上传头像(预览)+Ajax用户注册
头像预览 $("#avatar_file").change(function(){ // 获取上传的文件对象 var file=$(this)[0].files[0]; // 读取 ...
- java日期比较例子等...
数据库中employ表,入职日期,今天日期: 测试代码: package javademo; import java.sql.Connection; import java.sql.DriverMan ...
- 2018-2019 20165226 网络对抗 Exp1 PC平台逆向破解
2018-2019 20165226 网络对抗 Exp1 PC平台逆向破解 目录 一.逆向及Bof基础实践说明 二.直接修改程序机器指令,改变程序执行流程 三.通过构造输入参数,造成BOF攻击,改变程 ...
- 学习笔记之Cloud computing
Cloud computing - Wikipedia https://en.wikipedia.org/wiki/Cloud_computing