第一讲 数据查询优化.

Slides:



Advertisements
Similar presentations
颐高集团项目中心 海亮地产开发模式研究报告. 目 录 目 录 第四部分:海亮地产高周转模式执行 第二部分:海亮地产高周转模式原因 第三部分:海亮地产高周转模式内涵 第一部分:海亮地产企业背景 第五部分:海亮地产高周转支撑体系.
Advertisements

第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Data type P64 ‘’ 转义字符 P67 P68 EXE,选出某个教师的学生中最新的一 个,要姓名, ID (,LIMIT ) EXISTS,NOT EXISTS P409 Q,EXISTS 和 in 的区别( 1000 ,查询结果)
Java 技术与应用 数据库应用 ( 第 14 章 ) 西安交大 卫颜俊 2008 年 12 月 电子信箱: QQ: 网站 : /java.
授課老師 鍾 明志 學生 施淑容 699D0002 楊淑理 699D0009 吳婕瑄 699D0014 李明樺 699D0001 陳宗福 699D0015 吳善愉 699D0021 公關專家不告訴你的讀心術 商業心理學 報告 張潛 著 / 2007 / 智言館 許多判斷,只是偏見的重整。 美國哲學及心理學家.
第八单元 数据库MySQL应用基础 MySQL数据库应用基础 MySQ数据库操作使用 Mysql管理工具 第25章 数据库的增加/删除操作
第6章 数据库管理软件Access 年秋.
目 录 第 1 章 数据库技术基础 第 2 章 SQL Server基础 第 3 章 数据库管理 第 4 章 查询和视图
SQL的简单查询.
第5章 关系数据库标准语言SQL 主讲:张丽芳.
十一 ASP对数据库的访问.
第2章 SQL语言初步 2.1 SQL的基本概念 2.2 基本表、索引的创建、删除和修改操作 2.3 SQL的查询语句——SELECT
第2讲 Transact-SQL语言.
系统简介 理财顾问 业务 是基于通信平台的技术优势,整合《理财周刊》、第一理财网、乾隆集团等合作伙伴提供的理财产品内容和权威的理财专家资源,以集中式呼叫中心为主的服务方式,让普通百姓可以享受到快捷、全面、专业、权威的资讯及投资理财的服务平台。
第5章 索引及视图操作 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社 编著 陈国秦 万程 邢一鸣
数据库技术 实践.
高等院校计算机教材系列 数据库原理与应用(第2版) 任课教师:刘雅莉
Chap 11 SQL基本查詢指令.
第8章 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
第8章 设计数据库应用网站 本章讲述的主要内容 8.1 数据库基础知识 8.2 使用数据库系统 8.3 SQL查询基础
第3章 SQL语言初步 2017/3/14.
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
第3章 SQL的基础知识 数据库管理及应用 3.1 SQL简介 3.2 SQL的数据模型 3.3 标识符 3.4 使用SQL语句管理数据库
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
文科计算机小公共课规划教材 Access 程序设计.
第三章 管理信息系统的技术基础 主要内容: 数据处理 数据组织 数据库技术 4. 计算机网络.
电视教育课 【5】 小学生行为习惯养成教育.
计算机应用基础 上海大学计算中心.
第3章 数据查询与SQL命令.
第5讲 分组查询 IBM Confidential.
查询数据.
第五讲 利用视图进行查询优化.
關聯式資料庫.
第六章 學習SQL語言.
9 SELECT敘述的進階查詢 9-1 SQL的多資料表查詢 9-2 合併查詢 9-3 集合運算查詢 9-4 子查詢
課程名稱:資料庫系統 授課老師:李春雄 博士
Chapter 12 T-SQL 語法與 ASP.NET.
第9讲 Hibernate查询语言HQL.
第八章 利用SELECT查詢資料.
彰化縣政府補助辦理網頁設計資料庫應用班 ASP與資料庫介紹 建國技術學院資管系 饒瑞佶.
第3章 MySQL教學範本 主從式資料庫系統 - CH3.
实验 2:MS Access QBE Query使用
第九章 進階的查詢技巧.
MySQL 結構化查詢語言 MySQL.
第十七章 資料庫SQL 17-1 SELECT 17-2 INSERT 17-3 UPDATE 17-4 DELETE.
資料庫管理(Access 2003) 第五章 利用查詢來 統計與分析資料 許欽嘉 老師.
iRepor报表设计基础 IReport安装 普通实体报表 数据结果集报表 工作流主从报表 饼状图报表 柱状图,曲线图报表 条形码报表
SQL Injection (資料隱碼) 學生:a 吳倩瑜 指導教授:梁明章.
数据库技术.
第20章 MySQL数据库.
数据库技术.
第18章 SQL結構化查詢語言 18-1 SQL語言的基礎 18-2 SQL的查詢指令 18-3 SQL子查詢與合併查詢.
資料庫系統 李翊豪 2017/12/21 Reference
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
3. SQL语言的应用 3.1 SQL历史和优点 3.2 数据查询 3.3 数据操纵.
学习目标 1、什么是表连接 2、表连接类型 3、表连接区别.
数据透视表与SQL典型应用 ——数据分析人士必杀技
查询与视图 蔡海洋.
第14章 SQL数据查询与操纵 内容提要 本章知识点
SQL查询语句 蔡海洋.
本讲内容 SQL 概述 SQL 的查询功能 SQL 的操作功能 SQL 的定义功能.
8 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
数据分析工具 第10节.
ORACLE之SQL*PLUS的格式化输出
模块六 数据库管理软件——Access 2010.
資料庫應用與實作 一到六章重點、習題.
第4章 数据查询.
第 9 章 查詢資料- 善用 SELECT 敘述.
Presentation transcript:

