mysql与java连接查询_【java】MySQL数据库之连接查询
连接查询
首先来认识一个叫笛卡尔积 (cartesian product) 的东东,也可以叫直积。
假设我们有一个集合 A = {a, b}, 还有一个集合B = {0, 1, 2} ,那么这两个两集合的笛卡积为:{{a, 0}, {a, 1}, {a, 2}, {b, 0}, {b, 1}, {b,2}}。
就是两个集合中的元素可能存在的所有组合方式而形成的新的集合!
我是这么理解的,太具体的解释,欢迎伙伴们去百度哈!
现在我们用代码来测试演示一下:
create table one(
one_id int,
one_date char(1),
public_field int
);
insert into one values(1, 'a', 10),(2, 'b', 20),(3, 'c', 30);
create table two(
two_id int,
two_date char(1) not null default 't',
public_field int
);
insert into two values(2, 'B', 20),(3, 'C', 30),(4, 'D', 40);
select one.*, two.* from one, two;
这个就是表one 和 表 two 的所有元素可能出现的组合就是笛卡尔积!
内连接查询
三种语法:
select * from tableA , tableB where tabA.column=tabB.column;
select * from tableA inner join tableB on tabA.column=tabB.column;
select * from tableA cross join tableB on tabA.column=tabB.column;
内连接
只有在连接的表内数据都存在的情况下,才会做连接。内连接是把二个表连接成一个结果集,在这个结果集中仅包含那些满足条件的记录行。
select one.*,two.* from one , two where one.one_id=two.two_id;
select one.*,two.* from one inner join two on one.one_id=two.two_id;
select one.*,two.* from one cross join two on one.one_id=two.two_id;
这三种语法都可以实现内连接查询
外连接查询
如果存在不能匹配的数据,也会进行连接,不过此时 mysql 会帮我们虚拟一条不存在的记录,字段值都是为 null,帮我们完成整个连接记录。
分为:
左外连接 : left join on, left outer join on;
右外连接 :right join on, right outer join on;
语法:
select * from tableA left join tableB on tabA.column=tabB.column;
select * from tableA right join tableB on tabA.column=tabB.column;
区别在于:
左外连接 :
返回左表的所有数据,并且在右表中不能匹配的列值,其字段用空值null表示。
select one.*,two.* from one left join two on one.one_id=two.two_id;
left join – where null
返回和右表不匹配的所有数据行。
select one.*,two.* from one left join two on one.one_id=two.two_id where two.two_id is null;
right join :
右外连接 : 返回右表的所有数据,并且在左表中不能匹配的列值,其字段用空值表示。
select one.*,two.* from one right join two on one.one_id=two.two_id;
right join – where null
返回和右表不匹配的所有数据行。
select one.*,two.* from one right join two on one.one_id=two.two_id where one.one_id is null;
我们来看一下这个外链接在实际项目中的是如何使用的
select a.name,a.province,a.city,a.phone,b.employee_name,b.job_title from office a inner join employee b on a.office_id=b.office_id;
select count(b.employee_id),a.name from office a inner join employee b on a.office_id=b.office_id group by a.name;
select count(employee_id),office_id from employee group by office_id;
这样一对比是不是就看出我们的连接查询的用处了呢?
好的今天就分享到这里了
宝宝们回去要记得练习一下呦!
爱你们么么哒
!
mysql与java连接查询_【java】MySQL数据库之连接查询相关推荐
- mysql左连接含义_学习笔记-数据库左连接,右连接意义及区别
1.左连接,右连接等的意义及区别: 1)笛卡尔积:CROSS JOIN 要理解各种JOIN首先要理解笛卡尔积.笛卡尔积就是将A表的每一条记录与B表的每一条记录强行拼在一起. 所以,如果A表有n条记录, ...
- MySql实验嵌套查询_实验五 数据库的嵌套查询实验
实验五数据库的嵌套查询实验 本实验需要2学时. 一.实验目的 使学生进一步掌握SQL Server或oracle的企业管理器的使用方法,加深SQL 语言的嵌套查询语句的理解. 二.实验内容 在SQL ...
- mysql教程详解之多表联合查询_详解数据库多表连接查询的实现方法
详解数据库多表连接查询的实现方法 通过连接运算符可以实现多个表查询.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 在关系数据库管理系统中,表建立时各数据之间的关系不必 ...
- mysql的join语句使用_在MySQL中使用JOIN语句进行连接操作的详细教程
到目前,我们已经学习了从一个表中获取数据.这是简单的需要,但在大多数现实MySQL的使用,经常需要将数据从多个表中的一个单一的查询. 可以使用多个表中的单一SQL查询.在MySQL中联接(join)行 ...
- B+树 范围查询_为什么 MySQL 使用 B+ 树,而不是 B 树或者 Hash?
Java技术栈 www.javastack.cn 关注优质文章 为什么 MySQL 使用 B+ 树是面试中经常会出现的问题,很多人对于这个问题可能都有一些自己的理解,但是多数的回答都不够完整和准确.大 ...
- mysql怎么子查询_在mysql中如何进行子查询?
在mysql中,子查询是指将一个查询语句嵌套在另一个查询语句中,可以在SELECT.UPDATE和 DELETE语句中配合WHERE子句进行实现,WHERE子句中语法格式为"WHERE (另 ...
- mysql pt工具 加索引_[转]MySQL中如何为连接添加索引
SELECT * FROM tblA, tblB, tblC WHERE tblA.col1 = tblB.col1 AND tblA.col2 = tblC.col1; explain的结果如下: ...
- java es 如何查询_使用elasticsearch的java-api进行查询
1.前言 elsaticsearch版本是6.8.3,使用的java-api是基于Java High Level REST Client.java 2.数据 3. InitClient 用来初始化客 ...
- MySQL数据库test连接语句_【MySQL数据库开发之二】MySQL 基础语句的书写与操作!...
本篇Himi简单介绍一些MySQL数据库的基础操作: 注:mysql 语句对大小写不敏感,语句以分号";"标识语句结束: 1. 首先使用两个简单的查询语句: 查询当前版本:se ...
- C MySql封装类 高性能连接池_在vc中通过连接池操作mysql(api方式),附c++访问mysql的封装类...
在有大量节点访问的数据库设计中,经常要使用到连接池来管理所有的连接. 一般方法是:建立两个连接句柄队列,空闲的等待使用的队列和正在使用的队列. 当要查询时先从空闲队列中获取一个句柄,插入到正在使用的队 ...
最新文章
- 秦刚:积累财富最简单的一种模式:打造一项高收入技能
- 口语学习Day6:今天聊聊国内安全还是国外安全?
- linux系统在硬盘上安装程序,在硬盘中安装Linux操作系统最简单的方法
- 【数据结构-查找】2.字符串(逐步演绎过程,超级详解KMP算法)
- 神策数据加入中国大数据产业生态联盟,神策营销云及融媒解决方案获联盟认证
- 【l转】VS2015下解决:无法解析的外部符号 __imp___vsnprintf 及__iob_func
- docsify——一个神奇的文档站点生成器
- 在eclipse中,怎么改变字体大小?
- 再见Postman,这款API神器更好用!
- 太原师范学院计算机科学与技术宿舍,太原师范学院宿舍条件,宿舍环境图片(10篇)...
- 分治-寻找第k小的数
- Null + Anything = null, 好奇怪的设定啊
- 5v 3.3v电平转换电路_3.3V与5V系统电平兼容的方法探究
- Android 如何反编译apk查看源码
- python语法基础汇总
- main函数写法总结
- python 读取zip包中的数据
- uniapp - APP云打包、蒲公英平台发布APP的步骤
- Google GMS认证测试几个名词
- office打不开文件,显示需要修复文件,点击修复也没用的解决办法