mysql报表使用函数_MYSQL必知必会读书笔记第十和十一章之使用函数处理数据

mysql简介

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。

78d20268220fda3b0098d7b03322e726.png

拼接字段

存储在数据库表中的数据一般不是应用程序所需要的格式。我们需要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化。

计算字段(字段 = 列,不过数据库列一般称为列,而字段通常用于计算字段中)并不实际存在于数据库表中,计算字段是运行时在select语句内创建的。

拼接 concatenate 将值联结到一起构成单个值

在MySQL的select语句中,可使用Concat()函数来拼接两个列。

如创建由两列组成的标题:生成一个供应商报表,需要在供应商的名字中按照name(location)这样的格式列出供应商的位置。此报表需要单个值,而表中数据存储的两个列vend_name和vend_country中。还需要用括号将vend_country括起来。

4926a2b8e2abe71a90b9c487c11853ed.png

新创建的列用AS赋一个别名

59068adef8960869c116c64cb541cd92.png

去除空白

Ltrim() RTrim() Trim()

执行算术计算

比如物品单单表存储物品的价格和数量,但是不需要存储每个物品的总价格(用价格乘以数量即可)。 为打印发票,需要物品的总价格。即需要增加一列,根据已有的列计算出来。

f14f83803fe00db1c1ab5dbd9e1c7b8f.png

文本函数

left() 串左边字符

length() 串长度

locate() 找出串的一个子串

lower() 转为小写

ltrim() 去掉左边空格

right() 返回串右边字符

rtrim() 去掉串右边空格

soundex() 返回字符串soundex值

upper() 大写

将选择的文本转换成大写

select Upper(vend_name)from vendors;

9654d58aefeadfda73c6ca59075a6615.png

Soundex()函数:将任何文本传转换为描述其语音表示的字母数字模式的算法。(语音匹配?对发音比较而不是对字幕比较)

fdab0b4a1ce27f91ccc759e0b25a3965.png

日期函数

日期和时间函数

adddate() 增加一个日期-天或周

addtime() 增加一个时间

curdate() 返回当前日期

curtime() 返回当前时间

date() 返回日期时间的日期部分

datediff() 计算两个日期差

date_add() 高度灵活的日期运算函数

date_format() 返回一个格式化的日期或时间串

day() 返回一个日期的天数部分

dayofweek() 对于一个日期,返回对应的星期几

hour()

minute()

month()

now() 当前日期和时间

second()

time() 当前日期时间的时间部分

year()

一般,应用程序不使用用来存储日期和时间的格式,因此日期和时间函数总是被用来读取,统计和处理这些值。

MySQL的日期格式:yyyy-mm-dd。 比如 2005-09-01

43a914360d61ae28035571b6774b16e7.png

但是这样的where order_date = '2005-09-01'不可靠。因为order_date存储的数据类型是datatime. 这种类型存储日期及时间值。比如存储的order_date值为2005-09-01 11:30:05,则where order_date = '2005-09-01'就会匹配失败。

83eb2a1deb2a18d22c1bfeb80a03ea0e.png

所以最安全的方法是Date()函数,Date(order_date)指示MySQL提取列的日期部分。

select cust_id, order_num

from orders

where Date(order_date) = '2005-09-01';

再比如想要检索出2005年9月下的所有订单。

select cust_id, order_num

from orders

where Year(order_date) = 2005 and Month(order_date) = 9;

聚集函数

我们经常需要汇总函数,而不是把它们实际检索出来。

这种类型的检索例子:

1. 确定表中行数

2. 获得表中行组的和

3. 找出表列(or 所有行某些特定的行)的最大值,最小值和平均值

聚集函数(aggregate function) 运行在行组上,计算和返回单个值的函数。

AVG() 返回某列的平均值

COUNT() 返回某列的行数

MAX() 返回某列的最大值

MIN() 返回某列的最小值

SUM() 返回某列值的和

求某一列的平均值

select avg(prod_price) as avg_pricefrom products;

821b736037ba90c63a49751c54d9605d.png

- 计数

使用count(*)对表中行的数目进行计数(whether null or not)

f471d813ac3babd0b78ec9628e31e1de.png

7a2c79e51d3757adb89940276b166c4d.png

使用count(column)对特定列具有值的行进行计数,忽略null

a0c3f0e10addd9f2c60a3f30f5e71a1f.png

求和

使用sum()返回指定列值的和

14f2cdd86c6c2e5896925297145645f6.png

以上所述是小编给大家介绍的MYSQL必知必会读书笔记第十和十一章之使用函数处理数据的相关知识,希望对大家有所帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值