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