数据库-mysql数据连接
一:Mysql 连接的使用
在前几章节中,我们已经学会了如果在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。
本章节我们将向大家介绍如何使用 MySQL 的 JOIN 在两个或多个表中查询数据。
你可以在 SELECT, UPDATE 和 DELETE 语句中使用 Mysql 的 JOIN 来联合多表查询。
JOIN 按照功能大致分为如下三类:
- INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
- LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
- RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
- full join 全连接 两个表并集,mysql并没有直接支持,而是通过unicon实现
二:内连接
两个表的交集
- MariaDB [test2]> select * from a;
- +------+
- | name |
- +------+
- | 1 |
- | 2 |
- | 3 |
- | 4 |
- +------+
- 4 rows in set (0.00 sec)
- MariaDB [test2]> select * from b;
- +------+
- | name |
- +------+
- | 3 |
- | 4 |
- | 5 |
- | 6 |
- +------+
- 4 rows in set (0.00 sec)
- MariaDB [test2]> select * from a inner join b on a.name=b.name;
- +------+------+
- | name | name |
- +------+------+
- | 3 | 3 |
- | 4 | 4 |
- +------+------+
- 2 rows in set (0.00 sec)
- MariaDB [test2]> select * from a,b where a.name=b.name;
- +------+------+
- | name | name |
- +------+------+
- | 3 | 3 |
- | 4 | 4 |
- +------+------+
- 2 rows in set (0.00 sec)
三:LEFT JOIN
MySQL left join 与 join 有所不同。 MySQL LEFT JOIN 会读取左边数据表的全部数据,即便右边表无对应数据。
- MariaDB [test2]> select * from a left join b on a.name=b.name;
- +------+------+
- | name | name |
- +------+------+
- | 3 | 3 |
- | 4 | 4 |
- | 1 | NULL |
- | 2 | NULL |
- +------+------+
- 4 rows in set (0.00 sec)
四: RIGHT JOIN
MySQL RIGHT JOIN 会读取右边数据表的全部数据,即便左边边表无对应数据。
- MariaDB [test2]> select * from a right join b on a.name=b.name;
- +------+------+
- | name | name |
- +------+------+
- | 3 | 3 |
- | 4 | 4 |
- | NULL | 5 |
- | NULL | 6 |
- +------+------+
- 4 rows in set (0.00 sec)
五:full join
两个表的并集
- MariaDB [test2]> select * from a left join b on a.name =b.name union select * from a right join b on a.name =b.name;
- +------+------+
- | name | name |
- +------+------+
- | 3 | 3 |
- | 4 | 4 |
- | 1 | NULL |
- | 2 | NULL |
- | NULL | 5 |
- | NULL | 6 |
- +------+------+
- 6 rows in set (0.00 sec)
数据库-mysql数据连接的更多相关文章
- spring BasicDataSource 数据源配置 sqlserver数据库 oracle数据库 mysql数据jdbc配置
spring BasicDataSource 数据源配置 sqlserver数据库 oracle数据库 mysql数据jdbc配置 jdbc.properties 文件信息如下: ---------- ...
- 创建本地数据库mySQL并连接JDBC
转自: http://blog.csdn.net/wei_chong_chong/article/details/44830491 如何创建本地数据库MySQL并连接JDBC 转载 2015年04月0 ...
- 数据库-mysql数据操作
一:mysql 数据的插入 语法 以下为向MySQL数据表插入数据通用的 INSERT INTO SQL语法: INSERT INTO table_name ( field1, field2,...f ...
- JAVA与数据库MySQL相连接
JDBC(Java数据库连接体系结构): 是Java实现数据库访问的应用程序编程接口,主要功能是管理存放在数据库中的数据.通过接口对象,应用程序可以完成与数据库的连接,执行SQL语句,从数据库中获取结 ...
- Java学习笔记——JDBC之与数据库MySQL的连接以及增删改查等操作
必须的准备工作 一.MySQL的安装.可以参考博文: http://blog.csdn.net/jueblog/article/details/9499245 二.下载 jdbc 驱动.可以从在官网上 ...
- 第八篇 -- 对数据库mysql进行连接并压测
参考链接:https://blog.csdn.net/laofashi2015/article/details/81296929 工具:mysql-8.0.12-winx64,apache-jmete ...
- Python下Mysql数据连接池——单例
# coding:utf-8 import threading import pymysql from DBUtils.PooledDB import PooledDB from app.common ...
- mysql数据库-mysql数据定义语言DDL (Data Definition Language)归类(六)
0x01 创建数据库并指定字符集和排序规则 -- 三种实例写法 create database temptab2 character set utf8 collate utf8_general_ci; ...
- 第九篇 -- 对数据库mysql进行连接并压测(二)
上一节介绍了对mysql查询语句的压测,这一节来进一步的了解. 还是先把数据库的图放上来. 接下来打开Jmeter. 1. 回顾一下上一节学的查询语句 JDBC Request配置 结果 2. 条件查 ...
随机推荐
- BZOJ 2194 快速傅立叶变换之二 | FFT
BZOJ 2194 快速傅立叶变换之二 题意 给出两个长为\(n\)的数组\(a\)和\(b\),\(c_k = \sum_{i = k}^{n - 1} a[i] * b[i - k]\). 题解 ...
- 设置nginx日志滚动
需求:设置nginx每天凌晨12点轮转,系统版本为debian7,nginx版本为tengine2.2.0 1.修改logrotate主配置文件,打开压缩和以时间为后缀命名 # vim /etc/lo ...
- typescript数据类型
// 布尔类型 let isDone: boolean = false; // 数字类型 所有数字都是浮点数 number let decLiteral: number = 6; let hexLit ...
- Codeforces Round #552 (Div. 3) 题解
Codeforces Round #552 (Div. 3) 题目链接 A. Restoring Three Numbers 给出 \(a+b\),\(b+c\),\(a+c\) 以及 \(a+b+c ...
- winscp以命令行方式同步服务器数据到PC机磁盘上
目前服务器上每日会产生备份文件,需要使用winscp工具把备份同步到本地PC机硬盘上.平时都是图形界面用鼠标点击方式来同步的,效率低下,因此编写了winscp自动同步脚本,并加入到计划任务中定时自动运 ...
- 清空git默认的用户名和密码,
https://www.jianshu.com/p/a1908f55bef8 在家目录下找到.gitconfig git config --local --unset credential.helpe ...
- 并发库应用之四 & 线程锁Lock应用
Java5的线程并发库中,提供了相应的线程锁接口Lock来帮助我们同步处理.Lock比传统线程模型中的synchronized更加面向对象,锁本身也是一个对象,两个线程执行的代码要实现同步互斥效果,就 ...
- 用js获取客户端IP地址
<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script> <script type=& ...
- Spring知识总结
一.Spring简述 Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架,Spring致力于提供一种方法管理你的业务对象,Spring的主要目的是使JavaE ...
- 蓝桥杯 地宫寻宝 DFS 动态规划
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstdio> #include <cstdl ...