第五章 数据查询(二)
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都分为一组,然后把这些相同组对应的分数值再使用前面的聚合函数取平均值(最大值、最小值或者参考人数统计)。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Yii框架是一個開源的PHPWeb應用程式框架,提供了眾多的工具和元件,簡化了Web應用程式開發的流程,其中資料查詢是其中一個重要的元件之一。在Yii框架中,我們可以使用類似SQL的語法來存取資料庫,從而有效率地查詢和操作資料。 Yii框架的查詢建構器主要包括以下幾種類型:ActiveRecord查詢、QueryBuilder查詢、命令查詢和原始SQL查詢

CakePHP是一個流行的PHP框架,它提供了方便的ORM(物件關聯映射)功能,使得查詢和更新資料庫變得非常容易。本文將介紹如何在CakePHP中進行資料查詢與更新。我們將從簡單的查詢和更新開始,逐步深入,了解如何使用條件和關聯的模型來更複雜地查詢和更新資料。基本查詢首先,讓我們來看看如何進行最簡單的查詢。假設我們有一個名為「Users」的資料表,並且我們想要

MySQL與Python:如何實現資料查詢功能近年來,資料的快速成長使得資料查詢與分析成為了各個領域的重要任務。而MySQL作為一種廣泛使用的關聯式資料庫管理系統,配合Python這門強大的程式語言,可以提供快速、靈活的資料查詢功能。本文將介紹如何使用MySQL和Python來實作資料查詢功能,並提供程式碼範例。首先,我們需要安裝並設定MySQL和Python

如何使用MySQL和Ruby實作一個簡單的資料查詢分析功能在當今大數據時代,資料分析已經成為了許多領域中不可或缺的一部分。而在進行資料分析時,最常見的操作就是進行資料查詢。本文將介紹如何使用MySQL和Ruby程式語言來實作一個簡單的資料查詢分析功能,並且給出具體的程式碼範例。首先,我們需要安裝MySQL和Ruby的開發環境。 MySQL是一個開源的關聯式資料庫

如何使用PHP實現資料驅動和動態內容產生功能在網站開發中的許多場合,我們常常需要根據資料來動態產生內容。 PHP作為一種廣泛使用的伺服器端腳本語言,提供了豐富的功能和工具來實現資料驅動和動態內容生成。本文將介紹如何使用PHP來實現這些功能,並提供相應的程式碼範例。資料驅動資料驅動是指根據資料庫或其他資料來源中的資料來產生內容,以實現動態的展示和互動。 PHP提供

MySQL與TiDB的資料查詢和分析能力比較隨著資料量的不斷增長和應用場景的複雜化,資料查詢和分析能力成為各種資料儲存系統的核心競爭力之一。 MySQL作為關係型資料庫的代表之一,在單機環境下已經得到了廣泛的應用。然而,隨著業務規模的不斷擴大,MySQL在處理大規模資料以及高並發查詢等方面存在一定的限制。 TiDB則是一個新興的分散式資料庫系統,針對這些問題提

如何在Workerman中使用Oracle進行資料儲存與查詢摘要:Workerman是一款高效能的PHP開發框架,廣泛應用於即時通訊、即時聊天等網路應用。而Oracle是一種功能強大的關聯式資料庫,廣泛用於企業級應用。本文將介紹如何在Workerman中使用Oracle進行資料儲存與查詢,並提供具體的程式碼範例。一、安裝Oracle擴充在使用Oracle數

隨著網路技術的快速發展,資料的管理和處理變得越來越重要。而MySQL作為一種常用的資料庫管理系統,在資料處理方面也有不錯的表現,尤其是在資料的直接查詢技術方面表現得特別優秀。 MySQL是一種關聯式資料庫管理系統,它是開源軟體,由Sun公司維護,常用的資料庫開發、管理和維護,因為其性能優異、可擴展性強、穩定性高等優點而成為眾多開發者的首選。在使用MySQL進
