第8讲 数据表的查询 马秀麟 2012-11-15 2019/5/24.

Slides:



Advertisements
Similar presentations
数据结构的引入. 通讯录管理 社团机构管理 校园导航管理 通讯录管理 社团机构管理 校园导航管理.
Advertisements

第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
练一练: 在数轴上画出表示下列各数的点, 并指出这些点相互间的关系: -6 , 6 , -3 , 3 , -1.5, 1.5.
强力推进 积极探索 努力提升计算机审计实施水平 AO案例和审计方法撰写介绍 曹红珍.
第6章 数据库管理软件Access 年秋.
第六 章数据库访问页 6.1 数据访问页视图 6.2 创建数据访问页 6.3 编辑数据访问页 6.4 查看数据访问页 退出.
SQL的简单查询.
第5章 关系数据库标准语言SQL 主讲:张丽芳.
Access数据库知识 安丘市职业中专 雷云龙.
十一 ASP对数据库的访问.
第2讲 Transact-SQL语言.
中国古代诗歌散文欣赏 地点:福建福州 报告人:张华娟.
数据库技术 实践.
Chap 11 SQL基本查詢指令.
第8章 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
使用SQL Server Management Studio 进行数据查询与维护
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
(第11讲) Mysql 简介和创建新的数据库 本讲大纲: 1、MYSQL简介与概要 2、访问MYSQL的几种途径
文科计算机小公共课规划教材 Access 程序设计.
第6章 数据展示和输出功能 创建和使用报表 报表(Report)是以打印格式展示数据的一种有效方式。在报表中,可以展示图形、文字标题、字段数据或汇总数据等形式的信息,并可以控制各种数据的大小和外观。 利用报表,还可以按照数据之间的逻辑关系和所需的方式来组织数据之间的排版布局,对数据进行多级汇总和统计,或以图形方式展示数据。
第3章 数据查询与SQL命令.
Oracle数据库 Oracle 子程序.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
在PHP和MYSQL中实现完美的中文显示
Access 2007 進銷存管理系統實作 文魁資訊股份有限公司.
9 SELECT敘述的進階查詢 9-1 SQL的多資料表查詢 9-2 合併查詢 9-3 集合運算查詢 9-4 子查詢
第4章 数据的查询与更新 4.1 SQL查询语句格式 4.2 简单查询 4.3 统计查询 4.4 连接查询 4.5 嵌套查询
实验 2:MS Access QBE Query使用
第九章 進階的查詢技巧.
SQL Injection.
国家“十一五”规划教材 数据库原理与应用教程.
SPARQL若干问题的解释 刘颖颖
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第十七章 資料庫SQL 17-1 SELECT 17-2 INSERT 17-3 UPDATE 17-4 DELETE.
数据库基础 1.
資料庫管理(Access 2003) 第五章 利用查詢來 統計與分析資料 許欽嘉 老師.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
SQL Injection (資料隱碼) 學生:a 吳倩瑜 指導教授:梁明章.
第一章 函数与极限.
数据库技术.
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
第18章 SQL結構化查詢語言 18-1 SQL語言的基礎 18-2 SQL的查詢指令 18-3 SQL子查詢與合併查詢.
資料庫系統 李翊豪 2017/12/21 Reference
SQL 范引娣.
3. SQL语言的应用 3.1 SQL历史和优点 3.2 数据查询 3.3 数据操纵.
查询与视图 蔡海洋.
第14章 SQL数据查询与操纵 内容提要 本章知识点
SQL查询语句 蔡海洋.
附錄D Access應用說明 主從式資料庫系統 - 附錄D.
VB与Access数据库的连接.
Web安全基础教程
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第六章 Excel的应用 一、Excel的单元格与区域 1、单元格:H8, D7, IV26等 2、区域:H2..D8, HS98:IT77
第4章 Excel电子表格制作软件 4.4 函数(一).
第八讲 SQL语言之数据查询(2) 第三讲 SQL Server 2000 数据库技术.
3.16 枚举算法及其程序实现 ——数组的作用.
8 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
1.把下面的关系模式转化为E-R图 1)系(系号,系名,电话) 2)教师(工号,姓名,性别,年龄,系号)
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
Visual Basic程序设计 第13章 访问数据库
学习目标 1、如何对结果进行分组 2、分组函数的一些实用方法.
第十一章 查询.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
数据分析工具 第10节.
VB与Access数据库的连接.
WEB程序设计技术 数据库操作.
模块六 数据库管理软件——Access 2010.
使用ADO访问数据库 李宝智 BonizLee 课程 10564A
第4章 数据查询.
Presentation transcript:

