单表查询之简单查询.ppt
文本预览下载声明
南京信息职业技术学院 计算机基础教研室 南京信息职业技术学院 计算机基础教研室 * 南京信息职业技术学院 计算机基础教研室 南京信息职业技术学院 计算机基础教研室 * 南京信息职业技术学院 计算机基础教研室 南京信息职业技术学院 计算机基础教研室 * * * 本部分学习目标 熟悉已有的库表结构,按照用户查询需求写出正确的查询语句。 * * SELECT语句包含了关系代数中的选择、投影、连接、笛卡尔积等运算,通过SELECT子句实现了投影运算,通过FROM字句实现连接运算,通过WHERE子句实现了选择运算。在后面的学习中,要理解每一个SELECT语句是如何实现上述运算的,从而将关系代数运算与SELECT语句结合在一起,做到理论与实践的统一。 * * 查询语句基本结构 语法: SELECT 目标列名表 FROM 数据源表 [WHERE 查询条件] [GROUP BY 分组列] [HAVING 组选择条件] [ORDER BY 排序列] * * SELECT语句说明 SELECT语句包括:SELECT 子句,FROM子句,可选的WHERE子句、GROUP BY子句、HAVING子句和可选的ORDER BY子句。 (1) SELECT 目标列名表,称为SELECT子句。用于指定整个查询结果表中包含的列。假定已经执行完FROM、WHERE、GROUP BY、HAVING子句,从概念上来说得到了一个表,若将该表称为T,从T表中选择SELECT子句指定的目标列组成表就为整个查询的结果表。 * * (2) FROM 数据源表,称为FROM子句。用于指定整个查询语句用到的一个或多个基本表或视图,是整个查询语句的数据来源,通常称为数据源表。 (3) WHERE 查询条件,称为WHERE子句。用于指定多个数据源表的连接条件和单个源表中行的筛选条件或选择条件。如果只有一个源表,则没有表间的连接条件,只有行的筛选条件。 * * (4) GROUP BY 分组列,称为GROUP BY子句。假定已经执行完FROM、WHERE子句,则从概念上来说得到了一个表,若将该表称为T1表,则GROUP BY用于指定T1表按哪些列(称为分组列)进行分组,对每一个分组进行运算,产生一行。所有这些行组成一个表,不妨把它称为T2表,T2表实际上是一个组表。 (5) HAVING 组选择条件,称为HAVING子句。与GROUP BY子句一起使用。用于指定组表T2表的选择条件,即选择T2表中满足组选择条件的行,组成一个表就是SELECT子句中提到的表T * * (6) ORDER BY 排序列,称为ORDER BY子句。若有ORDER BY子句,则用于指定查询结果表T中按指定列进行升序或降序排序,得到整个查询的结果表。 注意:SELECT语句的结果表不一定满足关系的性质,也就是说,它不一定是一个关系,但是本章中仍然称为表。 * * 任务二十八、单表查询 假设我们需要查询所有女学生的信息: USE studentml GO SELECT * FROM student WHERE sgender=’女’ 在上面的查询语句里,包含了三个子句,分别是SELECT子句、FROM子句和WHERE子句。SELECT子句用来指定查询结果中返回的列;FROM子句指明提供数据来源的表或者视图;而使用 WHERE 子句可以实现有条件的查询。 SELECT子句和FROM子句是必须要有的,WHERE 子句可以根据需要选用。 * * 任务28-1、查询所有学生的详细信息 USE studentml GO SELECT * FROM student * * 任务28-2、查看所有学生的学号与姓名两项信息。 USE studentml GO SELECT sid,sname FROM student * * 任务28-3: 查看学号为的学生信息。 USE studentml GO SELECT sid,sname FROM student WHERE sid* * 任务28-4: 查询1988年出生的男生的详细信息。 USE studentml GO SELECT * FROM student WHERE YEAR(sbirthday)=1988 AND sgender=男 * * 任务28-5: 查询1987年到1990年间出生学生信息。 USE studentml GO SELECT * FROM student WHERE sbirthday BETWEEN 1987-1-1 AND 1990-12-31 或者 USE studentml GO SELECT * FROM student WHERE
显示全部