- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Les04_多表连接
具体内容
SQL 的标准:ANSI标准SQL的版本
SQL:92
SQL:1999是ANSI标准SQL的最新版本,正在制定更新的SQL版本(称为SQL:2003)。
一 多表查询
之前查询的数据都是一张表的,现在使用一张以上的表,就称为多表查询
1 多表连接查询
基本语法
SELECT {DISTINCT} *|列名1 别名1...
FROM 表名1 别名1,表名2 别名2,...
{WHERE 条件表达式}
{ORDER BY 排序字段1 ASC|DESC,...}
例:使用多表查询,同时查询emp 和 dept 表
SELECT * FROM emp,dept
以上的查询使用了两张表进行同时查询,
从结果上看,返回数据 56 条,但 emp 表14条,dept表4条
例:查询emp表的记录数
SELECT COUNT(*) FROM EMP;
例:查询 dept 表的记录数
SELECT COUNT(*) FROM dept;
56条记录 = emp表中的14条× dept表中的4条
在使用多表查询时会产品生笛卡尔积。表数据越多,笛卡尔积越大。
如果假设有5张表,每张表的数据有10000条,结果将为生10000的5次方条记录
所以开发中基本上不建议过多的使用
要想去掉笛卡尔积必须使用字段进行关联操作
如何关联?
在emp表中有 deptno 字段,而在dept表中也有 deptno 字段,而且发现emp表的deptno
的取值范围都在dept表的 deptno规定的范围内,所以两张表的deptno属于关联字段
即:emp中的deptno = dept中的deptno,关联字段
在多表查询中将关联字段加入 WHERE 语句,即可消除笛卡尔积,此时称为等值联接
语法如下:
SELECT table1.column, table2.column
FROM table1, table2
WHERE table1.column1 = table2.column2;
例: 修改之前的操作
SELECT * FROM EMP,DEPT
WHERE EMP.DEPTNO=DEPT.DEPTNO;
此时查询只有 14 条记录
但是,又出现了新问题,如果表名过长的话,写起来很麻烦,此时一般会为表起别名
即:
SELECT * FROM EMP e ,DEPT d
WHERE e.DEPTNO=d.DEPTNO;
注意:如果表有别名的话,那么在使用列名是只能用 别名.列名
使用多表查询时,最好指定别名
例:要求查询雇员的编号,姓名,部门编号,部门名称及部门位置
Select e.empno,e.ename,d.deptno,d.dname,d.loc
From emp e,dept d
Where e.deptno = d.deptno;
例:要求查询雇员的编号,姓名,部门编号,部门名称及部门位置要求部门位于“CHICAGO”
Select e.empno,e.ename,d.deptno,d.dname,d.loc
From emp e,dept d
Where e.deptno = d.deptno AND d.loc=’CHICAGO’;
可用 “表名.列名” 指定要查询那张表的那个列
2 自我联接
自连接是数据库中经常要用的连接方式,使用自连接可以将自身表的一个镜像当作另一个表来对待,从而能够得到一些特殊的数据。
例:要求查询出每个雇员的姓名,工作,雇员的直接上级领导的姓名
分析:雇员的领导也是雇员
SELECT w.ename,w.job,m.ename
FROM emp w,emp m
WHERE w.mgr=m.empno
ORDER BY w.empno;
例:要求扩展功能,将雇员所在的部门名称同是列出
分析:部门名称在 dept 表中
SELECT E.EMPNO,E.NAME,D.DNAME
FROM EMP E,DEPT D
WHERE E.DEPTNO = D.DEPTNO
3 非等值联接(NONEQUIJOIN)
NONEQUIJOIN联接两个或多个表时,在条件中不使用等号(=),而是用如,,=,=,!=,BETWEEN...AND或IN等比较运算符
例:查询员工姓名,工资及 工资 等级
-- SALGRADE 工资表
--DESC SALGRADE;
--SELECT * FROM SALGRADE;
-- 显示员工的编号,
您可能关注的文档
- Creo软件使用必修教程.doc
- DHC卸妆油鉴别真假 附真假对比图.doc
- D10-2--曲面、地形图及标高投影在工程中应用.ppt
- chapter4工业机器人.ppt
- DISC推荐案九行人格.pdf
- d11z 旅游-11.ppt
- DSG SnapAssure优劣势对比分析.doc
- DP级海洋供应船安全作业指南.pdf
- dsp --数字信号处理芯片的发展和应用.doc
- dspFIR滤波器程序设计.doc
- 基于人工智能教育平台的移动应用开发,探讨跨平台兼容性影响因素及优化策略教学研究课题报告.docx
- 高中生物实验:城市热岛效应对城市生态系统服务功能的影响机制教学研究课题报告.docx
- 信息技术行业信息安全法律法规研究及政策建议教学研究课题报告.docx
- 人工智能视角下区域教育评价改革:利益相关者互动与政策支持研究教学研究课题报告.docx
- 6 《垃圾填埋场渗滤液处理与土地资源化利用研究》教学研究课题报告.docx
- 小学音乐与美术教师跨学科协作模式构建:人工智能技术助力教学创新教学研究课题报告.docx
- 《航空航天3D打印技术对航空器装配工艺的创新与效率提升》教学研究课题报告.docx
- 教育扶贫精准化策略研究:人工智能技术在区域教育中的应用与创新教学研究课题报告.docx
- 《区块链技术在电子政务电子档案管理中的数据完整性保障与优化》教学研究课题报告.docx
- 《中医护理情志疗法对癌症患者心理状态和生活质量提升的长期追踪研究》教学研究课题报告.docx
最近下载
- 工程项目成本分析表(房建).xls VIP
- 道路交通标志和标线(GB5768-2009).docx VIP
- 2024年全国高级配电线路工技能考试题库及答案.docx VIP
- 颗粒级配曲线不均匀系数计算.xls VIP
- 建筑工程CAD网络课程项目申报书--.docx VIP
- 《我与地坛(节选)》同步练习 统编版高中语文必修上册.docx VIP
- 道路交通标志和标线+第1部分:总则.docx VIP
- 2025年秋季学期-2026年春季学期中小学校(幼儿园)大宗食材(肉蛋)采购及配送项目方案投标文件(技术方案).doc VIP
- 耐高压PICC置管课件.ppt VIP
- 功能性子宫出血病历模板.pdf VIP
文档评论(0)