第8讲 数据表的查询 马秀麟 2012-11-15 2019/5/24

一、查询的概念 1、查询的用途 2、查询的类型 查询是进行一切数据库操作的基础操作 (1)简单查询: (2)分组计算查询: 单表查询: 多表连接查询: (2)分组计算查询: 思路 分组字段 计算字段 相当于Excel的分类汇总 2019/5/24 马秀麟 2008-12-24

一、查询的概念 (3)带有参数的查询: (4)更新查询 (5)SQL查询: 插入查询, 修改查询, 删除查询 2019/5/24 马秀麟 2008-12-24

二、创建简单查询 1、单表查询 特点: 注意: 所有数据来源于一个数据表。主要任务是选择数据表,然后选择输出列和查询条件。例如: 输入到字段行中的信息会默认加方括号,因为计算机认为字段名要用方括号括起来。 输入到条件行中的内容会默认添加英文双引号,计算机认为字符串需要加英文双引号。 输入到条件行中的内容如果带有方括号,会被系统理解为参数查询,将提出问题,要求用户回答。 2019/5/24 马秀麟 2008-12-24

二、创建简单查询 2、多表连接查询 查询数据或条件来源于多个数据表。核心问题是建立多表之间的关系。如果相关表之间已经有了关系,则添加数据表时自动包含相关关系。如果相关表之间尚没有关系,则可以直接以鼠标拖动方式添加数据表之间的临时关系。 2019/5/24 马秀麟 2008-12-24

二、创建简单查询 3、查询条件的撰写 (1)单条件书写 普通比较式:> >= <= <>= 处于二者之间: between 数1 and 数2 字符串的模糊比较: like "*字符串*" 例如:查找姓名中包含“丽”字的同学:姓名 like "*丽*" 其中*为字符的通配符,可以代表任意字符。 2019/5/24 马秀麟 2008-12-24

二、创建简单查询 (2)常用函数式 字符串操作函数: 日期操作函数: 集合操作式:in (集合) 取左侧的字符:left(变量名,字符个数) 取右侧的字符:right(变量名,字符个数) 取从x处开始的n个字符:mid(变量名,x,n) 取“字符串1”在“字符串2”中的位置:instr(字符串2,字符串1) 日期操作函数: 取年份:Year(日期型变量) 取月份:month(日期型变量) 取日子:Day(日期型变量) 取当前日期:Date() 集合操作式:in (集合) 例如: 姓名 in ("王虎","崔里","马佳","赵兰") (提示:可以利用Access提供的表达式生成器工具)。 2019/5/24 马秀麟 2008-12-24

二、创建简单查询 (3)复合条件式书写 (4)条件式书写规范 not and or 所有函数的函数名后面必须有(),其参数如果是字段名,则需要把字段名用[]括起来。如果不是字段名,字符串常量用""标记,日期常量用##标记,数值型常量不需要标记。 2019/5/24 马秀麟 2008-12-24

三、计算查询 1、无条件计算查询 特点 例如 注意: 对表中的所有记录进行计算,没有约束条件。 计算学生表中的所有人的打工收入总和、平均打工收入。 注意: 通过“视图”-“总计”,打开“总计”行。 计算结果只有一条记录,其中有2个数字。 2019/5/24 马秀麟 2008-12-24

三、计算查询 2、有条件计算查询 特点 例如 对表中的部分记录进行计算,有约束条件。 计算学生表中的物理系、男生的打工收入总和、平均打工收入。 注意 总计行中的标记:条件,条件,总计,平均值。 计算结果只有一条记录,其中有2个数字。 2019/5/24 马秀麟 2008-12-24