第一讲 数据查询优化

工作目标 1. 培养职业能力目标 2.培养专业知识目标 3.培养职业素质能力 (1)具有数据库查询分析优化的能力; (2)能对数据表设计连接查询、分组统计查询、嵌套查询等复杂查询; (3)具备根据数据组织设置视图和索引,优化查询速度的能力。 2.培养专业知识目标 (1)掌握排序、连接、分组和嵌套等查询功能应用; (2)掌握聚集函数的应用; (3)掌握视图和索引的概念、作用和创建方法。 3.培养职业素质能力 (1)培养正确的逻辑思维习惯; (2)提高信息搜索、语言表达素质。

基于工作过程化的学习情境 工作任务 信息收集 理论学习 讨论方案 制定计划 任务准备 过程实施 质量评价 资 讯 实现商品采购入库管理 1 资 讯 决策与计划 实 施 工作任务 信息收集 理论学习 实现商品采购入库管理 1 实现产品采购退货管理 2 讨论方案 制定计划 按条件查询商品采购数据 3 任务准备 过程实施 统计商品采购数据信息 4 商品采购数据查询优化 5 检查与评价 质量评价

通过深入企业调研,我们已经了解了郑州新开普电子股份有限公司的“企业商品管理系统”的需求,并发现在企业中小型数据库系统开发中存在以下问题: 1.数据库在查询上不仅仅是简单查询,还涉及到条件限制,函数计算,分组,排序等等复杂的查询,如何使用复杂查询的知识实现这些操作。 2.查询所需要的数据集合往往是来自于不同的表中,还需要多表联接查询来完成这样操作。 3.对于经常用到的复杂数据查询可以使用合适的方式来简化其操作,并且保证数据的安全性和独立性。 4.为了提高海量数据的查询速度,提高操作效率,如何通过优化数据在数据库中的物理结构来完成。

商品采购管理系统的概念模型分析 商品采购管理系统的实现涉及到: 数据的复杂查询; 多表数据的查询。 通过分析该系统的概念模型,能够了解查询所涉及到的实体以及实体和实体之间的联系。 返回目录

概念模型分析 商品采购管理系统的E-R模型如图所示: 商品采购管理系统的E-R模型 单位 价格 商品 n n n m 1 1 用户 采购员 商品编号 商品名称 单位 价格 商品 n n n 采购 采购的商品类别 订购 存储 联系电话 m 1 1 用户 采购员 仓库 用户编号 采购员编号 用户名称 仓库名称 负责人 商品采购管理系统的E-R模型

通过对商品采购管理系统开发的资讯,将整个开发过程分为6讲进行讲解: 学习情境3 商品采购管理系统数据库开发 通过对商品采购管理系统开发的资讯,将整个开发过程分为6讲进行讲解: 第一讲 数据查询优化 第二讲 数据排序、分组和统计 第三讲 连接查询 第四讲 嵌套查询 第五讲 利用视图进行查询优化 第六讲 利用索引进行查询优化

第一讲 数据查询优化

商品采购管理系统,具有商品信息查询等基本管理功能。 学习情境引入 商品采购管理系统,具有商品信息查询等基本管理功能。 通过这一系统,企业可以对所有的商品进行快速查询、以及较复杂的查询,能够更快地得到数据,提供系统查询的速度。

