SQL语言之数据查询-数据库技术.PPTVIP

  • 1
  • 0
  • 约3.32千字
  • 约 21页
  • 2019-03-05 发布于天津
  • 举报
第八讲 SQL语言之数据查询(2) 三. 连接查询 若一个查询同时涉及两个以上的表,则 称为连接查询。连接查询是关系数据库 中最主要的查询,包括: ①等值连接查询、非等值连接查询、 自然连接查询 ②自身连接查询 ③内连接查询、外连接查询 ④复合条件连接查询 三. 连接查询 1.等值与非等值连接 有些列同时出现在不同表中,例如在表student和表sc中都有sno列。使用等值连接可以把两个表中相对应的记录连接在一起,得到来自两个表的数据。 简单点,就是当使用到连接运算符=式,称为 等值运算。 三. 连接查询 例如: ① select student.sno,sc.cno,sc.grade from student,sc where student.sno=sc.sno ② select s.sno,c.cno,sc.grade from student as s,sc as c where s.sno=c.sno 三. 连接查询 注意问题: ①知道“表名.字段”这种写法的含义;特殊点, 清楚“表名.*”的含义。 ②如果省去前面的表名会怎样? ③如果表名称太长的话可以适当使用as子句。 使用as对字段和数据表起“别名”的时候, 字段如果在后面使用还是用原来的名称, 数据表则需要用别名? 三. 连接查询 自然连接: 如果在目标列中去掉相同属性列 注意下面语句的区别,那个可以理解为自然连接? ① select student.sno,sc.sno,sc.cno,sc.grade from student,sc where student.sno=sc.sno ② select student.sno,sc.cno,sc.grade from student,sc where student.sno=sc.sno 如果select和where中的属性列名是唯一的,可以 去掉表名前缀 三. 连接查询 非等值连接: 如果连接条件中不使用等号,可以使用,等,也可以使用 between...and等谓词,如: select student.sno,sc.cno,sc.grade from student,sc where student.snosc.sno 不过本例中没实际意义,实际中,绝大多数都使用等值连接 三. 连接查询 2.自身连接 连接查询还可以建立表到其自身的连接。 例如查询年龄相同的学生姓名和年龄: select distinct s1.sno,s1.sage from student s1, student s2 where s1.snos2.sno and s1.sage=s2.sage order by s1.sage 三. 连接查询 3.内连接和外连接 表之间的连接可以分为等值连接和非等值连接,也可以分为内连接(inner join)和外连接(outer join)。 三. 连接查询 内连接 内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。 三. 连接查询 内连接inner join语法(t-sql推荐用法): from 表1 [inner] join 表2 on 条件表达式 如:select course.cno,sc.sno from course inner join sc on course.cno=sc.cno 注意和下面的语句有没有什么区别: select course.cno,sc.sno from course,sc where course.cno=sc.cno 三. 连接查询 内连接分三种: ①等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。 ②不等连接:在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括、=、=、、!、!和。 ③自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询

文档评论(0)

1亿VIP精品文档

相关文档