MySQL基本知识 -- 进阶(常用的函数)

Tags: MySQL MySQL进阶


1.计算字段

1.概念
如果客户端想要的数据格式不是数据库直接在表中存储的数据格式的话,有两种处理方式。第一种为拿到数据库表中的原始数据,客户端再对其进行处理格式化第二种就是把数据的格式化放在数据库中实现。显然出于降低数据库与客户端之间链接的资源消耗,提高客户端响应其他类型请求的性能,提高创建应用的可伸缩性并且数据库服务器完成相同操作更高效等原因,将数据处理部分放在数据库中更合理。此时经数据库新计算出来的结果便是计算字段。计算字段并不实际存在于表中。

2.创建计算字段

  • 拼接字段

    将两个列的值联结在一起,在MySQL中可以使用Concat()函数来拼接。
SELECT Concat(columnName1, '(', columnName2) AS tableName3 FROM tableName;

Concat()把多个串拼接成一个较长的串。其参数需要一个或多个指定的串,各个串之间用逗号分开.

As将拼接出来的字段起别名叫做tableName

  • 执行算数计算
SELECT columnName1 * columnName2 AS columnName FROM tableName;

在MySQL检索的时候进行算数计算(+,-,*,/)

注意:
SELECT 提供了测试和实验函数与计算的一个很好的方法。省略SELECT子语句以便简单的访问和处理表达式。例如SELECT 3*6;将返回18。
  • 使用函数

    常用的文本处理函数

    | 函 数 | 说 明 |

    | ----------- | ---------------- |

    | Left() | 返回串左边的字符 |

    | Length() | 返回串的长度 |

    | Locate() | 找出串的一个子串 |

    | Lower() | 将串转化为小写 |

    | LTrim() | 去掉串左边的空格 |

    | Right() | 返回串右边的字符 |

    | RTrim() | 去掉串右边的空格 |

    | SubString() | 返回子串的字符 |

    | Upper() | 将串转化为大写 |

常用的日期时间函数

函数 说明
AddDate() 增加一个日期(天、周等)
AddTime() 增加一个时间(时、分等)
CurTime() 返回当前时间
CurDate() 返回当前日期
Date() 返回日期时间的日期部分
DateDiff() 计算两个日期之差
Date_Add() 日期运算函数
Date_Format() 格式化日期或时间
Day() 返回日期的天数部分
DayOfWeek() 返回日期对应为星期几
Hour() 返回时间的小时部分
Minute() 返回时间的分钟部分
Month() 返回日期的月份
Now() 当前日期时间
Second() 返回时间的秒部分
Time() 返回时间
Year() 返回年份
注意:
1.MySQL的日期格式最好为yyyy-mm-dd,因为消除了多义性。
2.日期比较最好使用日期函数进行WHERE匹配,否则匹配会出错。比如:
SELECT * FROM tableName WHERE date = '2016-03-01'
当某一列存储的值为2016-03-01 12:00:00时,上述语句会匹配失败。解决方法就是使用Date(date)指示MySQL仅提取列的日期部分。
3.使用日期函数可以很好的进行日期比较搜索。比如需要查找出在2016年03月的所有列,可以使用:SELECT * FROM tableName WHERE Year(date) = 2016 AND Month(date) = 3;

常用的数值处理函数

函数 说明
Abs() 返回数的绝对值
Cos() 返回一个角度的余弦
Exp() 返回数的指数值
Mod() 取余
Pi() 圆周率
Rand() 生成随机数
Sin() 正弦
Sqrt() 平方根
Tan() 正切
3.汇总数据
对表中的数据(而不是实际数据本身)汇总,得到汇总的信息。
3.1 聚集函数
聚集函数运行在行组上,计算和返回单个值的函数。

常用的聚集函数

函数 说明
AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某列的和
SELECT AVG(prod_price) AS avg_price FROM tableName;

为了获得多个列的平均值必须使用多个AVG()函数。AVG()函数会忽略掉值为NULL的行。

SELECT COUNT(*) AS num_count FROM tableName;
SELECT COUNT(columnName) AS num_count FROM tableName;

COUNT()函数有两种使用方法。使用COUNT(*)对表中行的数目进行计数,不管表中包含的是空值还是非空值。使用COUNT(columnName)对columnName列中具有非空值的行进行计数,忽略NULL值。

SELECT SUM(columnName) AS sum_column FROM tableName;
SELECT SUM(columnName1 * columnName2) AS sum_column FROM tableName;

SUM()函数会忽略NULL的值。

SELECT COUNT(*) AS num_count, MIN(columnName) AS min_column,  AVG(columnName) AS avg_column FROM tableName;

聚集函数可以组合在一起使用。

