推广 热搜: 公司  快速  上海  中国  未来    企业  政策  教师  系统 

java数据库多表查询

   日期:2024-11-19     作者:xinet    caijiyuan   评论:0    移动:http://dfvalve.xrbh.cn/mobile/news/10385.html
核心提示:多表查询有如下几种:合并结果集;UNIOn 、 UNIOn ALL 连接查询内连接 [INNER] JOIN ON 外连接 OUTER JOIN ON左外连接

多表查询有如下几种:

java数据库多表查询

  1. 合并结果集;UNIOn 、  UNIOn ALL
  2. 连接查询
  • 内连接  [INNER] JOIN  ON
  • 外连接  OUTER JOIN ON
  • 左外连接 LEFT [OUTER] JOIN
  • 右外连接 RIGHT [OUTER] JOIN
  • 全外连接(MySQL不支持)FULL JOIN
  • 自然连接  NATURAL JOIN
  1. 子查询

1 合并结果集

  1. 作用:合并结果集就是把两个select语句的查询结果合并到一起!
  2. 合并结果集有两种方式
  3.   UNIOn:去除重复记录,例如:SELECT * FROM t1 UNIOn SELECt * FROM t2;
  4. UNIOn ALL:不去除重复记录,例如:SELECt * FROM t1 UNIOn ALL SELECt * FROM t2。

 java数据库多表查询

 java数据库多表查询

 

  1. 要求:被合并的两个结果:列数、列类型必须相同。

2 连接查询 (非常重要)

连接查询就是求出多个表的乘积,例如t1连接t2,那么查询出的结果就是t1*t2。

java数据库多表查询

 

连接查询会产生笛卡尔积,假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}。可以扩展到多个集合的情况。

那么多表查询产生这样的结果并不是我们想要的,那么怎么去除重复的,不想要的记录呢,当然是通过条件过滤。通常要查询的多个表之间都存在关联关系,那么就通过关联关系去除笛卡尔积。

你能想像到emp和dept表连接查询的结果么?emp一共14行记录,dept表一共4行记录,那么连接后查询出的结果是56行记录。

也就你只是想在查询emp表的同时,把每个员工的所在部门信息显示出来,那么就需要使用主外键来去除无用信息了。

java数据库多表查询

 

java数据库多表查询

 

 

  使用主外键关系做为条件来去除无用信息

SELECt * FROM emp,dept WHERe emp.deptno=dept.deptno ;

java数据库多表查询

 

上面查询结果会把两张表的所有列都查询出来,也许你不需要那么多列,这时就可以指定要查询的列了。

SELECt emp.ename,emp.sal,emp.comm,dept.dname

FROM emp,dept

WHERe emp.deptno=dept.deptno;

java数据库多表查询

 

本文地址:http://dfvalve.xrbh.cn/news/10385.html    迅博思语资讯 http://dfvalve.xrbh.cn/ , 查看更多
 
标签: 数据库
 
更多>同类行业资讯
0相关评论

新闻列表
企业新闻
推荐企业新闻
推荐图文
推荐行业资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号