您现在的位置:主页 > 技术中心 > 数据库技术

轻松掌握数据库常用的子句、关键词和函数

来源:网络整理 责任编辑:admin 发表时间:2013-07-01 11:30 点击:

SELECT语句具有种类繁多的各类选项,这些选项可以用来控制数据返回的方式。这些选项以子句、关键词和函数的形式存在。

子句是一种修改结果的语句。子句不是必要的语句但它对数据的内容及其显示进行了提炼。WHERE子句就是这样的子句。

关键词触发数据库的内在功能。这些关键词在有时甚至是查询所必需的。例如“INSERT INTO table_name (column1) VALUES (‘data1’);”语句中的INTO和VALUE就是如此。我们将了解DISTINCT关键词,它能触发一些非常有用的可选功能。

下面总结了一些最常用的子句、关键词和函数。然后我会对每一部分举例说明。

ORDER BY – 按照指定列排序返回结果的子句

DISTINCT – 只返回结果集合内唯一行的关键词

COUNT -- 返回匹配查询的数据行总数数值的函数

AVG – 该函数返回指定列的平均值

SUM –该函数把指定的列中的数字加起来

MIN – 该函数返回列中最小的非NULL值

MAX –该函数返回列中的最大值

GROUP BY – 按列汇集查询函数结果的子句

用ORDER BY对查询结果排序

ORDER BY子句让数据库对查询结果排序,这样你就无须自己编写应用程序进行“手工”排序了。ORDER BY子句必须放在查询语句的结尾。其基本用法如下:

SELECT * FROM Contacts ORDER BY first_name;

你可以随意在任何选择语句中使用ORDER BY 子句返回多列结果。你还可以用它连接其他子句:

SELECT first_name, last_name FROM Contacts
WHERE first_name BETWEEN ‘a’ AND ‘k’ ORDER BY last_name;

你可以对多列数据排序。优先顺序按从左到右依次降低,所以查询语句中各列的排列顺序很重要。

SELECT * FROM Contacts ORDER BY company, last_name, first_name;

查询结果默认按数字或者字母的升序排序。你可以在ORDER BY 子句后面加上DESC关键词改成降序排列。在下面的例子中,最高的net_amount排在最先(降序)。假如两行或者两行以上数据都包含了同样的 net_amount值,那么同行中last_name值在字母表中最先出现的排先,因为last_name一列还是按照升序排序的。

SELECT * FROM Sales ORDER BY net_amount DESC,
last_name, first_name;

在按照定义的列名排序以后,大多数数据库随后将按照数据表内的第一列排序然后顺序向右再排序。具体的实现各有变化,因此,如果排序在应用中比较重要那么你应该明确地定义所要排序的列。

另外一值得注意的问题是,采用ORDER BY子句(以及WHERE子句),你正在用来排序结果的数据列并不一定得是返回结果集合的一部分。只要所有引用的列都在数据表内存在则下例完全有效:

SELECT company, first_name, net_amount FROM Sales
ORDER BY start_date, last_name;

DISTINCT返回不重复结果

DISTINCT关键词只返回结果集合内不重复的数据行。例如,有时你可能需要找出Sales表内的公司,但是你又不想看见每个条目。于是你可以用DISTINCT对应每一公司名返回一行数据:

SELECT DISTINCT company FROM Sales;

在使用DISTINCT时,它适用于所有的请求列。如果你打算列出表内的所有销售人员和他们所代表的公司而非每一销售记录,那么你可以使用下列语句。注意,这样操作还可能返回同一公司的若干条目等等。

SELECT DISTINCT company, last_name, first_name FROM Sales;

你还可以在对结果缩小范围和进行排序时结合SELECT语句使用DISTINCT。为了确定显示的内容,数据库首先会证实精练的请求是否匹配数据行,然后应用DISTINCT功能。在全部结果集合都得以确定之后即处理ORDER BY子句。如下例所示,只有net_amount大于100的数据行才被返回。由于DISTINCT保留遇见的第1个匹配查询条件的数据行而丢弃其他匹配行,所以ORDER BY语句所引用的net_amount看起来就好象产生了随机的结果。

SELECT DISTINCT company, last_name,
first_name FROM Sales WHERE
net_amount > 100 ORDER BY company,
net_amount;

函数应用逻辑

返回单一值的函数称做聚集函数(aggregate function)。通过应用程序访问下列聚集函数的结果时,包含结果的“字段名”就是你所使用的实际函数。例如,在分析你的数据库结果时,结果数组的键值可能如下所示:

$keyname = “COUNT(*)”;
$resultkey = “AVG(net_amount)”;

COUNT

COUNT函数计算出结果集合中的数据行数。和其他函数一样它接受一个参数。以下的基本示例能告诉你数据表内的行数:SELECT COUNT(*) FROM Sales;

你也可以用它来计算任何结果集合中的行数。

SELECT COUNT(*) FROM Sales WHERE net_amount > 100;

如果你想看看某特定列有多少行包含非空值,那你不妨对

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    表情:
    用户名: 验证码:点击我更换图片

    推荐热点

    • SQL注入攻击及其防范检测技术研究
    • Sql-Server应用程序的高级Sql注入
    • 学生信息管理系统数据库原理课程设计报告
    • 经验总结:登录和优化IBM DB2的执行速度
    • MySQL服务器的启动与停止
    • 浅谈数据库的接口技术
    • 学习数据库知识之 SQL 操作标记
    • 如何在SQL Server和MySql中创建临时表
    • 有关Sybase系统的数据同步与复制问题
    ?? - ?? - ÝřŝžľŘÝź - TAGąęÇŠ - RSSśŠÔÄ - ??
    Copyright © 2004-2024 上海卓卓网络科技有限公司