表连接(关联查寻)
多表查询时不加where子句,过滤条件是无效的条件,会产生两表之间记录的相互逐条匹配(组合),产生无效的结果(笛卡尔积)。
注意:表连接时,要注意查询的表之间的字段关系,表之间的字段所表示的信息的关系
等值连接
select [表别名1.字段名1],[表别名2.字段名2],...
from 表1 表别名1 ,表2 表别名2
where 表别名1.字段名3=表别名2.字段名4;
表连接时,表与表之间有同名字段,可以加上表的别名,加以区分,用表名.字段名或表别名.字段名(列名)。表的字段名是唯一,不用加表名.或表的别名。
注意:为表起了别名,就不能再使用表名.字段名。
例:select a.first_name,a.last_name,b.name
from s_emp a,s_dept b
where a.dept_id=b.id;
非等值连接
select [表别名1.字段名1],[表别名2.字段名2],...
from 表1 表别名1 ,表2 表别名2
where 表别名1.字段名3 ..... 表别名2.字段名4
....可以使比较运算符,也可以使其他的除了'='的运算符
例:select e.ename, d.grade,e.sal
from emp e,salgrade d
where e.sal between d.losal and d.hisal;
自连接
用两个别名把一张表中的数据分成两部分,然后在使用条件过滤。
select [表别名1.字段名1],[表别名2.字段名2],...
from 表1 表别名1 ,表1 表别名2
where 表别名1.字段名3=表别名2.字段名4;
例:select a.first_name ename,b.first_name cname from s_emp a,s_emp b where a.manager_id=b.id;
以上所提到的表连接,都叫做内连接,严格匹配两表的记录。
外连接
外连接会使用一方表中的所有记录去和另一格表中的记录按条件匹配,空值也会匹配,这个表中的所有记录都会显示,数据库会模拟出记录去和那些不匹配的记录匹配。
例:select a.first_name enamei,a.id,b.first_name cname,b.id from s_emp a,s_emp b where a.manager_id=b.id(+);
注意:要把那一方的记录全部都显示出来,还有注意条件(+)跟在要全部显示的那个表的字段后。
组函数
group 组
group by 分组子句,按指定的分组规则分组 ,这个group by 子句可以跟在 select 语句后或是 having后面。group by子句也会出发排序操作,会按分组字段排序。
select [组函数或分组的字段名] ,... from 表名 group by [字段名1],[字段名2],.....;
例:select avg(salary) from s_emp group by dept_id;
注意:组函数可以处理一组数据,返回一个值。组函数会忽略空值。count()除外,他会把空记录也记录在内。
avg(..),求平均值,sum(..),求和 这两个函数的参数只能是number型的。
以下所提到的函数可以使用任意类型做参数。
count(..),用来统计记录数,可以使用排重命令。count(...)默认使用的是all。
max(..),min(..)求最大值和最小值,
count(*),统计表中记录数。
例:select max(b.name),avg(a.salary), max(c.name) from s_emp a,s_dept b,s_region c where a.dept_id=b.id and b.region_id=c.id group by b.id;
注意:只要写了group by子句,select后就只能用group by后的字段或者是组函数。
where子句只能够过滤记录。
having子句可以过滤组函数结果或是分组后的记录,且写在group by子句后。
例:
select max(b.name),avg(a.salary), max(c.name)
from s_emp a,s_dept b,s_region c
where a.dept_id=b.id and b.region_id=c.id
group by b.id having sum(a.salary)>4000;
column 也可以定义有别名的列的格式。
column "别名" 格式定义
注意:要先过滤掉不需要的记录,然后再进行分组操作,提高效率。
子查询
子查询,就是可以嵌在任何的sql语句中的select语句。
在select语句中嵌套子查询时,会先执行子查询。一般的会将子查询放在运算符的右边。
注意:在使用子查询时,要注意这个运算符是单行的(也就是只能是单值),还是多行运算符(范围,多值)。配合使用子查询返回的结果必须符合运算符的用法。
例:
select first_name,title from s_emp where title=any(select title from s_emp where last_name='Smith') and upper(last_name)!='SMITH';
select first_name,title from s_emp where title in (select title from s_emp where last_name='Smith') and upper(last_name)!='SMITH';
分享到:
相关推荐
[Oracle.10g.认证辅导资料-].Sybex.-.OCA.-.Oracle.10g.Administration.I.-.Study.Guide.1Z0-042.-.2004.-.(By.Laxxuss).pdf
Chapter 1 Oracle Database 10g Components and Architecture Chapter 2 Creating and Controlling a Database Chapter 3 Database Storage and Schema Objects Chapter 4 Oracle Net Services Chapter 5 Oracle...
本压缩包提供的"oracle考试辅导资料"包含了丰富的学习资源,帮助考生全面掌握Oracle基础知识,顺利通过OCA等相关考试。 首先,Oracle数据库的基础知识是考试的重点,包括但不限于以下内容: 1. 数据库概念:了解...
1. 数据库实例:Oracle数据库运行时的内存结构,包括系统全局区(SGA)和程序全局区(PGA)。 2. 数据文件:存储数据库对象如表、索引等的数据文件。 3. 控制文件:记录数据库结构和状态的重要文件,用于数据库恢复...
报名辅导班给的,10年的最新题库,vce格式,非常方便!
2. **安装与配置**:学习如何在不同的操作系统上安装Oracle 10g数据库,包括配置网络服务、创建数据库实例和表空间。 3. **SQL基础**:掌握SQL语言,用于查询、插入、更新和删除数据库中的数据,理解SQL*Plus工具的...
这些知识点主要围绕Oracle Database 10g: Administration II(考试代码1Z0-043)展开,包括数据库管理、性能调优、故障恢复等多个方面。 ### 1. 全球化支持 (Using Globalization Support) 全球化支持是Oracle...
"Oracle&SQL辅导(英文版)"这本书提供了全面的学习资源,帮助你深入理解这两种强大的工具。以下是相关的重要知识点: 1. **SQL(Structured Query Language)**: SQL 是用于管理和处理关系型数据库的标准编程语言,...
SELECT column1, column2, ... FROM table_name WHERE condition; ``` 例如,在提供的示例中,声明了一个名为`stu_cur`的游标来查询`student`表中的所有记录: ```sql DECLARE CURSOR stu_cur IS SELECT * ...
**2.4 Oracle辅导(2--1)** - **PL/SQL**: PL/SQL语言的基础知识。 - **游标**: 如何使用游标处理记录集合。 - **异常处理**: 编写健壮的异常处理代码。 **2.5 Oracle辅导(2--2)** - **序列**: 自动生成唯一的数字...
oracle认证 [Oracle.10g.认证辅导资料-].Sybex.-.OCA.-.Oracle.10g.Administration.I.-.Study.Guide.1Z0-042
Oracle 11g是Oracle公司推出的数据库...Certinside+1Z0-051.pdf可能包含的是第三方培训机构的辅导资料,有助于从不同角度理解和掌握这些概念。在备考过程中,结合实战练习和模拟试题,可以更好地巩固和应用所学知识。
资源名字:基于javaEE+SSH+oracle的健康管理系统设计与实现(源码+文档)_JAVAEE_SSH_oracle_健康管理系统 资源类型:项目全套源码+文档+辅导视频 源码说明: 全部项目源码都是经过测试校正后百分百成功运行。 适合...
《基于Oracle的SQL优化》...《基于Oracle的SQL优化》适用于使用Oracle数据库的开发人员、OracleDBA和其他对Oracle数据库感兴趣的人员,也可以作为各院校相关专业的教学辅导和参考用书,或作为相关培训机构的培训教材。
##### 1. OCA 认证培训 - **培训内容**:Oracle 10G Database: Workshop I - **课程目标**:为学员打下坚实的数据库管理基础,包括安装、维护数据库的基本技能,以及数据库性能监控、安全控制、用户管理等方面的...
- 使用`orapwd file=/u01/app/oracle/product/10.2.0/db_1/dbs/orapwprod password=password entries=2`命令创建口令文件。 5. **执行建库脚本**: - 使用`create database prod using '/u01/app/oracle/product/...
《基于Oracle的SQL优化》...《基于Oracle的SQL优化》适用于使用Oracle数据库的开发人员、OracleDBA和其他对Oracle数据库感兴趣的人员,也可以作为各院校相关专业的教学辅导和参考用书,或作为相关培训机构的培训教材。
在Oracle或MySQL数据库中,表的设计和创建是数据库开发的基础。本例中,我们需创建两个表:`studentinfo` 和 `classinfo`。 1. **学生信息表** (`studentinfo`) - **字段说明** - `StudNum` (学号): 主键,唯一...
1. 安装透明网关:透明网关是Oracle用于连接非Oracle数据库(如SQL Server)的组件。在这个例子中,需要在Oracle的安装目录下找到相关配置文件进行设置。 2. 修改`listener.ora`文件:添加新的SID_DESC,指定全局...
2. **培训内容与目标**:培训涵盖Oracle 10g服务器环境配置、GRID CONTROL管理、数据可用性实现、DataGuard容灾、数据仓库技术、性能调优、数据库集群RAC及考前辅导等。目标在于培养学员成为企业级数据库管理的顶尖...