您的位置:首页 > 数据库 > MySQL

Mysql快速复习(三)--计算字段、处理函数、汇总数据

2016-11-20 16:27 363 查看

一:创建计算字段

字段:基本上与列(column)的意思相同,经常互换使用,不过数据库列一般成为列,而术语字段通常用在计算字段的连接上。
           只有数据库select 语句知道哪些select语句中哪些列是实际的表列,哪些列是计算字段。从客户机应用程序的角度看,
           计算字段的数据是以与其他列的数据相同的方式返回的。

1.拼接:将值联结到一起构成单个值,用concat()函数来拼接两个列,



2.使用RTrim删除



3.select拼接地址字段工作做得很好,但是它没有名字,只是一个值。尽在SQL查询工具中查看一下结果。一个未命名的列不能用于客户机应用中,因为客户机没有办法引用它
为了解决这个问题,SQL支持列别名。别名是一个字段或值得替换名。别名用AS关键字赋予。



4.执行算术计算



5.select语句可以省略from子句简单的反问和处理表达式。
如select 3*2 将返回6,select Trim('abc'); 将返回abc
而select Now()利用Now()函数返回当前日期和时间。

二:使用数据处理函数

大多数SQL支持下列函数:1.用于处理文本串 2.用于在数值上进行算数操作 3.用于处理日期和时间值并从这些值中提取特定成分 4.返回DBMS正使用的特殊信息

1.文本处理函数
upper转换为大写。



常用的文本处理函数有:





表中的SOUNDEX是一个将任何文本串转化为描述其语音表示的字母数字模式的算法。使得字符串是对发音比较而不是字母比较。

2.常用日期和时间处理函数



有一种情况,检索时间订单记录使用 select id from orders where order_date = '2005-09-01';
这样有时候是会检索失败的,因为它会与整个列值进行比较,如果order_date在mysql中存储的形式是'2005-09-01 11:02:03',那么就会有一部分不匹配,则where匹配失败。
所以要使用日期比较函数。
如selext id from orders where date(order_date) = '2005-09-01',那么就会匹配成功。

3.有一种日期比较,比如检索出9月下的所有订单,其中之一:
   (1)SELECT id From Date(order_date) BETWEEN '2005-09-01' AND '2005-09-30';
还有另外一种方法:
    (2) SELECT id From orders WHERE Year(order_date) = 2005 AND Month(order_date) = 9;

4.数值处理函数



三.汇总数据

什么是聚集函数?
我们常常需要汇总数据而不用把它们实际检索出来,为此MySQL提供了专门的函数。使用这些函数,MySQL可用于检索数据,以便分析和报表生成。
如:(1)确定表中行数
       (2)获得表中行组的和
       (3)找出表列的最大值,最小值,和平均值。
上述例子都需要对表中数据汇总,因此返回实际表中数据是对时间和处理资源的一种浪费(更不用说带宽了)。

聚集函数:运行在行组上,计算和返回单个值的函数



1.AVG函数
SELECT AVG(id) AS avd_id FROM elec;           将返回id的平均值
as之后的avg_id只是一个别名。

AVG()只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出。为了获得多个列的平均值,必须使用多个AVG函数。

2.COUNT函数
COUNT()函数进行计数。可利用COUNT()确定表中行的数目或者符合特定条件行的数目。
COUNT()函数有两种使用方式:
(1)使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值NULL还是非空值
        (2)使用COUNT(column)对特定列中具有值得行进行计数,忽略NULL值。

下列例子返回customers中客户的总数:
SELECT COUNT(*) AS num_cust FROM customers;
NULL值如果指定列名,则指定列的值为空的行被COUNT()函数忽略,但如果COUNT()函数中用的是星号*,则不忽略。

3.MAX()函数
MAX()返回指定列中的最大值。MAX()要求指定列名。
SELECT MAX(id) AS  max_id FROM elec;
虽然MAX()一般用来找出最大的数值或者日期值,但MySQL允许将它用来返回任意列中的最大值,包括返回文本列中的最大值。忽略值为NULL的行。

4.MIN()函数
返回最小值

5.SUM()函数
SELECT SUM(item_price*quantity) AS total_price FROM orderitems WHERE order_num = 20005;

6.聚集不同值(仅支持MySQL5及后期版本)
以下5个聚集函数都可如下使用:
(1)对所有的行执行计算,指定ALL参数或不给参数(因为ALL是默认的行为)
  (2) 只包含不同的值,指定DISTINCT参数



7.组合聚集函数
SELECT COUNT(*) AS num_items MIN(prod_price) AS price_min FROM products;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: