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 ...
随机推荐
- sourceinsight - imsoft.cnblogs
显示空格的问题,options->document options->visible space 前面的对勾去掉就好了 sourceinsight中文显示乱码问题彻底解决办法:http:/ ...
- iPhone/iPad被停用怎么办 3招轻松解锁
家中小孩玩电脑游戏,自己拿了iPad,随便输入密码,结果造成平板电脑无法使用,相信这是许多家长都将面对或是早已发生的事情.本文整理当iPhone或是iPad被停用时的处理方法. iPhone被停用 为 ...
- C语言面试题3
编程题 1.读文件file1.txt的内容(例如): 123456 输出到file2.txt: 563412 #include <stdio.h> #include <stdlib. ...
- 前端可视化建模技术概览,包括:GoJS
我推荐使用的: 库 网址 备注 GoJS https://gojs.net/latest/samples/flowchart.html 推荐使用 相关文章: 前端可视化建模技术概览:http://le ...
- mysql 存储过程知识点
一.创建存储过程 create procedure sp_name() begin ......... end 二.调用存储过程 1.基本语法:call sp_name(): 注意:存储过程名称后面必 ...
- 我的主机是win 7 虚拟机是vmware,solaris10连接主机
进入主机Control Panel—Administrative Tool—Services,打开服务Vmware DHCP Servise和Vmware NAT Service,启动后虚拟机上网正常 ...
- Linux 下V4l2摄像头采集图片,实现yuyv转RGB,RGB转BMP,RGB伸缩,jpeglib 库实现压缩RGB到内存中,JPEG经UDP发送功(转)
./configure CC=arm-linux-gnueabihf-gcc LD=arm-linux-gnueabihf-ld --host=arm-linux --prefix=/usr/loca ...
- 简单的爬虫例子——爬取豆瓣Top250的电影的排名、名字、评分、评论数
爬取思路: url从网页上把代码搞下来bytes decode ---> utf-8 网页内容就是我的待匹配的字符串ret = re.findall(正则,待匹配的字符串), ret 是所有匹配 ...
- C#调用Python脚本的简单示例
C#调用Python脚本的简单示例 分类:Python (2311) (0) 举报 收藏 IronPython是一种在 .NET及 Mono上的 Python实现,由微软的 Jim Huguni ...
- VS2010安装选项中有个“图标库”
位置 :\Program Files\Microsoft Visual Studio 10.0\Common7\VS2010ImageLibrary\2052\VS2010ImageLibrary.z ...