应用SELECT语句对商品信息进行查询 建立数据库的目的是为了查询数据。因此,可以说数据库查询是数据库的核心操作。SQL语言提供了SELECT语句进行数据库的查询,该语句具有灵活的使用方式和丰富的功能。其一般格式为: SELECT [ALL | DISTINCT ] <目标列表达式> [, <目标列表达式>…] FROM <表名或视图名 [别名]> [, <表名或视图名>[别名] ]… [WHERE <条件表达式>] [GROUP BY <分组表达式> [HAVING <条件表达式> ] ] [ORDER BY <排序列名> [ASC | DESC ] ]; 其中,SELECT子句指定要显示的属性列。FROM子句指定查询对象(基本表或视图)。WHERE子句指定查询条件。GROUP BY子句用于对查询结果按指定列的值分组,该属性列相等的元组为一组。HAVING子句用于筛选出只有满足指定条件的组。ORDER BY子句用于对查询结果表按指定列值的升序或降序排序。 计算机不可能直接处理现实世界中的具体事物,所以人们必须实现把具体事物转换成计算机能够处理的数据。 在数据中用 数据模型 这个工具来抽象、表示和处理 现实世界的数据和信息。 10

[INTO new_table_name] FROM table_list [WHERE search_conditions] SELECT语句 SELECT select_list [INTO new_table_name] FROM table_list [WHERE search_conditions] [GROUP BY group_by_list] [HAVING search_conditions] [ORDER BY order_list[ASC|DESC]] [COMPUTE compute_condition [BY column]] 指定查询结果集的列 指定要查询的表或视图 选取数据源的行信息 对结果集进行分组汇总 对结果集进行排序 对结果集进行明细汇总

1. 选择所有字段 2. 选择部分字段 3. 不显示重复记录 4.TOP关键字 5. 使用WHERE子句筛选查询结果

1.选择所有字段 使用T-SQL语言分别显示Sales数据库中的员工表employee、商品表goods、销售表sell_order表和部门表department中的所有记录。 SELECT * FROM employee SELECT * FROM goods SELECT * FROM sell_order SELECT * FROM department

2.选择部分字段 在很多情形下,用户只对一个表中的部分列的数据感兴趣。这时可以在“查询结果列表”中,按用户需要的顺序指定所要的列来实现。 查询employee表中所有记录的name、sex字段. SQL语句如下: select name , sex from employee

3.不显示重复记录 DISTINCT关键字就是用来从查询的结果集中去掉重复的记录。如果用户没有指定DISTINCT关键字,那么系统默认将返回符合条件的所有记录,其中包括重复的记录。 在employee表中,显示没有重复记录的“name”字段的信息,SQL语句如下: Use Sales select distinct name from employee

4.TOP关键字 【案例3.4】查询employee表的前三条记录,SQL语句如下: Use Sales select top 3 * from employee 【案例3.5】查询employee表的前50%的记录,SQL语句如下: Use Sales select top 50 percent * from employee

使用WHERE子句筛选查询结果 查询满足指定条件的元组可以通过WHERE<条件表达式>子句实现。条件表达式是操作数与运算符的组合,操作数可以包括常数、变量和字段等。常用运算符如表3-1所示。 (1)比较运算: (2)确定范围: (3)集合运算: (4)字符匹配: (5)空值判断: (6)逻辑运算:

表1 常用运算符 查询条件 运算符 比较 =,>,>=,<,<=,!=,<> 确定范围 表1 常用运算符 查询条件 运算符 比较 =,>,>=,<,<=,!=,<> 确定范围 BETWEEN…..AND…...,NOT BETWEEN….AND… 集合运算 IN,NOT IN 字符匹配 LIKE,NOT LIKE 空值判断 IS NULL,IS NOT NULL 逻辑运算 AND,OR,NOT

【案例3.7】查询订单号为H001,H002,H003的订单信息。 (1)比较运算 【案例3.6】查询库存量少于10的商品编号和商品名称。 分析:库存数量小于10,要用比较运算符<在WHERE子句中。 SELECT 商品编号,商品名称 FROM 商品信息表 WHERE 库存数量<10; (2)确定集合 【案例3.7】查询订单号为H001,H002,H003的订单信息。 分析:只要订单号的值为H001,H002,H003中的任意一个即可,他们属同一属性的值,所以可以用集合IN。 SELECT * FROM 订单信息表 WHERE 订单号 IN (’H001’,’H002’,’H003’); 概念模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,另一方面它还应该简单、清晰,用户易于理解。 19

