高级SQL @Oracle
1.集合操作
学习oracle
中集合操作的有关语句,
掌握union,union
all,minus,interest的使用,能够描述结合运算,并且能够将多个查询组合到一个查询中去,能够控制行返回的顺序。
包含集合运算的
查询称为复合查询。见表格1-1
表1-1
Operator Returns content
UNION
由每个查询选择的所有不重复的行 并集不包含重复值
UNION ALL
由每个查询选择的所有的行,包括所有重复的行 完全并集包含重复值
INTERSECT
由每个查询选择的所有不重复的相交行 交集
MINUS
在第一个查询中,不在后面查询中,并且结果行不重复 差集
所有的集合运算与等号的优先级相同,如果SQL
语句包含多个集合运算并且没有圆括号明确地指定另一个顺
序,Oracle服务器将以从左到右的顺序计算。你应该使用圆括号来明确地指定带另外的集合运算的INTERSECT (相交) 运算查询中的赋值顺序。
Union
all 效率一般比union高。
1.1.union和union all
UNION(联合)运算
UNION运算返回所有由任
一查询选择的行。用UNION运算从多表返回所有行,但除去任何重复的行。
原则 :
􀂃被选择的列数
和列的数据类型必须是与所有用在查询中的SELECT语句一致。列的名字不必相同。
􀂃联合运算在所有被选择的列上进
行。
􀂃在做重复检查的时候不忽略空(NULL)值。
􀂃IN运算有比UNION
运算高的优先级。
􀂃在默认情况下,输出以SELECT子句的第一列的升序排序。
全联合(UNION
ALL)运算
用全联合运算从多个查询中返回所有行。
原则
􀂃和联合不同,重复的行不被过
滤,并且默认情况下输出不排序。
􀂃不能使用DISTINCT关键字。
使用:
Select
statement union | union all Select statement;
1.2.intersect交集操作
相
交运算
用相交运算返回多个查询中所有的公共行。 无重复行。
原则
𙦦
相关文档:
系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......
日志序列编号(LSN)是事务日志里面每条记录的编号。
当你执行一次备份时,一些LSN值就被同时存储在文件本身及msdb..backupset表中。你可以使用RESTORE HEADERONLY语法来从备份文件中获取LSN值。
注意:在SQL Server 2000中,有一列叫做DifferentialBaseLSN。但在SQL Server 2005中,相同的列名称变成了Data ......
(1)整合简单,无关联的数据库访问:
如果你有几个简单的数据库查询语句,你可以把它们整合到一个查询中(即使它们之间没有关系)
(2)删除重复记录:
最高效的删除重复记录方法 ( 因为使用了ROWID)例子:
DELETE from EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID)
from EMP X WHERE X.EMP_NO = E.EM ......
连接命令
1.CONNECT(CONN):建立用户连接
语法:CONNECT [USERNAME]/[password][@connect_identifier]
参数:USERNAME:用户名; password:密码; connect_identifier:数据库实例名
例如:CONNECT scott/tiger@ORCL
注意:如果要以特权用户身份连接,则必须带:AS SYSDBA 或 AS SYSOPER选项,
例如:CO ......
SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合。每一个属性/值对都由分号隔开。
PropertyName1=Value1;PropertyName2=Value2;PropertyName3=Value3;.....
同样,连接字符串必须包含SQL Server实例名称:
  ......