(
课件网) 数据库技术与应用 数据库技术与应用教材编写组 第4章 数据库查询 查询概述 基本查询 嵌套查询 连接查询 嵌套查询、连接查询 * 问题提出 为什么要查询数据? 如何实现查询? * 4.1 查询概述 4.1.1 图形界面的菜单方式 4.1.2 查询语句SELECT * 4.1 查询概述 在数据库应用中,最常见的操作是数据查询,它是数据库系统中最重要的功能,也是数据库其他操作(如统计、插入、删除及修改)的基础。无论是创建数据库、还是创建数据表等最终的目的都是为了使用数据,而使用数据的前提是需要从数据库中获取数据库所提供的数据信息。 * 4.1.1 图形界面的菜单方式 在SSMS图形界面中,通过“对象资源管理器”可以直接查询数据表中的数据。 * 4.1.2 查询语句SELECT 数据查询语句SELECT的基本框架是: SELECT-FROM-WHERE 语法格式: SELECT select_list [INTO new_table ] FROM table_source [ WHERE search_condition ] [ GROUP BY group_by_expression ] [ HAVING search_condition ] [ORDER BY order_expression [ASC|DESC ]] * 需要哪些列 从哪些表 根据什么条件 4.2 基本查询 4.2.1 简单查询 4.2.2 条件查询 4.2.3 查询结果处理 * 4.2.1简单查询 简单查询是指SELECT语句只包含SELECT子句和FROM子句的操作,涉及的对象是单表中的列,即在查询过程对一张表的列进行操作。 语法格式: SELECT [ALL | DISTINCT] [TOP n [PERCENT]] select_list FROM table_name 其中: ALL表示输出所有记录,包括重复记录。 DISTINCT表示输出无重复结果的记录。 TOP n指定返回查询结果的前n行数据。 select_list中的选项可以是:*、字段名、表达式或函数。 * 4.2.1简单查询 查询全部列或指定列 SELECT ALL * FROM st_info SELECT all st_name FROM st_Info 消除重复行或定义列别名 SELECT DISTINCT St_name FROM st_Info SELECT DISTINCT st_id,St_name FROM st_Info SELECT st_name as 姓名,st_sex AS 性别 FROM st_Info SELECT st_name 姓名,st_sex 性别 FROM st_Info * 4.2.1简单查询 限制结果集的行数 例4.5:对St_info表选择姓名、性别查询,返回结果集中前5行。 SELECT top 5 st_name AS 姓名, St_Sex as 性别 FROM st_info 又如: SELECT top 3 St_id FROM s_c_Info SELECT top 20 PERCENT St_id FROM s_c_Info * 4.2.1简单查询 计算列值 例4.6 按120分计算成绩并显示S_C_Info表中前5行学生的成绩情况。 SELECT TOP 5 St_ID 学号, C_No 课程编号, 成绩120=Score*1.2 FROM S_C_Info * 4.2.1简单查询 计算列值 使用聚合函数 是对一组值执行计算并返回单一的值的函数 常用聚合函数 * 函 数 功 能 函 数 功 能 AVG(<字段名>) 求一列数据的平均值 MIN(<字段名>) 求列中的最小值 SUM(<字段名>) 求一列数据的和 MAX(<字段名>) 求列中的最大值 COUNT(*) 统计查询的行数 ?什么是聚合函数 4.2.1简单查询 例4.7–4.8:分别查询St_Info表的学生总数和平均年龄. 查询学生总数(使用COUNT(*) ) SELECT COUNT(*) AS 总数 FROM St_Info 查询学生的平均年龄(使用AVG) SELECT AVG(YEAR(GETDATE())- YEAR(Birthdate )) AS 平均年龄 FROM St_info * 4.2.2 条件查询 语法格式: WHERE search_condition 条件运算符: 比较运算 逻辑运算 字符匹配运算 范围比较运算 空值比较运算 * 4.2.2 条件查询 语法格式: WHERE search_condition * 4.2.2 条件查询 比较运算 例4.12,查询St_Info表中1998年以前出 ... ...