
1、左连接, 左边的表不加限制,返回包括左表中的所有记录和右表中联结字段相等的记录
右连接),右边的表不加限制,返回包括右表中的所有记录和左表中联结字段相等的记录
全连接,左右两边的表都不加限制,只返回两个表中联结字段相等的行。
2、 左连接是已左边表中的数据为基准,若左表有数据右表没有数据,则显示左表中的数据右表中的数据显示为空。左联接的结果集包括 LEFT 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
3、 右联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
内连接是保证两个表中所有的行都要满足连接条件,而外连接则不然。在外连接中,某些不满条件的列也会显示出来,也就是说,只限制其中一个表的行,而不限制另一个表的行。这种连接形式在许多情况下是非常有用的。外连接只能用于两个表中。在 Ansi 语法形式中,包含下列三种外连接关键字:
◆Left Outer Join 包含了左表中的全部行(表达式中第一个表)
◆Right Outer Join 包括了右表中的全部行(表达式中第二个表)
◆Full Outer Join 包括了左表和右表中所有不满足条件的行
在 SQL Server 连接语法形式中,包括下列两种外连接运算符:
◆* = 包含了左表中的全部行(表达式中第一个表)
◆= * 包括了右表中的全部行(表达式中第二个表)
左外连接和右连接都可以产生同样的结果,关键是看表达式中出现的前后顺序。
举例如下:
b.外连接
b1.左连接
select courses.cno,max(coursename),count(sno)
from courses LEFT JOIN grades ON courses.cno=grades.cno
group by courses.cno
左连接特点:显示全部左边表中的所有项目,即使其中有些项中的数据未填写完全。
左外连接返回那些存在于左表而右表中却没有的行,再加上内连接的行。
b2.右连接
与左连接类似
b3.全连接
select sno,name,major
from students FULL JOIN majors ON students.mno=majors.mno
两边表中的内容全部显示
(1)方案一(数据库保存所有服务器索引信息)全对称结构,没有中央服务器
web方案:
只从本地数据库检索符合条件的记录,给出结果
每次检索都要从本地服务器的海量数据中进行
数据库方案:
数据库保存所有服务器的索引内容
缓存命中率高的记录,减少检索时间
服务器负载分析:
服务器负载假设:
一百个结点,每结点一百人同时使用,每个结点一万条记录
web服务器:同时一百线程在本地数据库服务器检索
数据库服务器:每次接收一百个查询请求;每个请求要从一百万条索引中检索(最坏的情况);缓冲机制可以稍微减轻负担
数据更新 *** 作:
同时更新所有数据库/只更新本地,服务器间相互同步
方案二(数据库保存本地索引及少量缓冲)
每高校作为一个结点
所有结点全对称结构,网络中没有一个中央服务器
web方案:
接收到请求时同时多线程向其它服务器同时搜索(服务器压力问题?)
数据库方案:
数据库保存本地数据
数据库保存一定量缓冲数据,
服务器负载分析:
服务器负载假设:
一百个结点,每结点一百人同时使用
则每个web服务器同时发起一万个线程向其它数据服务器搜索(oops!)
每个数据库服务器会同时接收到一万个查询请求(oops!)
采用学习过程只能少量减少查询请求和web服务器搜索线程
数据更新 *** 作:
只更新本地
方案三(中央服务器方案一)
每高校一个结点
每结点结构相同,连接到同一个中央服务器
web方案
每个查询向中央服务器进行,由中央服务器实行检索,中央服务器返回检索结果
数据库方案
中央数据库保存所有索引信息
每结点可以只用小型数据库保存本地用户和其它信息即可
服务器负载分析:
服务器负载假设:
一百个结点,每结点一百人同时使用,每结点资料记录一万条
web服务器:同时发起一百个进程向中央数据库查询
数据库服务器(中央):同时接收一万条查询请求并返回大容量结果
数据库服务器(结点):少量工作
数据更新 *** 作:
只更新中央服务器
方案四(中央服务器方案二)
每高校一个结点
每结点结构相同,连接到同一中央服务器
web方案:
每个查询向中央服务器进行,由中央服务器根据查询内容进行转发到结点数据库,再由结点数据库返回结果
数据库方案:
中央服务器保存各结点分类信息,根据页面请求的分类转发查询到相应服务器
服务器负载分析:
服务器负载假设:
一百个结点,每结点一百人同时使用,每结点资料记录一万条,每结点一百个类别
web服务器:同时一百个进程向中央数据库查询
数据库服务器(中央):同时接收一万条请求并转发
数据库服务器(结点):从中央服务器接收查询请求,最坏情况下每结点接收到一万条查询请求
数据更新 *** 作:
只更新本地服务器
分类变化时更新中央服务器
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)