首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL基础语法(四)

2013-02-18 
SQL基础语法(4)这篇blog是SQL基础语法,只是作为我平时查阅和备份,仅适合初学者学习阅读,高手绕行。 SQL基础

SQL基础语法(4)
这篇blog是SQL基础语法,只是作为我平时查阅和备份,仅适合初学者学习阅读,高手绕行。
SQL基础语法(1)访问http://fuchangle.iteye.com/blog/1772395
SQL基础语法(2)访问http://fuchangle.iteye.com/blog/1772523
SQL基础语法(3)访问http://fuchangle.iteye.com/blog/1772779

多表连接查询和子查询
很多时候,我们需要选择的数据并不是来自一个表,而是来自多个表,这就

需要使用多表连接查询。例如对于上面的student_table和teacher_table两

个数据表,如果我们希望查询出所有学生以及他的老师名字,这就从两个表

中取数据。
多表连接查询有两种规则,较早的SQL92规范支持如下几种多表连接查询:
1.等值连接。
2.非等值连接。
3.外连接。
4.广义笛卡儿积。
SQL99规则提供了可读性更好的多表连接语法,并提供更多类型的连接查询

,SQL99支持如下几个多表连接查询:
1.交叉连接。
2.自然连接。
3.使用using子句连接。
4.使用on子句的连接
5.全外连接或左右连接。

SQL92的多表连接语法比较简洁,这种语法把多个数据表放在from之后,多
个表之间以逗号隔开;连接条件放在where之后,与查询条件之间用and逻辑
运算符连接。如果连接条件要求两列值相等,则称为等值连接;否则称为非
等值连接,如果没有任何连接条件,则被称为广义笛卡儿积。SQL92中多表
连接查询的语法格式如下:

select * from student_tablewhere student_id in(select teacher_idfrom teacher_table);

上面查询语句中的子查询将返回多个值,这多个值将被当成一个值列表,只
要sudent_id与该值列表中任意一个相等,就可以选出这条记录。

热点排行