mysql 4.创建计算字段 函数处理字段 及 汇总数据的聚集函数

【什么是计算字段】

*存储在数据库表中的数据一般不是应用程序所需要的格式

*需要直接从数据库中检索出转换、计算或格式化过的数据

计算字段并不实际存在于数据库表中。计算字段是运行时在SELECT语句内创建的

>>>计算字段 是对select检索得到的字段的再处理

字段(field) 基本上与列(column)的意思相同,经常互换使用,不过数据库列一般称为列,

而术语字段通常用在计算字段的连接上

计算返回的字段叫做计算字段

【方法1:拼接】

Concat()拼接串,即把多个串连接起来形成一个较长的串

Concat(zd,zd1,"pinjie",zd2,"pinjie"," ") 拼接多个字符串 用逗号,隔开

RTrim()函数去掉值右边的所有空格

LTrim()函数去掉值左边的所有空格

Trim() 去掉串左右两边的空格

【方法2: 使用别名】

select zd as zd_bieming

【用途】常见的用途包括在实际的表列名包含不符合规定的字符(如空格)时重新命名它,在

原来的名字含混或容易误解时扩充它,等等

【方法3:算数计算】

select zd1*zd2 as noe_zd

支持的计算方法:加减乘除

【*技巧*】

SELECT 3*2

>> 6

【使用函数来处理 select筛选的字段】

1、mysql的函数 在这里 转换和处理 数据

2、介绍什么是函数,MySQL支持何种函数,以及如何使用这些函数

3、多数SQL语句是可移植的

4、而函数的可移植性却不强。几乎每种主要的DBMS的实现都支持其他实现不支持的函数,而且有时差异还很大

使用方法 可带where筛选

select 函数名(zd) where

>>返回 处理后的结果

【支持函数类型】

1、文本处理 去掉左边 右边字符 大小写转换 返回左右 字符 返回串的长度

2、算数计算 加减成除 代数 三角函数 圆周率 平方根

3、处理日期和时间值 时间模块 返回当前时间 放回当前日期 返回 时 分 秒 返回 年 月 日 返回时间

4、DBMS 系统函数

SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法

日期和时间采用相应的数据类型和特殊的格式存储

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

用日期进行过滤需要注意一些别的问题和使用特殊的MySQL函数

【日期使用注意】

日期必须为格式yyyy-mm-dd 2005年9月1日 >>> 005年9月1日

Date(order_date) MySQL仅提取列的日期部分

Date(order_date) = "005年9月1日"

Date(order_date) between "2005-09-01" and "2005-09-30"

Year(order_date) = 2005 AND Month(order_date) = 9

【时间格式的一些处理】

【数值处理】

本小结 还是一些 函数的使用

汇总数据而不用把它们实际检索出来

【SQL的聚集函数以及如何利用它们汇总表的数据】

􀂉 确定表中行数(或者满足某个条件或包含某个特定值的行数)。

􀂉 获得表中行组的和。

􀂉 找出表列(或所有行或某些特定的行)的最大值、最小值和平均值。

MySQL还支持一系列的标准偏差聚集函数

5个聚集函数

使用方法和 一般函数一样的 可带where筛选

select 函数名(zd) where

>>返回 处理后的结果

【聚集函数使用的一个误区】

场景:比如说求一个平均值a列是不同的厂家  b列是不同厂家的产品的价格

希望求得 某一个厂家的所有产品的平均值

CREATE TABLE `test4` (
  `organization` varchar(20) DEFAULT NULL,
  `price` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

INSERT INTO `test`.`test4` (`organization`, `price`) VALUES ('a', '10');
INSERT INTO `test`.`test4` (`organization`, `price`) VALUES ('a', '9');
INSERT INTO `test`.`test4` (`organization`, `price`) VALUES ('a', '11');
INSERT INTO `test`.`test4` (`organization`, `price`) VALUES ('b', '5');
INSERT INTO `test`.`test4` (`organization`, `price`) VALUES ('b', '4');
INSERT INTO `test`.`test4` (`organization`, `price`) VALUES ('b', '3');

select  organization ,avg(price) from test4  where organization in( 'a','b')

>>a	7.8
起码没有报错  但是结果是不正确的

select  organization ,avg(price) from test4  where organization  = 'a'
>>a	10    可以看到结论   b是没有被搜索出来的  a的条件就把table 一次性的过了一遍

【注意点就是】

1、聚合函数 可以只聚合单个字段  也可以聚合多个字段   但尽量不要把 聚合和非聚合的字段

混合在一起select 出来  要么没有被聚合的字段全都是一样的

2、

​​​​​​​

1、AVG() 返回某列的平均值

求平均值 为了获得多个列的平均值, 必须使用多个AVG()函数。

AVG()函数忽略列值为NULL的行

2、COUNT() 返回某列的行数 返回select结果的行数

使用COUNT(*) 不忽略NULL值

使用COUNT(column) 忽略NULL值

3、MAX() 返回某列的最大值 求最大值 数值或日期

在用于文本数据时,如果数据按相应的列排序,则MAX()返回最后一行

忽略NULL值

4、MIN() 返回某列的最小值 求最小值

用于文本数据时,如果数据按相应的列排序,则MIN()返回最前面的行

忽略NULL值

5、SUM() 返回某列值之和 求和

忽略NULL值

【标准的算术操作符 和 聚集函数的结合使用】

SUM(item_price*quantity)

【注意使用的先后顺序】

操作的先后顺序 函数操作符 和字段的使用 先后

【聚集不同值】

select AVG(DISTINCT zd) as zd_new

默认方式 ALL

DISTINCT 用于指定列名 不能 DISTINCT *

【组合聚集函数】

组合聚集函数   判定的点是组合聚集的过程是对 同统一大片的数据 同时发生的 

没有先后

select

聚集函数1 zd1

聚集函数2 zd2

聚集函数3 zd3

from table where

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值