7_第六讲 SQL语言_查询.pptVIP

  • 3
  • 0
  • 约7.64千字
  • 约 44页
  • 2017-06-19 发布于湖北
  • 举报
SQL 语言 第六章 查询: 单表查询 连接查询 6.6.1 单表查询 单表查询是从一个数据库表的查询某些列值或选择一个表中的某些特定行等。 一、Select子句 5. 消除取值重复的行 ? 例6 查询所有选修过课的学生的学号。 Select Sno From SC; 二、Where子句 Select Distinct Sno From Course Where Grade 60; 例如: a%b表示以a开头,以b结尾的任意长度 的字符串。 acb, addgb, ab,adteu155b等都满足该匹配串。 Select Sname, Sno, Ssex From Studen Where Sname Not Like ‘刘%’; 例20 有些学生选修了某门课程后,有选课记录,但没有参加考试,查询缺考的学生的学号和相应的课程号。 如果这两个运算符同时出现在同一个where条件子句中,则and的优先级高于or,但用户可以用括号改变优先级。 分组后聚集函数将作用于每一个组,即每一组都有一个函数值。 6.6.2 连接查询 一个数据库中的多个表之间一般都存在某种内在联系,它们共同提供有用的信息。前面的查询都是针对一个表进行的。该查询同时涉及两个以上的表。 按两个表的相同属性进行等值连接,目标列中去掉了重复的属性列,但保留了所有不重复的属性列。 例28 查询各个课程号与相应的选课人数 Select Cno,Count(sno) From Sc Group by Cno; 例29 查询计算机系选修3门课程以上学生的学号 Select Sno From Sc Where Sdept=’计算机’ Group by Sno Having Count(*)3; SQL 语言 Difference Select [Distinct]列表达式[,列表达式 …] From 表名或视图名[,表名或视图名…] [Where 条件表达式] [Group By列名1[Having条件表达式] [Order By列名2[Asc|Desc]]; 数据查询 Difference 列表达式小结 查询表中的若干列 查询全部列 ‘*’ 查询经过计算的值 列表达式 改变查询结果的列标题 As可省略,标题不需要引号引起来,顺序 指定别名和值来增加查询的列 消除取值重复的行 Distinct Review 查询条件 谓 词 比较大小 确定范围 确定集合 字符匹配 空值 逻辑运算 Where子句回顾: !=即 between … and … in( ) like 匹配字符串 % _ is null and, or, not Review Order By、Group By应用 Order By将查询结果按某个列名进行排序 Group By将查询结果按某列名进行分组,属性列相等的元组为以组,满足条件的组才输出。 聚集函数 Count(列名) Sum (列名) Avg (列名) Max (列名) Min (列名) Distinct=消除重复元组 Difference 主要有:等值连接查询 非等值连接查询 自身连接查询 外连接查询 复合条件连接查询 1.等值与非等值连接查询 当用户的一个查询请求涉及到数据库的多个表时,必须按照一定的条件把这些表连接在一起,以便能够共同提供用户需要的信息。用来连接两个表的条件称为连接条件或连接谓词。格式: [表名1.]列名1 比较运算符 [表名2.]列名2 比较运算符号: 、、 =、=、=、 ? 当连接符号为“=”时,称为等值连接 使用其他运算符号, 称为非等值连接 例30 查询每个学生选修课的名称和成绩 Select Sno,Cname,Grade From Sc,Course Where Sc.Cno=Course.Cno; 可以给表起别名,如 Select Sno,Cname,Grade From Sc A,Course B Where A.Cno=B.Cno; 连接过程 DBMS执行连接操作的过程,在表1中找到第一个元组,然后从头开始顺序扫描或按索引扫描表2,查找满足连接

文档评论(0)

1亿VIP精品文档

相关文档