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. js 与JQuery显示及隐藏方法

    虽然以后两种方式都能让文本信息隐藏和显示 第一种文本隐藏以后还是会占居位置, 第二种则不会占位置. <p id="p1">这是一段文本.</p> <i ...

  2. HotCode的原理及使用

    1. JRbel介绍 JRebel是一套JavaEE开发工具.Jrebel可快速实现热部署,节省了大量重启时间,提高了个人开发效率.网上可搜索到破解版.JRebel是一款JAVA虚拟机插件,它使得JA ...

  3. php实现设计模式之 工厂方法模式

    <?php /* * *工厂方法模式,创建型模式 定义一个用于创建对象的工厂接口,让子类决定实例化哪一个类.Factory Method使用一个类的实例化延迟到其子类 * * 四个角色: * 工 ...

  4. java正则表达式入门

    http://www.cnblogs.com/jingmoxukong/p/6026474.html 这篇文章写的不错

  5. .NET 数据类型转换 方法

    using Newtonsoft.Json;using Newtonsoft.Json.Converters;using System.Web.Script.Serialization; /// &l ...

  6. mfc学习之路--如何删除通过控件新增的变量

    刚刚学校mfc的人都会遇到这样一个问题(比如我),在照做书做一个mfc程序,给控件新增变量时变量类型错了,但是变量名对了,然后想要加个正确的时候提示"已经存在该对象",然后就傻了, ...

  7. 使用Intellij IDEA搭建Ext JsMVC web项目

    由于自己从android开发转来学习web开发,最近在学习Jsp,之前接触过一点Extjs,所以用jsp来配合ext试试. Ext JS介绍 extjs是一个javascript框架,它的好处就是有它 ...

  8. linux 学习随笔-系统日常管理常用命令

    1:W 查看系统整体负载,无法查看具体负载,比如内存,磁盘  23:25:20 up 13 min,  2 users,  load average: 0.00, 0.01, 0.01 USER   ...

  9. WebForm(一)——IIS服务器、开发方式和简单基础

    一.B/S和C/S 1.C/S C/S 架构是一种典型的两层架构,其全程是Client/Server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据 ...

  10. [译文]通过ID, TagName, ClassName, Name, CSS selector 得到element

    致谢原文: <http://xahlee.info/js/js_get_elements.html> 通过ID得到element: Document.getElementById(id s ...