首页 数据库 mysql教程 第五章 数据查询(二)

第五章 数据查询(二)

Jun 07, 2016 pm 05:44 PM
数据查询

5.1 模糊查询 模糊查询提取的数据不一定的确切的,查询者对查询条件也是模糊的、大概的、不特别明确的。例如,只查询张姓学员的信息、只查询分数在60-83分之间的考试成绩、或者只查询北京上海广州地区的学员,这种查询不是指定某个人的姓名、一个具体的分数

5.1 模糊查询

  模糊查询提取的数据不一定的确切的,查询者对查询条件也是模糊的、大概的、不特别明确的。例如,只查询张姓学员的信息、只查询分数在60-83分之间的考试成绩、或者只查询北京上海广州地区的学员,这种查询不是指定某个人的姓名、一个具体的分数或者某个固定的地区,因此属于模糊查询。

  模糊查询可以使用我们前面已经介绍过的Like、通配符来进行。上一章讲述过的Is Null查询严格说也是一种模糊查询,模糊查询还有基于范围内的查询和在某些列举值内的查询。

5.1.1 使用Like进行模糊查询

  在前面我们已经介绍过使用Like来编写约束,Like运算符用于匹配字符串或字符串的一部分(称为子串)。由于该运算符只用于字符串,所以仅与char或varchar数据类型联合使用。

  在数据更新、删除或者查询的时候,依然可以使用Like关键字来进行匹配查找,例如,查找姓张的学员:

  Select * from Students Where Sname like '张%'

  或者查询不是八月份发行的A卡或者C卡:

  Select * from Card where ID Like '00[^8]%[A,C]%'

5.1.2 使用BetWeen在某个范围内进行查询

  使用关键字Between可以查找那些介于两个已知值之间的一组未知值。要实现这种查找,必须知道开始查找的初值和终值,这个最大值和最小值用单词And分开,例如:

  Select * from Score where Score Berween 60 and 80

  此外,Between 查询在日期范围的时候使用得比较多。例如,查询不在1992年8月1号到1993年8月1号之间订购的读书列表:

  Select * from Sales Where ord_date not Between '1992-8-1' and '1993-8-1'

5.1.3 使用In在列举值内进行查询

  查询的值是指定的某些值之一,可以使用带列举值的In关键字来进行查询。将列举值放在圆括号里,用逗号分开,例如查询北京、广州或者上海的学员姓名:

  Select Sname as 学员姓名 from Students Where Saddress in ('北京','广州','上海') Order by Saddress

  还可以把In关键字和Not关键字合起来使用,这样可以得到所有不匹配列举值的行。

5.2 SQL Server 中的聚合函数

  在查询中还会经常碰到的要求是取某些列的最大值、最小值、平均值等信息,有时候还需要计算出究竟查询到多少行数据项。这个时候,查询的“统计数据”是用户比较关心的,SQL Server 提供了“聚合函数”,聚合函数能够基于列进行计算,并返回单个值。

  SQL Server 提供了以下几种聚合函数。

  1. Sum

    Sum返回表达式中所有数值的总和,Sum只能用于数字类型的列,不能够汇总字符、日期等其他数据类型。要得到商务付款的总数,可执行以下查询:

    Select Sum(ytd_sales) From titles where type = 'business'

    注意这种查询只返回一个数值,因此,不能够直接与可能返回多行的列一起使用来进行查询,例如:

    Select Sum(ytd_sales) , Price from titles where type = 'business'

    将报告错误信息。但是,在一个查询中可以同时使用多个聚合函数。

  2. Avg

    Avg函数返回表达式中所有数值的平均值,香港服务器租用,Avg函数也只能用于数字类型的列。例如,成绩表中存在的数据项。

    要查询及格线以上的学员的平均成绩,语句如下:

    Select Avg(Score) as 平均成绩 from Score Where Score >= 60

  3. Max 和 Min

    Max返回表达式中的最大值,Min返回表达式中的最小值,它们都可以用于数字型、字符型以及日期/时间类型的列。

    例如,查询平均成绩、最高分、最低分的语句如下:

    Select Avg(Score) as 平均成绩 , Max(Score) as 最高分, Min(Score) as 最低分 from Score Where Score >= 60

  4. Count

    Count 返回提供的表达式中非空值的计数,Count可以用于数字和字符类型的列。

    另外,也可以使用星号(*)作为Count的表达式,使用星号可以不必指定特定的列而计算所有的行数。

    例如,查询及格人数的语句如下:

    Select Count(*) as 及格人数 From Score where Score >= 60

5.3 分组查询

5.3.1 使用 Group By 进行分组查询

  我们来看一下学员成绩表,成绩表中存储了所有课程的成绩。在这种情况下,可能就需要统计不同课程的平均成绩,也就是说,需要对不同的成绩首先按照课程来进行分组,分组以后再进行聚合计算,得到累计信息。

  这种情况应用很普遍,例如一个早餐店,早晨销售包子、油条、米粉等,中午的时候,就需要分类统计包子的销售金额、油条的销售金额、米粉的销售金额,这个时候就需要首先分类,然后在这个类别的基础上分别进行汇总和统计输出。

  再具体点,假设学员成绩表中有以下数据。  

  

  此时,要统计不同课程的平均分数。首先把相同的CourseID都分为一组,然后把这些相同组对应的分数值再使用前面的聚合函数取平均值(最大值、最小值或者参考人数统计)。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何在CakePHP中进行数据查询和更新? 如何在CakePHP中进行数据查询和更新? Jun 03, 2023 pm 02:11 PM

