(
课件网) 第5章 数据查询 目录 ◎本章目标 ■熟练应用:SELECT语句进行简单查询 ■掌握:SELECT语句进行统计查询的方法 ■掌握:子查询 ■能够:应用SELECT语句对多表进行连接、联合和嵌套查询 ◎本章内容 ■5.1 SELECT语句 ■5.2 简单SELECT语句 ■5.3 SELECT语句的统 计功能 ■5.4 多表连接查询 ■5.5 合并结果集 ■5.6 子查询 5.1 SELECT语句 SELECT [ALL|DISTINCT] [TOP n]列表达式 [INTO 新表名] FROM 表名与视图名列表 [WHERE 逻辑表达式] [GROUP BY 列名列表] [HAVING 逻辑表达式 ] [ORDER BY 列名[ASC|DESC]] 指定查询结果要输出的列 指定要查询的表或视图 指定查询条件 对查询结果集进行分组 对查询结果集进行排序 5.2 简单SELECT语句 5.2.1 基本的SELECT语句 SELECT 选取的列 FROM 表与视图的列表 WHERE 查询条件 ■选取的列: 特定列:列名1,列名2… 所有列:* 指定返回列的名称 (1)列名 AS 别名 (2)列名 别名 (3)别名 = 列名 派生列:表达式 消除重复行: DISTINCT 列名列表 限制返回行的数量: TOP n [PERCENT] 列名列表 5.2.1 基本的SELECT语句 【例5-1】查询学生表,输出所有学生的详细信息。 SELECT * FROM 学生 【例5-2】查询学生表,输出所有学生的学号和姓名。 SELECT 学号 AS 学生学号,姓名 学生姓名, 查询日期=GetDate() FROM 学生 【例5-4】查询学生表,输出所有学生的学号、姓名、以及查询日期和时间,并分别使用“学生学号”,“学生姓名”,“查询日期”作为别名。 【例5-3】查询学生表,输出所有学生的学号、姓名、以及查询日期和时间,在“查询日期和时间”列前输出常量“查询日期和时间”。 SELECT 学号,姓名 FROM 学生 SELECT 学号,姓名,'查询日期和时间',GetDate() FROM 学生 5.2.1 基本的SELECT语句 【例5-5】查询学生表,输出学生所在的班级,每个班级只输出一次。 SELECT DISTINCT 班级 FROM 学生 【例5-6】查询学生表,输出表中前三名学生的详细信息。 SELECT TOP 3 * FROM 学生 【例5-7】查询学生表,输出表中前30%学生的详细信息。 SELECT TOP 30 PERCENT * FROM 学生 5.2.2 使用INTO子句 使用INTO子句可以把查询结果插入到一个新的表中 SELECT 列表达式 INTO 新表名 FROM 表名与视图名列表 WHERE 查询条件 使用INTO子句,应注意以下几点: (1)新表是数据库中没有存在的表。 (2)新表中行和列是由查询结果集决定的。 (3)使用该子句时,用户必须有在数据库中建立表的权限。 (4)如果新表的表名以“#”开头,则生成的是一个临时表。 【例5-8】查询学生表,将所有学生的学号和姓名插入到“学生1”表中。 SELECT 学号,姓名 INTO 学生1 FROM 学生 5.2.3 使用WHERE子句 WHERE子句确定查询条件,用来从表与视图中筛选出满足条件的数据行 。 SELECT 列表达式 FROM 表 WHERE 条件表达式 条件表达式中用到的运算符: 5.2.3 使用WHERE子句 1.比较搜索条件 【例5-9】查询学生表,输出“网络技术101”班学生的详细信息。 SELECT * FROM 学生 WHERE 班级='网络技术101' 2.范围搜索条件 【例5-10】查询学生表,输出1992年出生的学生的详细信息。 SELECT * FROM 学生 WHERE 出生日期 BETWEEN '1992-01-01' AND '1992-12-31' 5.2.3 使用WHERE子句 3.列表搜索条件 【例5-11】查询学生表,输出学号为“10101001”、“10102001”、“11101001”的学生的详细信息。 SELECT * FROM 学生 WHERE 学号 IN('10101001','10102001','11101001') 5.2.3 使用WHERE子句 4.模式匹配搜索条件 LIKE运算符用于将指定的列的值与模式字符串进行匹配运算,其语法格式如下: <列名> [NOT] LIKE <‘模式字符串’> [ESCAPE ‘<换码字符>’] 其中: ◇模式字 ... ...