SQL server 第三篇 多表联接查询
多表联接查询
一、多表联接查询的分类
多表联接查询实际上是通过各个表之间共同列的关联性来查询数据的,它是关系数据库查询最主要的特征。
联接查询可分为三大类,分另为:
1. 内联接。
2. 外联接。
3. 交叉联接。
那么我们一起来看一下如何使用多表联接查询。
A. 内联接:内联接是最典型、最常用的联接查询,它根据表中共同的列来进行匹配,只有满足匹配的条件的数据才能被查询出来。通常,两个表存在主外键关系时会使用到内联接查询。
内联结常使用“=”比较运算符来判断两列数据是否相等,在这里我们通过几个实例来学习内联接查询。
a) 先在SQL Server 2005中新建两个表usersTable和usersNote,两表的内容如下面的图中所示。
表usersTable
表usersNote
b) 在建好相应的表后,我们就可以进行多表查询了,首先内联接我们有两种方式来查询。
第一种:直接在Where条件里通过表达式来进行表之间的关联。
select usersTable.myuser,usersTable.mypwd,
usersNote.useraddress,userphonenumber
--查询显示dbo.usersTable和dbo.usersNote表中的指定的内容
from dbo.usersTable,dbo.usersNote
--内联接两表
where usersTable.myuser=usersNote.username
--两表匹配的条件
在SQL 2005中的查询结果如下:
第二种:通过使用Inner Join关键字进行表之间的关联。
select usersTable.myuser,usersTable.mypwd,
usersNote.useraddress,userphonenumber
from dbo.usersTable inner join dbo.usersNote
on (usersTable.myuser=usersNote.username)
查询结果如下:
B. 外联接:外联接又可分为左外联接、右外联接、完整联接三种。
外联接与内联接区别在于,不仅显示两个表关联字段匹配的记录,同时不匹配记录根据外联接类型也会显示。
a) 左外联接:Left Join 或 Left Outer Join。
左外联接的结果集包括Left Join子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果
相关文档:
sql 添加新分区
ALTER PARTITION SCHEME SCH_Source_ID_DT_ID
NEXT USED sn3
go
ALTER PARTITION FUNCTION [PF_Source_ID_DT_ID]()
SPLIT RANGE ('350000')
删除分区
编辑
ALTER PARTITION FUNCTION [PF_Source_ID_DT_ID]( ......
INSERT INTO
tableName ( columnName1, columnName2, columnName3, columnName4)
VALUES ( '45', '西藏办', TO_Date( '2010-03-10 12:00:00', 'YYYY-MM-DD HH24:MI:SS'), NULL,);
commit; ......
Student(S#,Sname,Sage,Ssex) 学生表
Course(C#,Cname,T#) 课程表
SC(S#,C#,score) 成绩表
Teacher(T#,Tname) 教师表
问题:
1、查询“001”课程比“002”课程成绩高的所有学生的学号;
select a.S# from (select s#,score from SC where C#='001') a,(select s#,score
fr ......
作者:superhasty
2007-11-29
在论坛上常见有朋友抱怨,说SQL Server太吃内存了。这里笔者根据经验简单介绍一下内存相关的调优知识。首先说明一下SQL
Server内存占用由哪几部分组成。SQL Server占用的内存主要由三部分组成:数据缓存(Data
Buffer)、执行缓存(Procedure Cache)、以及SQL Server引擎程序。S ......