SQL|select查询:海量结构数据的行、列筛选、计算、分组、排序

SQL语句
298
0
0
2022-04-27
标签   SQL语句

数据是信息社会重要的资源,许多重大决策都离不开数据和信息的支持。如果只是小规律的数据,用简单的文件或表格就行了,但无法应付以百万计的数据处理。针对结构化数据的数据库技术便应运而生。

数据处理包括数据的生成、处理与使用。数据生成主要由数据的增、改、删。数据的使用主要是数据查询、生成视图与报表。表中结构数据的增、改、删在SQL语言中,用Insert、update、delete语句完成,数据查询使用select语句。

在关系数据库中,数据查询select语句也就是用于数据的筛选。从数据源中筛选需要的行、列,并可以有适当的计算、分组、排序。数据源可以是多个数据库的多个表或视图。例如,有3个关系型数据库,每个数据库有5个表,每个表有10列,1万行记录,则需要处理的数据是3*5*10万行,10*3*5*10万个数据项。数据库中列的筛选直接指定,行的筛选通过逻辑条件去判断选取。

在数据处理中,select语句的完整语法比较复杂。基本的语句通常包含五个部分:

part

KeyWord

variables

功能

SELECT

select_list

列筛选

FROM

table_list

数据源

WHERE

search_conditions

行筛选

GROUP BY

group_by_list

分组

HAVING

search_conditions

按分组做行筛选

ORDER BY

column_name,column_name ASC|DESC;

排序

说明:

I select_list可以是包含column_name(字段名)的简单表达式或以column_name(字段名)为参数的简单函数;也可以添加DISTINCT关键词(位置是select后)用于返回唯一不同的值。通配符"*"表示全部列;

II table_list可以是不同数据库的表或视图,数据库与表或视图以点“."符号连接;

III search_conditions可以使用的关系运算符有:

运算符

描述

=

等于

<>

不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=

>

大于

<

小于

>=

大于等于

<=

小于等于

BETWEEN

在某个范围内

LIKE

搜索某种模式

IN

指定针对某个列的多个可能值

补充说明

I 关系表达式可以用or、and连接。

II LIKE后的表达式可以使用以下通配符:

通配符

描述

%

替代 0 个或多个字符

_

替代一个字符

[charlist]

字符列中的任何单一字符

[^charlist]

or

[!charlist]

不在字符列中的任何单一字符

如:

WHERE City LIKE 'ber%';
WHERE City LIKE '%es%';
WHERE City LIKE '_erlin';
WHERE City LIKE 'L_n_on';
WHERE City LIKE '[bsp]%';
WHERE City LIKE '[a-c]%';
WHERE City LIKE '[!bsp]%';

举例说明一个查询实例:

MyTest数据库的表Orders:

Product

Shops

Sales

A001

caraford

100

A001

caraford

100

A002

caraford

80

A002

caraford

80

A003

caraford

90

A004

wanda

200

构造查询表达式:

SELECT ProductID, SUM(Sales) As TotalSales
FROM Orders
WHERE Shops = N'caraford'
GROUP BY ProductID
HAVING SUM(Sales) > 150
ORDER BY ProductID;

注:SUM()是可以使用在SQL中的函数;

查询结果:

ProductID

TotalSales

A001

200

A002

160

参考:

http://www.shouce.ren/api/view/a/6032

-End-