MySQL的基本知识 -- 函数
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的基本知识 -- 函数的更多相关文章
- [置顶] Mysql存储过程入门知识
Mysql存储过程入门知识 #1,查看数据库所有的存储过程名 #--这个语句被用来移除一个存储程序.不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程 #SELECT NAME FROM ...
- MySql学习笔记——存储函数
在学习完存储过程后,今天主要回顾一下mysql中的存储函数的知识. 函数与存储过程的区别 首先,存储函数也是过程式对象之一,与存储过程相似.它们都是由SQL和过程式语句组成的代码片断,并且可以从应用程 ...
- MySQL系列理论知识
内容: 1.视图 2.触发器 3.事务 4.存储过程 5.内置函数 6.流程控制 7.索引与慢查询优化 —————————————————————————————— 1.视图: 1.视图是什么: 视图 ...
- MySQL数据库基础知识及优化
MySQL数据库基础知识及优化必会的知识点,你掌握了多少? 推荐阅读: 这些必会的计算机网络知识点你都掌握了吗 关于数据库事务和锁的必会知识点,你掌握了多少? 关于数据库索引,必须掌握的知识点 目录 ...
- mysql存储过程和存储函数
mysql存储过程和存储函数 存数函数代码示例: DROP PROCEDURE IF EXISTS calc_ci_day_suc_rate; delimiter // CREATE FUNCTION ...
- MYSQL常用内置函数详解说明
函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...
- Mysql中使用find_in_set函数查找字符串
mysql有个表的字段的存储是以逗号分隔的,如domain字段login.s01.yy.com,s01.yy.com,s02.yy.com.现在要查找s01.yy.com这个.我们用like查找好像不 ...
- MySQL 获得当前日期时间 函数
获得当前日期+时间(date + time)函数:now() mysql> select now(); +---------------------+ | now() | +---------- ...
- 24、jQuery常用AJAX-API/Java调用MySQL / Oracle过程与函数
1)掌握jQuery常用AJAX-API 2)掌握Java调用MySQL / Oracle过程与函数 一)jQuery常用AJAX-API 目的:简化客户端与服务端进行局部刷新的异步通讯 (1)取 ...
随机推荐
- eclipse 突然 一直在loading descriptor for XXX (XXX为工程名)
问题: eclipse 启动后,啥也不干,就一直在loading descriptor for XXX (XXX为工程名),,其他什么操作都不能操作. 如下图所示,保存文件也无法保存. 这个怎么办? ...
- JMeter专题系列(六)集合点
JMeter也有像LR中的集合点: JMeter里面的集合点是通过添加定时器来完成. 注意:集合点的位置一定要在Sample之前. 集合点:虽然我们的“性能测试”理解为“多用户并发测试”,但客观上来说 ...
- Senna.js – 速度极快的单页应用程序引擎
Senna.js 是一个速度超快的单页应用程序引擎,提供了几个低级别的 API,可以帮助你打造现代化的基于 Web 的应用程序.更重要的是,搜索引擎蜘蛛应该能够索引相同的内容. 通过使用 HTML5 ...
- form表单提交和ajax表单提交,关于移动端如何通过软键盘上的【搜索】和【前进】进行提交操作
[文章来源]由于自己对于form研究甚少,所以一直用的都是AJAX进行提交,这次后台提出要用form提交,顺便深入研究一下:之前在做表单的时候,发现input可以通过设置不同的type属性,调用不同的 ...
- 路径分析之NetworkX实例
#!/usr/bin/env python # -*- coding: utf-8 -*- import networkx as nx import numpy as np import json i ...
- 初学HTML 常见的标签(二) 列表标签
上次介绍了一些简单的文本标签设计, 这篇介绍列表类标签, 通过列表能写出很好看的, 多元化的网络页面. ul-li 列表标签 <ul> <li>列表1</li> & ...
- Retrofit 入门学习
Retrofit 入门学习官方RetrofitAPI 官方的一个例子 public interface GitHubService { @GET("users/{user}/repos&qu ...
- 通知、block
=================================== 通知 =================================== 一.通知(NSNotification) // N ...
- jquery 获取多个select name 的值
html {foreach from=$month_arr item=dateArr key=i}<tr> <td>{$dateArr.m}</td> <td ...
- Linux系统内存占用90%以上 ?
问题: [root@dbserver01 zx_epp_db]# free -m total used free shared buffers cached Mem: 15953 14706 1246 ...