CakePHP是一个流行的PHP框架,它提供了方便的ORM(对象关系映射)功能,使得查询和更新数据库变得非常容易。本文将介绍如何在CakePHP中进行数据查询和更新。我们将从简单的查询和更新开始,逐步深入,了解如何使用条件和关联的模型来更复杂地查询和更新数据。基本查询首先,让我们看看如何进行最简单的查询。假设我们有一个名为“Users”的数据表,并且我们想要

Yii框架中的数据查询:高效地访问数据 Yii框架中的数据查询:高效地访问数据 Jun 21, 2023 am 11:22 AM

Yii框架是一个开源的PHPWeb应用程序框架,提供了众多的工具和组件,简化了Web应用程序开发的流程,其中数据查询是其中一个重要的组件之一。在Yii框架中,我们可以使用类似SQL的语法来访问数据库,从而高效地查询和操作数据。Yii框架的查询构建器主要包括以下几种类型:ActiveRecord查询、QueryBuilder查询、命令查询和原始SQL查询

MySQL与Python:如何实现数据查询功能 MySQL与Python:如何实现数据查询功能 Jul 31, 2023 pm 01:34 PM

MySQL与Python:如何实现数据查询功能近年来,数据的迅猛增长使得数据查询和分析成为了各个领域的重要任务。而MySQL作为一种广泛使用的关系型数据库管理系统,配合Python这门强大的编程语言,可以提供快速、灵活的数据查询功能。本文将介绍如何使用MySQL和Python来实现数据查询功能,并提供代码示例。首先,我们需要安装并配置MySQL和Python

如何使用 PHP 实现数据驱动和动态内容生成功能 如何使用 PHP 实现数据驱动和动态内容生成功能 Sep 05, 2023 am 10:46 AM

如何使用PHP实现数据驱动和动态内容生成功能在网站开发中的许多场合,我们常常需要根据数据来动态生成内容。PHP作为一种广泛使用的服务器端脚本语言,提供了丰富的功能和工具来实现数据驱动和动态内容生成。本文将介绍如何使用PHP来实现这些功能,并提供相应的代码示例。数据驱动数据驱动是指根据数据库或其他数据源中的数据来生成内容,以实现动态的展示和交互。PHP提供

如何使用MySQL和Ruby实现一个简单的数据查询分析功能 如何使用MySQL和Ruby实现一个简单的数据查询分析功能 Sep 21, 2023 pm 04:36 PM

如何使用MySQL和Ruby实现一个简单的数据查询分析功能在当今大数据时代,数据分析已经成为了许多领域中不可或缺的一部分。而在进行数据分析时,最常见的操作就是进行数据查询。本文将介绍如何使用MySQL和Ruby编程语言来实现一个简单的数据查询分析功能,并且给出具体的代码示例。首先,我们需要安装MySQL和Ruby的开发环境。MySQL是一个开源的关系型数据库

MySQL与TiDB的数据查询和分析能力对比 MySQL与TiDB的数据查询和分析能力对比 Jul 13, 2023 pm 11:07 PM

MySQL与TiDB的数据查询和分析能力对比随着数据量的不断增长和应用场景的复杂化,数据查询和分析能力成为各种数据存储系统的核心竞争力之一。MySQL作为关系型数据库的代表之一,在单机环境下已经得到了广泛的应用。然而,随着业务规模的不断扩大,MySQL在处理大规模数据以及高并发查询等方面存在一定的局限性。TiDB则是一个新兴的分布式数据库系统,针对这些问题提

如何在Workerman中使用Oracle进行数据存储与查询 如何在Workerman中使用Oracle进行数据存储与查询 Nov 07, 2023 am 09:23 AM

如何在Workerman中使用Oracle进行数据存储与查询摘要:Workerman是一款高性能的PHP开发框架,广泛应用于实时通信、即时聊天等互联网应用。而Oracle是一种功能强大的关系型数据库,被广泛用于企业级应用。本文将介绍如何在Workerman中使用Oracle进行数据存储与查询,并提供具体的代码示例。一、安装Oracle扩展在使用Oracle数

如何有效地进行MySQL整理 如何有效地进行MySQL整理 Mar 01, 2024 pm 03:30 PM

MySQL是一款开源的关系型数据库管理系统,被广泛应用于各种web应用和软件开发中。在实际项目中,数据库的整理工作通常是不可或缺的环节。本文将介绍如何有效地进行MySQL整理的方法,并提供具体的代码示例,帮助读者更好地掌握整理数据库的技巧。1.数据库备份在进行任何数据库整理操作之前,首先要做的就是备份数据库,以防止在整理过程中出现意外情况导致数据丢失。可以

See all articles