欢迎来到天天文库
浏览记录
ID:48784826
大小:484.50 KB
页数:30页
时间:2020-01-24
《sql查询帮助.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据库应用技术授课单位:软件技术教研组第六讲高级查询高级查询的概述等值与非等值连接查询<自然连接>自身连接查询外连接查询复合连接条件查询子查询第六讲高级查询高级查询的概述笛卡儿乘积__不带连接谓词的连接,两个表元组的交叉乘积。又称为非限制连接查询。结果集的列为两个表属性列的和。9行(结果)=3行(表1)*3行(表2)产品编号0001显示器0002键盘0004鼠标产品编号销量000125000330000535产品名称①②③第六讲高级查询高级查询的概述产品编号产品名称产品编号销量0001显示器0001250002键盘0001250004鼠标0001250001显示器00
2、03300002键盘0003300004鼠标0003300001显示器0005350002键盘0005350004鼠标000535第六讲高级查询高级查询的概述一般情况下笛卡儿乘积返回的结果大多数是冗余的,没有实际的应用意义的,所以这种连接世界使用的很少。所以要避免笛卡儿乘积的出现,给出where条件来限制查询结果。等值与非等值连接查询自身连接查询外连接查询复合连接条件查询第六讲高级查询等值与非等值连接查询连接查询过程当中,连接两个表的条件为“=”时,称为等值连接。使用其他运算符的连接成为非等值连接。等值连接运算符:=非等值连接运算符:>,<,>=,<=,!=在连接查询
3、的过程当中,可以根据实际情况使用任意的合法的条件运算符(逻辑条件、确定范围、确定集合、字符匹配等条件)。等值连接的过程类似于交叉连接,只是在连接的过程当中只拼接满足条件的记录到结果集当中。第六讲高级查询等值与非等值连接查询等值连接的基本语法:SELECT列名列表FROM表名1[INNER]JOIN表名2ON表名1.列名=表名2.列名[INNER]:可选关键字,指定连接类型为内连接。表名1JOIN表名2:等值连接对象的连接体。ON表名1.列名=表名2.列名:是等值连接的连接条件,通常情况下为“ON主键=外键”。第六讲高级查询等值与非等值连接查询例:用等值连接的方法连接“
4、产品”表和“产品销售”表,代码如下:USESTUDENTGOSELECT*FROM产品JOIN产品销售ON产品.产品编号=产品销售.产品编号第六讲高级查询等值与非等值连接查询通过上面的例子可以看到在结果集当中“产品编号”为重复列,在等值连接中,把目标列中重复的列去掉则为自然连接。例:自然连接产品表和产品销售表。代码如下:SELECT产品.产品编号,产品名称,销量FROM产品JOIN产品销售ON产品.产品编号=产品销售.产品编号第六讲高级查询自身连接查询连接操作不仅可以在两个不同的表之间进行,也可以是一个表与自身进行的连接,称为表的自身连接查询。使用自身连接时,必须为表
5、指定两个别名。例:查询选修了两门或两门以上课程的学生学号和课程号。代码如下:USESTUDENTGOSELECTa.学号,a.课程号FROM课程注册ASaJOIN课程注册ASbONa.学号=b.学号ANDa.课程号!=b.课程号GO第六讲高级查询自身连接查询结果:第六讲高级查询外连接查询在通常的连接操作中,只有满足条件的记录才能在结果集里输出。如前边的例子,产品‘0002’‘键盘’及产品‘0004’‘鼠标’没有在结果集里出现,因为这些产品没有在产品销售表中出现,也就是没有产品编号为‘0002’和‘0004’’的销售记录。但是,用户有时想以产品表为主体列出产品的销售情况
6、,若某个产品没有销售量,则只输出产品的基信息,其销售量为空值即可。这时就需要外连接。外连接有分为左外连接、右外连接、全外连接三种。外连接除产生内连接生成的结果集外,还可以使一个表(左、右外连接)或两个表(全外连接)中的不满足连接条件的记录也出现在结果集中。第六讲高级查询外连接查询1、左外连接左外连接就是将左表作为主表,主表中所有记录分别与右表的每一条记录进行连接组合,结果集中除了满足连接条件的记录外,还有主表中不满足连接条件的记录并在右表的相应列上填充NULL值。左外连接的语法:SELECT列名列表FROM表名1LEFT[OUTER]JOIN表名2ON表名1.列名=表
7、名2.列名第六讲高级查询外连接查询例:将产品表左外连接产品销售表。代码如下:SELECT*FROM产品LEFTOUTERJOIN产品销售ON产品.产品编号=产品销售.产品编号结果:第六讲高级查询外连接查询2、右外连接右外连接就是将右表作为主表,主表中所有记录分别与左表的每一条记录进行连接组合,结果集中除了满足连接条件的记录外,还有主表中不满足连接条件的记录并在左表的相应列上填充NULL值。右外连接的语法如下:SELECT列名列表FROM表名1RIGHT[OUTER]JOIN表名2ON表名1.列名=表名2.列名第六讲高级查询外连接查询例:将产品表右外连
此文档下载收益归作者所有