3。 从多表中显示数据:
SQL(老版本的)
等值查询
SELECT TABLE1。COLUMN;TABLE2。COLUMN FROM TABLE1;TABLE2 WHERE
TABLE1。COLUMN1=TABLE2。COLUMN2;//自然连接使用 AND 操作符增加查询条件
使用表的别名来简化查询,提高查询功能。
SELECT E。ID,D。ID FROM EMPL E,DEP D WHERE E。NAME=D。NAME;
E、D:表别名
多表等值连接查询
为了连接 N个表,至少需要 N…1 个连接条件。
非等值查询
使用 BETWEEN AND 查询近似值作为连接条件的多表结果。
WHERE E。SALARY BETWEEN J。LOW AND J。HIGH
外连接查询
SELECT T1。COL;T2。COL FROM WHERE T1。COL(+)=T2。COL;左外连接所有 T2 的T1 信息。
SELECT T1。COL;T2。COL FROM WHERE T1。COL=T2。COL(+);右外连接所有 T1 的T2 信息。
为了看到与连接条件不匹配的数据,就必须得用外连接。
自连接
通过表的别名来创建虚拟逻辑表;进行自连接查询。
select worker。last_name || "work for" || manager。last_name
from employees worker;employees manager
where worker。manager_id=manager。employee_id;
9I 适应性连接:
select t1。col;t2。col
from table
cross join t2 //交叉连接
natural join t2//自然连接:把两表中所有等值的字段都作为连接条件(但这些连接条件不用
写)。
从两个表中选出连接列的值相等的所有行。
如果两个列的名称相同,但数据类型不同;或是类型相同,意义不同都会出错。
第 25 页,共 106 页
…………………………………………………………Page 26……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
join t2 using (column_name);基于自然连接,只有在 USING 中出现的,才作为连接条件(在
USING 中列名前一定不能加前缀)。
join t2 on (t1。col=t2。col);基于 ON 的自然连接。等值、非等值或自连接都可以实现。
left|right|full outer join t2 on(t1。col=t2。col);
select e。last_name;d。department_name;l。city
from employees e
left outer join departments d on e。department_id=d。department_id
right outer join locations l on d。location_id=l。location_id;
*&* 可以连续做左连接或右连接的操作。
full outer join 忽略连接条件,把要查询的列的所有行全显示出来。
笛卡尔乘积(多表查询容易产生的错误)形成原因:
*、忽略连接条件;
*、连接条件不正确;
*、笛卡尔乘积是由第一个表的所有行和第二个表的所有行联合形成的;
*、为了避免笛卡尔乘积的产生,一定要在 WHERE 条件中正确写出连接条件。
set linesize 160;设置显示行的行数。
1。8、用字函数产生的总计
对多行的计算产生单行的结果。
组函数用语对每个组的行集进行运算,每个组产生一个结果。
AVG('DISTINCT/ALL'col)只能用与数字。只能对多行的数据进行运算,不能在这个函数中做单
行的数学运算。
CORR(x1;x2)
返回表达式 X1 和X2 组成的集合的相关系数。在保证所有行中的 X1 和 X2都不为 NULL之后结果
通过
COVAR_POP(x1;x2)/(STDDEV_POP(x1)*STDDEV_POP(x2))得到。
COUNT('DISTINCT/ALL'col)所有非空字段的行数。
COVAR_POP(x1;x2)返回表达式 x1 和 x2 组成的集合的人口协方差结果通过
(SUM(x1*x2)…SUM(x2)*SUM(x1)/n)/n得到,n 是没有 NULL 项的集合的数目。
COVAR_SAMP(x1;x2)返回表达式 X1 和X2 组成的集合的相同协方差。
CUME_DIST 返回一组值中一个值的累积分布。
DENSE_RANK返回有序分组的行中一行的秩,秩是从 1 开始的连续的整数。
GROUP_ID()返回一个唯一数字值用于在 GROUP BY 字句中辨别组。
GROUPING_ID返回一个数字对应于一行的 GROUPING 位矢量。
第 26 页,共 106 页
…………………………………………………………Page 27……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
MAX('DISTINCT/ALL'col)可以用于任何类型,当用于日期类型时代表最晚。忽略空值。字符类
型时候,比较字符串首字母的 ASCLL 值。
MIN('DISTINCT/ALL'col)可以用于任何类型,当用于日期类型时代表最早。忽略空值。字符类
型时候,比较字符串首字母的 ASCLL 值。
PERCENTILE_CONT 这个函数是一个反分布函数,它假设了一个连续分布模式。
PERCENTILE_DISC 一个反分布函数,它假设了一个离散分布模式。
RANK 返回给定行的秩。秩不必是连续的,因为相同的行有相同的秩。
REGR 这些函数
(REGR_SLOPE;REGR_INTERCEPT;REGR_COUNT;REGR_R2;REGR_AVGX;REGR_AVGY;REGR_SXX
REGR_SYY;REGR_SXY)得到了双集合的普通最小衰减线。
SUM('DISTINCT/ALL'col)返回选择列表项目的总和,只能用于数字。
STDDEV('DISTINCT/ALL'col) 标准方差
STDDEV_POP(col)计算人口标准差并返回人口方差的平方根。
STDDEV_SAMP(col)计算累计标准差并返回例子方差的平方根。
VAR_POP(x)返回提系列数字在去除了 NULL 值之后的人口不同。由
(SUM(x*x)…SUM(x)*SUM(X)/COUNT(x))/COUNT(x)得到。
VAR_SAMP(x)返回一系列数字在去 NULL 值之后的范例不同。由
(SUM(x*x)…SUM(x)*SUM(X)/COUNT(x))/(COUNT(x)…1)得到。
VARIANCE('DISTINCT/ALL'col)偏移方差,返回 COL 的方差。
语法:
select col;group function(col) from table where 条件 group by col;
GROUP BY
必须:出现在查询列表中的一个字段,但没有出现在函数中,那么这个字段必须要出现在 GROUP
BY 中。
可以:出现在 GROUP BY 子句中的字段可以不出现在查询列表中。
先排列,再运算。
WHERE 子句中不能使用 group function。
限制组必须使用 HAVING 子句。
语法:
select col;group function from table
where 条件//可以没有条件限制
group by col
having group_condition //组过滤,在过滤以后,再进行分组计算。
order by col;
组函数嵌套最多只能有两层。
select max(avg(salary))
from employees
group by employee_id;
select * from tab;查询一个用户中的所有表。
第 27 页,共 106 页
…………………………………………………………Page 28……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
1。9、子查询:
语法:
小说推荐
- VB2008从入门到精通(PDF格式英文版)
- -Page 1(R)The eXperT’s Voice inBeginningVB 2008From Novice to ProfessionalChristian Gross-Page 2-Page 3-Beginning VB 2008From Novice to Professional■C
- 其他
- 最新章:第214章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 其他
- 最新章:第4章
- VC语言6.0程序设计从入门到精通
- -Page 1-Visual C 6.0 程序设计从入门到精通求是科技 王正军 编著
- 其他
- 最新章:第136章
- SQL 21日自学通(V3.0)(PDF格式)
- -Page 1-SQL 21 日自学通(V1.0 翻译人 笨猪目录目录 1译者的话 14第一周概貌 16从这里开始 16
- 其他
- 最新章:第170章
- 深入浅出MFC第2版(PDF格式)
- -Page 1-Page 2-山高月小山高月小 水落石出水落石出山高月小山高月小 水落石出水落石出-Page 3-深入淺出MFC(第版 使用Visual C 5.0 MFC 4.2)Dissecting MFC(Second Edition Using Visual C 5.0 MFC 4.2)侯俊
- 其他
- 最新章:第309章
- JMS简明教程(PDF格式)
- -Page 1-JMS1.1规范中文版卫建军2007‐11‐22-Page 2
- 其他
- 最新章:第28章
- SQL语言艺术(PDF格式)
- -Page 1-SQLSSQQLL语言艺术内容介绍本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明。这些例子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你数据库应用维护人员阅读。资深 SQL 专家 Stéphane Faroult倾力打
- 其他
- 最新章:第27章
- JSP入门教程(DOC格式)
- -Page 1-jsp 入门教程0.0.1版权(c 2008 叮咚老菜鸟叮咚对文档的任何问题或建议,请给叮咚发邮件或留言。QQ:475784337QQ 群:51239192MSN:lingirl6@hotmail.EMAIL:lingirl6@hotmail.2008-02-28 20:05:061
- 其他
- 最新章:第37章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 其他
- 最新章:第143章