三、计算查询 3、分组计算查询 特点 例如 对表中的记录先按照某个字段分组,然后进行计算。 分别求出学生表中每个单位的学生的打工收入总和、平均打工收入。 注意 总计行中的标记:分组,条件,总计,平均值。第一个标记“分组”,表示按照单位分组。强调:分组字段应该标记为显示状态,以便说明该行的统计结果属于哪个单位。 计算结果有多条记录,每行有2个数字,说明其中一个单位的情况。 2019/5/24 马秀麟 2008-12-24

三、计算查询 4、查询列带有计算式的计算 特点: 例如 对表中的特定列先计算,然后输入结果。 分别查询学生表中每位学生的总收入(打工收入+生活补贴)、年龄。 2019/5/24 马秀麟 2008-12-24

四、SQL查询语言 1、什么是SQL 语言 含义 价值 Structure Query Language (结构化查询语言) 数据库的通用语言 2019/5/24 马秀麟 2008-12-24

四、SQL查询语言 2、SQL查询语句的一般格式 (1)语法 select <列名>,... from <表名> [where <条件式>] [into table <目的表>] [group by <分组列> ][Having <分组条件>] [Order by <排序列> asc/DESC] 需要大家注意的是:SQL语句的子句顺序基本不允许变化,请大家牢记上面的语句顺序。 2019/5/24 马秀麟 2008-12-24

四、SQL查询语言 spxxb.dbf(商品销售表) 售货员号 商品号 件数 单价 金额 001 AAA 10 1.00 002 BBB 23 3.00 003 30 20 2.00 CCC 40 004 DDD 4.00 11 15 12 14 17 2008-12-30

四、SQL查询语言 示例表2 update spxxb set 金额=单价*件数 shy.dbf(售货员表) 售货员号 售货员名 单位 住址 籍贯 001 王小丽 礼品部 海淀区 山东 002 马小明 五金部 西城区 004 崔大伟 东城区 河北 003 赵秀花 日用品部 2008-12-30

四、SQL查询语言 (3)案例 列出一个表中的所有信息: 列出表中的部分信息: 对字符串的模糊查询: 唯一性查询: Select * from spxxb 列出表中的部分信息: Select * from shy where 单位=‘礼品部’ Select 售货员号,姓名 from shy 对字符串的模糊查询: select * from shy where 姓名 like %丽%’ 唯一性查询: Select distinct 列名 from 表名 2008-12-30

四、SQL查询语言 2、计算查询 (1)统计函数 SQL语句常用的计算函数有五个:sum,count,max,min,avg. 2008-12-30

四、SQL查询语言 (2)普通计算查询示例 求出所有生意的总金额: SELECT sum(金额) from spxxb SELECT sum(金额) as 总金额 from spxxb 其中“as 总金额”说明金额以“总金额”作为SUM(金额)的别名。 2008-12-30

四、SQL查询语言 求出各笔生意的最大销售额: 求出各笔生意的最小销售额: 求出001号售货员经手的生意的总金额: SELECT max(金额) as 最大金额 from spxxb 求出各笔生意的最小销售额: SELECT min(金额) as 最小金额 from spxxb 求出001号售货员经手的生意的总金额: SELECT sum(金额) as 总金额 from spxxb where 售货员号="001" 求出商品CCC的总经营金额: SELECT sum(金额) as 总金额 from spxxb where 商品号="CCC" 2008-12-30

四、SQL查询语言 (3)简单分组查询: 求出每个售货员的销售额: SELECT 售货员号,sum(金额) as 总金额 from spxxb group by 售货员号 求出每种商品的销售额: SELECT 商品号,sum(金额) as 总金额 from spxxb group by 商品号 求出每种商品的最大经营额(一笔生意): SELECT 商品号,max(金额) as 最大额 from spxxb group by 商品号 求出每种商品被出售的次数: SELECT 商品号,count(*) as 次数 from spxxb group by 商品号 求每种商品被出售的次数,最大的生意额,总销售额: SELECT 商品号,count(*) as 次数,max(金额) as 最大额,sum(金额) as 总销售额 from spxxb group by 商品号 2008-12-30

