Java数据库篇6——多表查询

1、笛卡尔积

交叉连接查询

设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}

2、 内连接查询

2.1、隐式内连接

SELECT 字段名 FROM 左表, 右表 WHERE 连接条件;

多表查询可以起别名,方便查询

2.2、显示内连接

SELECT 字段名 FROM 左表 [INNER] JOIN 右表 ON 条件

3、外连接查询

3.1、左连接

以左表为基准, 匹配右边表中的数据,如果匹配的上,就展示匹配到的数据 如果匹配不到, 左表中的数据正常展示, 右边的展示为null

SELECT 字段名 FROM 左表 LEFT [OUTER] JOIN 右表 ON 条件

3.2、右连接

以右表为基准,匹配左边表中的数据,如果能匹配到,展示匹配到的数据 如果匹配不到,右表中的数据正常展示, 左边展示为null

SELECT 字段名 FROM 左表 RIGHT [OUTER ]JOIN 右表 ON 条件

4、子查询

一条select 查询语句的结果, 作为另一条 select 语句的一部分

  • 子查询必须放在小括号中
  • 子查询一般作为父查询的查询条件使用

4.1、where型子查询

将子查询的结果, 作为父查询的比较条件

SELECT 查询字段 FROM 表 WHERE 字段=(子查询);
SELECT * FROM products WHERE price = (SELECT MAX(price) FROM products);

4.2、from型子查询

将子查询的结果, 作为 一张表,提供给父层查询使用

SELECT 查询字段 FROM (子查询)表别名 WHERE 条件;

4.3、exists型 子查询

子查询的结果是单列多行, 类似一个数组, 父层查询使用 IN 函数 ,包含子查 询的结果

SELECT 查询字段 FROM 表 WHERE 字段 IN (子查询);

Java数据库篇6——多表查询相关推荐

  1. Java数据库篇4——表的约束

    Java数据库篇4--表的约束 1.非空约束 字段不允许为空 #创建表的时候添加 Create table 表名(列1 数据类型 not null,列2 数据类型,列3 数据类型 ); #创建表以后添 ...

  2. Java数据库篇8——索引、视图、存储过程、触发器

    Java数据库篇8--索引.视图.存储过程.触发器 1.索引 1.1.索引是什么 在数据库表中,对字段建立索引可以大大提高查询速度.通过善用这些索引,可以令MySQL的查询和 运行更加高效 如果合理的 ...

  3. Java数据库篇7——数据库设计

    Java数据库篇7--数据库设计 1.第一范式 列不可再分 每一列属性都是不可再分的属性值,确保每一列的原子性 两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据 2.第二范式 属性 ...

  4. Java数据库篇3——SQL

    Java数据库篇3--SQL 结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库 查询和程序设计语言,用于存取数据以及查询.更新和管 ...

  5. Mybatis(第二篇:联表查询)

    Mybatis(第二篇:联表查询) 目录 Mybatis(第二篇:联表查询) 一.前期 项目的搭建 1.数据库 2.IDEA项目架构搭建 2.1 pom.xml 2.2 domain包 2.2.1 D ...

  6. Java数据库篇9——备份与还原、忘记密码

    Java数据库篇9--备份与还原.忘记密码 1.备份 备份的应用场景 在服务器进行数据传输.数据存储和数据交换,就有可能产生数据故障.比如发生 意外停机或存储介质损坏. 这时,如果没有采取数据备份和数 ...

  7. Java数据库篇5——事务

    Java数据库篇5--事务 1.什么是事务 事务是一个整体,由一条或者多条SQL 语句组成,这些SQL语句要么都执行成功,要么都执行失败, 只要有 一条SQL出现异常,整个操作就会回滚,整个业务执行失 ...

  8. Java数据库篇1——数据库配置

    Java数据库篇1--数据库配置 1.数据库 数据库(DataBase) 就是存储和管理数据的仓库 本质是一个文件系统, 还是以文件的方式,将数据保存在电脑上 2.数据库的优点 存储方式 优点 缺点 ...

  9. Java数据库篇2——数据库基本操作

    Java数据库篇2--数据库基本操作 1.启动.停止.服务 net start mysql net stop mysql 2.登入登出 本地 Mysql -u用户名 -p密码Mysql -u用户名 - ...

最新文章

  1. LINQ篇:ASP.NET using LINQ(Part One) Scott大师的产物
  2. Jquery 常用方法经典总结
  3. (五)LESS 规范
  4. ASP.NET Core Filter如何支持依赖注入
  5. 传感器系列之4.3流量传感器
  6. hashmap怎么取值_HashMap?面试?我是谁?我在哪
  7. ehcache springboot_Spring Boot 入门示例合集(附源代码)
  8. SQL 宝典(本人总结供学习使用)
  9. opencv怎么安装?opencv下载安装教程
  10. 数据安全--安全网关
  11. c# 非阻塞算法_c# – 了解非阻塞线程同步和Thread.MemoryBarrier
  12. java开发常用在线工具整理
  13. 四性检测功能在档案系统中的实现
  14. SPSS 进行两因素重复测量方差分析(Two-way repeated-measures ANOVA)详细操作步骤 (上)
  15. 这知道这个错误是咋回事啊?
  16. 专访智齿科技吴立楠:智能客服行业发展的三个趋势
  17. restTemplate接收image/jpeg格式
  18. 数据库expecting ''', found 'EOF'异常——原载于我的百度空间
  19. java jsp使用flash播放mp4,(jsp/html)网页上嵌入播放器(常用播放器代码整理)
  20. 现有论文和作者两个实体,论文实体的属性包括题目、期刊名称、年份、期刊号;作者实体的属性包括姓名、单位、地址;一篇论文可以有多个作者,且每一位作者写过多篇论文,在每一篇论文中有作者的顺序号。请完成以下操

热门文章

  1. [转载] 【零基础学爬虫】python中的yield详解
  2. php脚本开头注释_PHP文件注释标记及规范小结
  3. 什么为java运行时的环境_什么是JRE?Java运行时环境简介(一)
  4. js 数组添加n次相同元素_数组中两次出现相同元素之间的最大距离
  5. c# uri.host_C#| Uri.EscapeUriString()方法与示例
  6. Python日历模块| weekheader()方法与示例
  7. 英语笔记:词组句子:0712
  8. 内联命名空间(inline namespace)
  9. mysql数据存储和函数_MySQL数据库——存储和函数
  10. python 共享文件夹 密码_用不同的用户名和密码登录网络上的共享文件夹