【案例3.8】查询商品售价在3000~4000元的商品名称、商品编号和库存数量。 (3)确定范围 【案例3.8】查询商品售价在3000~4000元的商品名称、商品编号和库存数量。 分析:3000 ~4000是一个范围,可以用BETWEEN … AND或用>=和<=来完成。 SELECT 商品编号,商品名称,库存数量 FROM 商品信息表 WHERE 商品售价 BETWEEN 3000 AND 4000; 或 WHERE 商品售价>=3000 AND 商品售价<= 4000; 概念模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,另一方面它还应该简单、清晰,用户易于理解。 20

(4)字符匹配 在实际应用中,用户有时候不能给出精确的查询条件,力图,用户要检索以字母C开始的订单号,找姓王的学生信息等。检索与给定的某些字符串相匹配的数据可以用LIKE关键字。LIKE关键字是一个匹配运算符,它与字符串表达式相匹配,字符创表达式被定义为字符串和通配符。其一般语法格式如下: [NOT] LIKE ‘<匹配串>’[ESCAPE’<换码字符>’] 其中, <匹配串>可以是一个完整的字符串,也可以含有通配符“%”和“_”。 %:代表任意长度的字符串; _:代表任意单个字符。

“%”通配符 “%”通配符能匹配0个或任意长度的字符串。 【案例3.10】在employee表中,查找姓“刘”的客户信息,SQL语句如下: Use sales select * from employee where name like '刘%‘ “_”通配符 “_”号表示任意多个字符,该符号只能匹配单个任意字符。 【案例3.11】在employee表中,查找姓“刘”且名字为两个字的客户信息,SQL语句如下: where name like '刘_'

“[ ]”通配符 在模糊查找中可以使用“[ ]”来查询一定范围之内的数据。“[ ]”符号用于表示一定范围内的单个字符,它包含两端数据。 【案例3.12】在employee表中,查询用户编号以’01’结尾并且开头数字位于0-2之间的客户信息。SQL语句如下: Use sales select * from employee where num like ‘E%[0-2]'

(5)空值查询 【案例3.13】查询“备注”为空的商品信息。 分析:空值判断要用IS NULL或IS NOT NULL。因本题是找备注为空的商品信息,所以要用IS NULL。 SELECT * FROM 商品信息表 WHERE 备注 IS NULL; 注意:IS是不能用“=”来代替的。

(6)逻辑运算 逻辑运算要用AND,OR和NOT。 【案例3.14】查询库存数量少于3并且售价低于4000元或成本价格低于3500元的商品编码和商品名称。 SELECT 商品编号,商品名称 FROM 商品信息表 WHERE 库存数量<3 and 商品售价<4000 or 成本价格<3500;

用OR进行查询 【案例3.16】在商品表goods中,查询商品编号是“01001”或“01002”的商品信息。SQL语句如下: Use sales select * from goods where g_num='01001' or g_num='01002' 用AND进行查询。

用AND进行查询 【案例3.17】在employee表中,查询性别是“女”且在姓名为“李四”的客户信息。SQL语句如下: Use sales select * from employee where e_sex='女' and name=‘李四’

使用IS NULL关键字查询没有赋值的行 【案例3.18】查询employee表中没有姓名的员工编号。 USE sales GO SELECT * FROM employee WHERE employee_name is NULL

总结 1.选取全部字段(*) 2.选取指定字段 3.设置字段别名:列表达式 [as] 别名 (三种方式) 4.过滤重复记录(DISTINCT) 5.返回全部记录(ALL 默认) 6.仅返回前面若干条记录(TOP) SELECT [TOP n [PERCENT]] 列名1[,…列名n] FROM 表名

总结 1.比较表达式作查询条件 表达式1 比较运算符 表达式2 2.逻辑表达式作查询条件 条件表达式 1 AND或OR 条件表达式 2 表达式1 比较运算符 表达式2 2.逻辑表达式作查询条件 条件表达式 1 AND或OR 条件表达式 2 或:NOT 条件表达式 3.使用BETWEEN关键字 表达式 [NOT] BETWEEN 表达式1 AND 表达式2 4.使用IN关键字 表达式 [NOT] IN (表达式1, 表达式2[,…表达式n]) 5.使用LIKE关键字(模糊查询) 表达式 [NOT] LIKE '格式串' 通配符: % _(下划线) [ ](封闭方括号) [^]