MySQL的基本知识 -- 函数的更多相关文章

  1. [置顶] Mysql存储过程入门知识

    Mysql存储过程入门知识 #1,查看数据库所有的存储过程名 #--这个语句被用来移除一个存储程序.不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程 #SELECT NAME FROM ...

  2. MySql学习笔记——存储函数

    在学习完存储过程后,今天主要回顾一下mysql中的存储函数的知识. 函数与存储过程的区别 首先,存储函数也是过程式对象之一,与存储过程相似.它们都是由SQL和过程式语句组成的代码片断,并且可以从应用程 ...

  3. MySQL系列理论知识

    内容: 1.视图 2.触发器 3.事务 4.存储过程 5.内置函数 6.流程控制 7.索引与慢查询优化 —————————————————————————————— 1.视图: 1.视图是什么: 视图 ...

  4. MySQL数据库基础知识及优化

    MySQL数据库基础知识及优化必会的知识点,你掌握了多少? 推荐阅读: 这些必会的计算机网络知识点你都掌握了吗 关于数据库事务和锁的必会知识点,你掌握了多少? 关于数据库索引,必须掌握的知识点 目录 ...

  5. mysql存储过程和存储函数

    mysql存储过程和存储函数 存数函数代码示例: DROP PROCEDURE IF EXISTS calc_ci_day_suc_rate; delimiter // CREATE FUNCTION ...

  6. MYSQL常用内置函数详解说明

    函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...

  7. Mysql中使用find_in_set函数查找字符串

    mysql有个表的字段的存储是以逗号分隔的,如domain字段login.s01.yy.com,s01.yy.com,s02.yy.com.现在要查找s01.yy.com这个.我们用like查找好像不 ...

  8. MySQL 获得当前日期时间 函数

    获得当前日期+时间(date + time)函数:now() mysql> select now(); +---------------------+ | now() | +---------- ...

  9. 24、jQuery常用AJAX-API/Java调用MySQL / Oracle过程与函数

      1)掌握jQuery常用AJAX-API 2)掌握Java调用MySQL / Oracle过程与函数 一)jQuery常用AJAX-API 目的:简化客户端与服务端进行局部刷新的异步通讯 (1)取 ...

随机推荐

  1. easyui datagrid 动态操作editor 的方法

    easyui本身是不提供这么细节的功能的,需要我们自己拓展下: 在easyui.min.js中扩展: $.extend($.fn.datagrid.methods, { addEditor : fun ...

  2. 房地产行业的商业智能BusinessIntelligence介绍

    商业智能(BI)的需求            随着企业信息化程度的深入,企业内部对获取决策信息的效率.正确性.全面性和准确度的要求也越来越高.但是,伴之而来的却是繁多的报表和信息孤岛的出现,同时由于各 ...

  3. Lind.DDD.Utils.HttpHelper里静态对象引出的Http超时问题

    回到目录 Lind.DDD.Utils.HttpHelper组件主要实现了对HTTP的各种操作,如Get,Post,Put和Delete,它属于最纯粹的操作,大叔把它封装的目的主要为了实现与API安全 ...

  4. 高性能 TCP & UDP 通信框架 HP-Socket v3.2.3

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  5. MongoDB索引

    1.目的 索引就是用来加速查询的.数据库索引与书籍的索引类似:有了索引就不需要翻遍整本书,数据库则可以直接在索引中查找,使得查找速度能提高几个数量级.在索引中找到条目以后,就可以直接跳转到目标文档的位 ...

  6. Net环境下比较流行的ORM框架对比

    个人感觉在Java领域大型开发都离不了ORM的身影,所谓的SSH就是Spring+Struts+Hibernate,除了在学习基础知识的时候被告知可以使用JDBC操作数据库之外,大量的书籍中都是讲述使 ...

  7. 多级弹出菜单jQuery插件ZoneMenu

    ZoneMenu是一个菜单jQuery插件,只需占用页面上的一个小区域,却可以实现多级菜单. 在线体验:http://keleyi.com/jq/zonemenu/ 点击这里下载 完整HTML文件代码 ...

  8. Ajax的核心对象创建步骤

    * Ajax具有核心对象 * XMLHttpRequest对象 * 如何创建XMLHttpRequest对象 function getXhr(){ // 声明XMLHttpRequest对象 var ...

  9. Android Studio安装配置、环境搭建详细步骤及基本使用

    前言 Android Studio的安装配置及使用篇终于来啦~ 废话不多说,以下针对JDK正确安装(及其环境变量配置完毕,即Java开发环境下).Android Studio的安装,配置,以及创建工程 ...

  10. SharePoint 2013 图文开发系列之可视化WebPart

    有了WebPart开发的基础,再进行可视化WebPart开发,就容易多了.创建和开发过程,两者非常相似,下面,我们简单介绍下可视化WebPart的开发. 1.添加新项目,选择SharePoint 20 ...