数据是信息社会重要的资源,许多重大决策都离不开数据和信息的支持。如果只是小规律的数据,用简单的文件或表格就行了,但无法应付以百万计的数据处理。针对结构化数据的数据库技术便应运而生。
数据处理包括数据的生成、处理与使用。数据生成主要由数据的增、改、删。数据的使用主要是数据查询、生成视图与报表。表中结构数据的增、改、删在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-