四、SQL查询语言 3、嵌套查询 (1)嵌套查询的含义 所谓嵌套查询是指先对一个数据表进行查询,得到一个数据集,然后再让另一个查询依据这个数据集操作。例如:查找礼品部做的各笔生意。我们就可以先找出礼品部的售货员,然后把这些售货员做的生意列出来就可以了。也就是说,这种查询往往由两个或两个以上的子查询组成,先进行的查询我们称为内层查询,后出现的查询是外层查询。由于外层查询依据内层查询实现,因此一般的内层查询结果都只有一个字段。 在嵌套查询中,如果内层查询的值仅有一个,一般可用“=”号,如果有多个,一般用“IN”进行联系,表示“属于”。 2008-12-30

四、SQL查询语言 (2)简单嵌套查询实例 查找礼品部做的各笔生意: 查找河北人做的各笔生意: select * from spxxb where 售货员号 in ; (select 售货员号 from shy where 单位="礼品部") 说明:(划横线的为内层查询,因礼品部的售货员不止一人,故 in 不能变成 =) 查找河北人做的各笔生意: (select 售货员号 from shy where 籍贯="河北") 2008-12-30

四、SQL查询语言 (2)复杂嵌套查询实例 查找销售额在500员以上的售货员的姓名,单位: select 姓名,单位 from shy where 售货员号 in ; (select 售货员号 from spxxb group by 售货员号 having sum(金额)>=500) 查找作过三笔以上生意而且有一笔生意的金额超过200元的售货员的所有信息: select * from shy where 售货员号 in ; (select 售货员号 from spxxb group by 售货员号 having count(*)>=3 and max(金额)>=200) 查找销售金额最高的那笔生意: select * from spxxb where 金额 = (select max(金额)from spxxb) 2008-12-30

四、SQL查询语言 4、连接查询 (1)问题的提出: 如果我们想列出礼品部的人员做的各笔生意,要求显示单位、姓名、商品号、件数和金额。由于要显示的字段处在不同的表中,显然使用上面介绍的命令是不能完成的。 引入一个多表连接的命令,即通过一个语句把两个表连接起来。一般说来,两个表的连接不能胡乱联系,必须通过一个特殊的连接字段来联系。 因此,让商品销售表与售货员表通过售货员号连接起来,这样才能保证数据的正确性,不致于把马小明做的生意安到崔大伟身上。 2008-12-31 制作人:马秀麟

四、SQL查询语言 (2)命令格式: select <列名>,<列名>..... from<表名>,<表名> where <连接条件> and <普通条件> 需要注意的是: 如果使用的列在两个表中都存在,则必须在列名前加“表名.”加以说明。 from 后面的表名可以带盘符、路径,其他的表名信息处是表的别名,不许带盘符和路径。 对于连接后的表,也可以使用排序等功能。 2008-12-31 制作人:马秀麟

四、SQL查询语言 (3)实例 列出礼品部的人员做的各笔生意,要求显示单位、姓名、商品号、件数和金额。 SELECT 单位,姓名,商品号,件数,金额from spxxb,shy where spxxb.售货员号=shy.售货员号 and 单位="礼品部" 注意:划横线的语句为连接条件。 2008-12-31 制作人:马秀麟

四、SQL查询语言 列出山东籍的每个售货员的销售总额。要求显示单位,姓名,总金额,结果按单位和姓名升序排列 这个题目有一定的难度。由于在两个表中都没有售货员的销售总金额字段,我们怎么办呢? 实际上,对于本题,我们可以分两步走: 首先利用分组查询创建一个临时表,存放售货员号和总金额;然后再让售货员表与这个临时表相连接。 select 售货员号,sum(金额) as 总金额 from spxxb into table c:\ttt group by 售货员号 select 单位,姓名,总金额 from ttt,shy where ttt.售货员号=shy.售货员号 and 籍贯="山东" order by 单位,姓名 这种通过几步来完成一个任务的策略希望同志们能够掌握。 2008-12-31 制作人:马秀麟