SQL语言基础(4)
UNION将两个或两个以上的查询结果合并为一个结果集,它与使用连接查询合并两个表的列是不同的,使
用UNION合并查询必须遵守:1列的数目和顺序必须一致;2数据的类型必须兼容。
select 语句
UNION [all]
select 语句
可以看到,只要对应字段的类型相同就可以完成合并操作,但是为了有意义,两个查询的结果应该为相同
的含义,否则没有意义。
结果字段名称和union之前的字段名称相同,默认情况下删除结果集中的重复记录,如果希望保留所有记
录,则必须使用all关键字。
使用union时单独的select语句不能包含自己的order by或compute子句,只能在最后使用order by和
compute语句,对最终结果集进行作用。
若需要对查询结果进行分组以及在分组后对结果使用having子句进行过滤,则必须在单独的select语句中
指定group by和having子句。
查询计算机系的学生或者年龄不大于19岁的学生,并按年龄倒排序
select * from student where sdept="计算机"
union
select * from student where sage<=19
order by sage desc
连接查询
根据数据表的逻辑关系从两个或多个数据表中检索数据
定义数据表之间的关联方式:1指定用于联结的字段,典型的联结条件是在一个数据表中指定外键,同事
在另一个数据表中指定与其关联的主键。2在select语句中指定比较各字段值时要使用的逻辑运算符。
联结的类型:内联结;外联结(左向外连接,右向外连接,完整外连接);交叉连接
内联结格式:数据表1 inner join 数据表2 on 联结表达式
指定返回两个表中所有匹配的行。inner是缺省的连接方式
外连接:数据表1 left (outer) join 数据表2 on 联结表达式
左联结数据表1的所有记录都返回,右边字段没有匹配时为空值。
数据表1 right (outer) join 数据表2 on 联结表达式
右联结数据表2的所有记录都返回,左边字段没有匹配时为空值。
完整联结:数据表1 full join 数据表2 on 联结表达式
结果集包括所有记录,没有匹配记录时则将另一数据表选择列表字段置空。
交叉联结:数据表1 cross join 数据表2 (没有where子句的情况下返回笛卡尔乘积)
嵌套查询:外层查询是主查询,内层查询是子查询。SQL允许多层嵌套,order by 子句只能对最终查询结
果进行排序。
比较常用的子查询:where 表达式[not] in (子查询)
&
相关文档:
Union All/Union/Intersect操作
适用场景:对两个集合的处理,例如追加、合并、取相同项、相交项等等。
Concat(连接)
说明:连接不同的集合,不会自动过滤相同项;延迟。
1.简单形式:
var q = (
from c in db.Customers
select c.Phone
).Concat(
from c in db.Customers
......
Knowledge Xpert® for PL/SQL 是一个功能强大的基于Windows的技术资源库,它覆盖PL/SQL 开发的整个生命周期,上千种专题提供编写高质量代码所需要的背景信息、最好的经验和程序范例。
提供上千种专题,覆盖PL/SQL 编程的整个生命周期,从基本的专题到高级的PL/SQL 编码技术。
由包括Mike Ault、Steven Feuerstein、 ......
PL/SQL存储过程编程 收藏
/**author huangchaobiao
*Email:huangchaobiao111@163.com
*/
PL/SQL存储过程编程(上)
1. Oracle应用编辑方法概览
答:1) Pro*C/C++/... : C语言和数据库打交道的方法,比OCI更常用;
2) ODBC
3) OCI: C语言和数据库打交道的方法,和ProC很相似,更底层,很少用;
4) SQLJ ......
from子句指定需要进行数据查询的表,视图等数据源,用逗号分隔。
from子句还可以指定数据表或视图之间的连接类型,类型取决于on子句中指定的连接条件。
T-SQL可以支持在from子句中指定除数据表或视图外的其他对象构成派生表。
例如:select emp.员工编号,emp.员工姓名,sp.部门名称
fr ......