首页 数据库 mysql教程 Oracle数据库之SQL连接查询

Oracle数据库之SQL连接查询

Jun 07, 2016 pm 05:28 PM
sql查询

现实中有这么一种需求,有时候我们需要查询的数据是在多个表中的,那么如何从多个表中查询数据呢?这就需要通过表的连接来实现查询

前言

现实中有这么一种需求,有时候我们需要查询的数据是在多个表中的,那么如何从多个表中查询数据呢?这就需要通过表的连接来实现查询了。

笛卡尔积

在定义连接之前我们需要简单的了解一下笛卡尔积,笔者不会纠结与其定义,只是看看其实际效果

其实笛卡尔积就是没有连接条件或者连接条件无效的连接,例如:

select *from emp ,dept;--其结果倾向于一个巨大的记录数,无实际意义

上面可以看出笛卡尔积得出的是一个巨大的无意义的记录集合,我们可以通过在where子句中使用有效的连接来避免这种情况,使之具有实际意义。

连接定义

就是在笛卡尔积的基础上使用连接条件,例如根据两个表的相同列进行连接。若果要进行n个表的连接那么就的添加n-1个连接条件。例如:

select *from emp ,dept where emp.deptno = dept.deptno;

连接类型

连接主要有两种类型等值连接、非等值连接.

还包括一些其他的连接方式:多连接、自连接、 定置运算符

等值连接

上面已经使用过了,即是表连接的where条件是一个表的列等于另一个表的列,通常情况下是主键和外键的判等连接。

select *from emp ,dept where emp.deptno = dept.deptno;

Tips:因为deptno在两个表中都存在,所以要使用表.字段的形式,否则Oracle认为其歧义

等值连接中同样还可以添加约束条件

select *from emp ,dept where emp.deptno = dept.deptno and emp.ename ='CLARK';

--结果只取一条记录

同样可以定义标的别名,不过需要注意的是定义了别名之后,,必须通过别名访问字段,不能通过表明来访问了

select *from emp e ,dept d where e.deptno = d.deptno and e.ename ='CLARK';

非等值连接

通过观察scott用户下的emp表和salgrade表,可以知道的是他们之间没有直接的对应项,而是

emp的sal列的值在salgrade表中的LOSAL和HISAL之间,他们不是等值连接。

select * from emp e,salgrade s where e.sal between s.losal and s.hisal;

linux

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

美团面试题:慢SQL有遇到过吗?是怎么解决的? 美团面试题:慢SQL有遇到过吗?是怎么解决的? Aug 24, 2023 pm 03:41 PM

MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录MySQL中查询时间超过(大于)设置阈值(long_query_time)的语句,记录到慢查询日志中。

PHP和PDO: 如何执行复杂的SQL查询语句 PHP和PDO: 如何执行复杂的SQL查询语句 Jul 28, 2023 pm 03:43 PM

PHP和PDO:如何执行复杂的SQL查询语句在处理数据库操作时,PHP提供了一种强大的扩展库PDO(PHPDataObjects),用于简化与数据库的交互。PDO支持多种数据库,比如MySQL、SQLite等,同时也提供了丰富的功能和方法,方便开发人员进行各种数据库操作。本文将介绍如何使用PDO执行复杂的SQL查询语句,并附上相应的代码示例。连接数据库

PHP编程中有哪些常见的表格操作? PHP编程中有哪些常见的表格操作? Jun 12, 2023 am 09:46 AM

在Web开发中,表格是最基本也是最常用的一个元素,而PHP是一种流行的服务器端编程语言,在表格操作中有许多常见的技巧和方法。本文将介绍PHP编程中常见的表格操作。显示数据表格在PHP中,可以使用HTML中的表格标签来显示数据表格,值得注意的是,表格必须在PHP脚本中生成。以下是基本的HTML表格标签示例:

如何在PHP开发中优化SQL查询语句和索引使用? 如何在PHP开发中优化SQL查询语句和索引使用? Nov 02, 2023 pm 12:12 PM

如何在PHP开发中优化SQL查询语句和索引使用?在PHP开发中,数据库查询是非常常见的操作。然而,当数据量增大时,查询性能可能受到影响,导致应用程序变慢。为了提高查询性能,我们需要优化SQL查询语句和索引的使用。本文将介绍一些优化技巧和最佳实践,以帮助您在PHP开发中提高SQL查询性能。一、使用正确的索引:索引是数据库中提高查询性能的重要组成部分。在设计数据

为什么我的Go程序在执行SQL查询时出错? 为什么我的Go程序在执行SQL查询时出错? Jun 09, 2023 pm 06:10 PM

在Go语言编程中,使用SQL查询是常见的任务。然而,有时候在执行SQL查询时会出现错误,导致程序无法正确执行。为了解决这些错误,我们需要深入了解SQL查询和Go语言的交互方式。下面是一些可能出现的错误和对应的解决方法。缺少数据库驱动在Go语言中,您需要使用特定的数据库驱动程序来连接和操作数据库。如果您尝试执行数据库查询,而未正确安装和配置该数据库驱动程序

PHP查询语句使用示例 PHP查询语句使用示例 Mar 23, 2024 am 11:27 AM

PHP是一种功能强大的服务器端脚本语言,被广泛应用于Web开发中。在Web开发中,我们常常需要与数据库进行交互,执行查询语句来获取数据。本文将为您介绍PHP中如何编写查询语句以及使用示例。1.连接数据库在使用PHP进行数据库查询之前,首先需要建立与数据库的连接。一般情况下,我们会使用MySQL数据库作为示例,连接数据库的代码如下:$servername=

PHP语言开发中如何处理SQL查询错误? PHP语言开发中如何处理SQL查询错误? Jun 09, 2023 pm 06:13 PM

PHP语言是一种常用的服务器端脚本语言,用于网站开发等领域。在PHP语言开发中,SQL查询是常见的操作,但由于各种原因,SQL查询可能会出现错误。因此,开发人员需要在代码中处理这些错误,以确保应用程序的稳定性和正确性。一般来说,在PHP语言中处理SQL查询错误有以下几种常见的方式:1.使用try/catch块处理异常在PHP语言中,可以使用try/catch

PHP编程中的多数SQL查询效率优化实践 PHP编程中的多数SQL查询效率优化实践 Jun 23, 2023 am 10:37 AM

随着网络技术的发展,PHP编程已经成为了许多公司网站开发的主流。在PHP编程中,SQL查询效率是需要每一个程序员关注和处理的问题。SQL查询效率低会导致网站响应缓慢、系统负载过高或者产生其他不友好的效果。因此,本文将着重介绍PHP编程中多种SQL查询效率优化实践,以提高程序的执行效率和整个系统的响应速度。数据库索引数据库索引是提高数据库查询速度的一种基本方法

See all articles