《MySQL必知必会》读书笔记 —— 第10章 创建计算字段 第11章 使用数据处理函数 第12章 汇总数据 第13章 分组数据

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

连接上。

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

内创建的。

  • 从客户机(如应用程序)的角度来看,计算字段的数据是以与其他列的数据相同的方式返回的,并没有任何区别

  • 为什么要用计算字段?

有时候数据本身存储在数据库,但是需要以某种形式展示的时候,需要组合数据一起使用、对数据进行格式化输出的时候,就需要计算字段了。

  • 在客户机还是服务器进行转换?

能在数据库完成的就在数据库查询时完成。

可在SQL语句内完成的许多转换

和格式化工作都可以直接在客户机应用程序内完成。但一

般来说,在数据库服务器上完成这些操作比在客户机中完

成要快得多,因为DBMS是设计来快速有效地完成这种处

理的。

10.2 拼接字段


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

  • 函数concat(field1,field2,,...)

concat函数可以将多个字段拼接起来,字符串字面量需要加单引号。

如:

SELECT concat(‘ID:’, id , ’ , Name:’ , trim(name)) FROM test;

输出:(注意,只输出了一列)

±--------------------------------------------+

| Concat(‘ID:’, id , ’ , Name:’ , trim(name)) |

±--------------------------------------------+

| ID:101 , Name:tiger |

| ID:102 , Name:Tiger |

| ID:103 , Name:lion |

±--------------------------------------------+

=

  • trim函数,可以去除两边的空格。

  • 别名

上述的计算字段得到的只是一个值,但是客户机不能引用它,这个时候就要用到别名(alias) 。别名使用AS来赋予。

别名,也称为导出列

SELECT concat(‘ID:’, id , ’ , Name:’ , trim(name)) AS info, idtest FROM test;

输出:

±--------------------±-------+

| info | idtest |

±--------------------±-------+

| ID:101 , Name:tiger | 1 |

| ID:102 , Name:Tiger | 2 |

| ID:103 , Name:lion | 3 |

±--------------------±-------+

注意上述的info字段不是真正的列数据,但是对于客户机而言,它和真实的列,并没有什么分别。

10.3 执行算术运算


计算字段的另一常见用途是对检索出的数据进行算术计算

SELECT prod_id,

num,

price,

num*price AS total_price,

FROM products;

MySQL算术操作符

  1. +

  2. -

  3. *

  4. /

  • 一个小技巧

SELECT提供了测试和试验函数与计算的一个

很好的办法。虽然SELECT通常用来从表中检索数据,但可以

省略FROM子句以便简单地访问和处理表达式。例如,SELECT

3*2;将返回6,SELECT Trim(‘abc’);将返回abc,而SELECT

Now()利用Now()函数返回当前日期和时间。通过这些例子,

可以明白如何根据需要使用SELECT进行试验。

第11章 使用数据处理函数

=============================================================================

函数,一般是在数据上执行的,它给数据的转换和处理提供了方便。

  • 一个小技巧,使用help

如果,不知道一个函数怎么使用,用help就可以知道。

比如:

mysql> help abs

Name: ‘ABS’

Description:

Syntax:

ABS(X)

Returns the absolute value of X.

URL: https://dev.mysql.com/doc/refman/8.0/en/mathematical-functions.html

Examples:

mysql> SELECT ABS(2);

-> 2

mysql> SELECT ABS(-32);

-> 32

11.1 文本处理函数


需要注意的一点是 在MySQL中,字符串的索引从1开始。

  1. Left(str,len) 返回串左边的字符;

  2. Right(str,len) 返回串右边的字符;

  3. Length() 返回串的长度;

  4. SUBSTRING(str,pos), SUBSTRING(str FROM pos), SUBSTRING(str,pos,len), SUBSTRING(str FROM pos FOR len) 返回字子串;

  5. Lower(str) 将串小写输出。

  6. Upper(str) 将串大写输出。

  7. LTrim(str) 去除串左边的空格

  8. RTrim(str) 去除串右边的空格

  9. Trim(str) 去除串两边的空格。

  10. Locate(LOCATE(substr,str), LOCATE(substr,str,pos)) 相当于c++的find函数

11.2 日期和时间处理函数


  1. DATE

日期类型,格式:YYYY-MM-DD

  1. TIME

时间格式,格式:hh:mm:ss[.fraction]

  1. DATETIME

时间+日期:格式:YYYY-MM-DD hh:mm:ss[.fraction]

如何用日期进行过滤

下面1-8个函数都是可以返回日期的一个部分。

  1. Date(date_time)

  2. Time(date_time)

  3. Year(date_time)

  4. Month(date_time)

  5. Day(date_time)

  6. Hour(date_time)

  7. Minute(date_time)

  8. Second(date_time)

  9. DayOfWeek(date) 返回日期的对应的星期几

  10. DateDiff(date1,date2) 返回(date1 - date2 )

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

  12. CurDate() 返回当前日期

  13. CurTime() 返回当前时间

  14. Now() 返回当前日期和时间

关于11的用法:

查看更多

Examples:

mysql> SELECT DATE_FORMAT(‘2009-10-04 22:23:00’, ‘%W %M %Y’);

-> ‘Sunday October 2009’

mysql> SELECT DATE_FORMAT(‘2007-10-04 22:23:00’, ‘%H:%i:%s’);

-> ‘22:23:00’

mysql> SELECT DATE_FORMAT(‘1900-10-04 22:23:00’,

-> ‘%D %y %a %d %m %b %j’);

-> ‘4th 00 Thu 04 10 Oct 277’

mysql> SELECT DATE_FORMAT(‘1997-10-04 22:23:00’,

-> ‘%H %k %I %r %T %S %w’);

-> ‘22 22 10 10:23:00 PM 22:23:00 00 6’

mysql> SELECT DATE_FORMAT(‘1999-01-01’, ‘%X %V’);

-> ‘1998 52’

mysql> SELECT DATE_FORMAT(‘2006-06-00’, ‘%d’);

-> ‘00’

实例:

  • 返回2008年的8月份8号的记录:

  • 返回2008年的8月份的记录:

SELECT * FROM record WHERE dt = ‘2008-08-08’;

SELECT * FROM record WHERE Year(dt) = 2008 AND Month(dt) = 8;

11.3 数值处理函数


似乎最常用的就是abs()

第12章 汇总数据

=========================================================================

当仅仅需要一组数据的汇总(如,总和、最大值、最小值、平均数)时,用到就要聚集函数了。

运行在行组上,计算和返回单个值的函数。

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

  2. COUNT() 返回某列的行数

  3. MAX() 返回某列的最大值

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

  5. SUM() 返回某列值之和

12.1 Avg()函数


列作为参数。

忽略NULL行。

SELECT AVG(price) AS average_price FROM prod;

SELECT SUM(price) FROM AS total_price prod;

SELECT MAX(price) FROM prod WHERE prodID;

SELECT MIN(price) FROM prod WHERE price>100;

12.2 Count()函数


有两种用法:

  • Count(*)对表中行的数目进行统计,不管表列中的是NULL还是非NULL;

  • Count(col) col列值为NULL会被忽略

  • 在列名前加上DISTINCT,即可进行去重。

12.3 MAX()、MIN()函数


常用于日期列数值列

12.4 SUM() 函数


  • 在多个列上进行计算

利用标准运算符函数。

SELECT SUM(item_price*item_quantity) AS total_price

FROM orderitems;

WHERE item_id = 2024;

SUM会忽略值为NULL的行。

  • 聚集不同值DISTINCT

使用聚集函数的函数,还可以使用DISTINCT关键字,进行去重。

默认是ALL参数,一般不加。

select SUM(DISTINCT price) FROM prod;

12.5 组合聚集函数


一条SELECT语句,可以使用多个聚集函数。

SELECT COUNT(*) AS num_items,

MIN(price) AS price_min,

MAX(price) AS price_max

FROM products;

MySQL支持一系列聚集函数,可以用多种

方法使用它们以返回所需的结果。这些函数是高效设计的,它们返回结

果一般比你在自己的客户机应用程序中计算要快得多。

第13章 分组数据

=========================================================================

这个表下面会一直举例用到。

SQL建表语句:

DROP TABLE IF EXISTS products;

CREATE TABLE products (

prod_id int NOT NULL AUTO_INCREMENT,

price int DEFAULT NULL,

name varchar(45) DEFAULT NULL,

seller int DEFAULT NULL,

date date DEFAULT NULL,

PRIMARY KEY (prod_id)

) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

LOCK TABLES products WRITE;

INSERT INTO products VALUES (1,9,‘牙刷’,101,‘2010-01-20’),(2,1000,‘吹风机’,101,‘2010-02-21’),(3,20,‘毛巾’,101,‘2010-01-20’),(4,50,‘脸盆’,202,‘2010-01-20’),(5,15,‘杯子’,202,‘2018-02-21’),(6,3,‘纸巾’,202,‘2018-02-21’),(7,100,‘电动牙刷’,103,‘2017-02-21’);

UNLOCK TABLES;

±--------±------±-------------±-------±-----------+

| prod_id | price | name | seller | date |

±--------±------±-------------±-------±-----------+

| 1 | 9 | 牙刷 | 101 | 2010-01-20 |

| 2 | 1000 | 吹风机 | 101 | 2010-02-21 |

| 3 | 20 | 毛巾 | 101 | 2010-01-20 |

| 4 | 50 | 脸盆 | 202 | 2010-01-20 |

| 5 | 15 | 杯子 | 202 | 2018-02-21 |

| 6 | 3 | 纸巾 | 202 | 2018-02-21 |

| 7 | 100 | 电动牙刷 | 103 | 2017-02-21 |

±--------±------±-------------±-------±-----------+

本章将介绍如何分组数据,以便能汇总表内容的子集。这涉及两个新SELECT语句子句,分别是GROUP BY子句和HAVING子句。

分组是和聚集在一起的概念。

13.1 数据分组


之前的聚集函数要么是整个表的进行统计,要么是对匹配WHERE的行的数据进行统计。

分享

这次面试我也做了一些总结,确实还有很多要学的东西。相关面试题也做了整理,可以分享给大家,了解一下面试真题,想进大厂的或者想跳槽的小伙伴不妨好好利用时间来学习。学习的脚步一定不能停止!

薪酬缩水,“裸辞”奋战25天三面美团,交叉面却被吊打,我太难了

Spring Cloud实战

薪酬缩水,“裸辞”奋战25天三面美团,交叉面却被吊打,我太难了

Spring Boot实战

薪酬缩水,“裸辞”奋战25天三面美团,交叉面却被吊打,我太难了

面试题整理(性能优化+微服务+并发编程+开源框架+分布式)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

起的概念。

13.1 数据分组


之前的聚集函数要么是整个表的进行统计,要么是对匹配WHERE的行的数据进行统计。

分享

这次面试我也做了一些总结,确实还有很多要学的东西。相关面试题也做了整理,可以分享给大家,了解一下面试真题,想进大厂的或者想跳槽的小伙伴不妨好好利用时间来学习。学习的脚步一定不能停止!

[外链图片转存中…(img-KTCzXpu2-1713657899615)]

Spring Cloud实战

[外链图片转存中…(img-lMVUYxIx-1713657899616)]

Spring Boot实战

[外链图片转存中…(img-5iwWxHDg-1713657899616)]

面试题整理(性能优化+微服务+并发编程+开源框架+分布式)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-eqIGo0iY-1713657899617)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 8
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL第五版pdf是一本非常有价值的MySQL数据库教程书籍。这本书详细介绍了MySQL的基本概念、基本语法、数据查询、数据更新和数据管理等方面的识。该书主要分为6个部分。第一部分介绍了数据库和SQL语言的基础识,包括关系数据库设计和基本的SQL语言。第二部分详细介绍了如何使用MySQL进行数据查询。第三部分讲述了如何使用MySQL进行数据更新。第四部分介绍了如何管理MySQL数据库。第五部分讲述了如何使用MySQL进行高级查询,包括连接查询、子查询和视图。最后,第六部分介绍了如何使用MySQL进行数据安全和备份。 这本书的实用价值非常高,无论是想学习MySQL的初学者还是有一定MySQL基础的开发人员都可以从这本书中学到一些新识。此外,本书使用简单易懂的语言,讲解详细,加上大量的实例和练习,便于读者理解和掌握MySQL数据库相关识。这本书同时也是一本非常好的参考书,可以作为学习MySQL的读者随时查阅。 总之,MySQL第五版pdf是一本非常优秀的MySQL数据库教程,值得学习和推广。 ### 回答2: 《MySQL第五版PDF》是一本非常实用的数据库入门指南,对于想要学习数据库的初学者非常有帮助。本书主要分为4个部分,从基础的MySQL介绍、数据的设计和查询以及高级查询和数据管理等方面进行了详细的介绍。 本书的使用非常简单,读者可以根据自己的需求和学习情况来选择阅读的章节,也可以根据书中提供的案例来进行实操。特别是书中提供的大量实例代码,可以帮助初学者快速学习和熟悉MySQL使用。 同时,《MySQL第五版PDF》还专门对数据库的设计做了详细的介绍,对于想要从事数据库开发和设计的人来说也非常有用。而且,本书翔实且实用,还提供了大量的MySQL常用命令和函数,使读者能够快速理解和记忆。 总之,《MySQL第五版PDF》是一本入门级的数据库书籍,对于初学者来说非常实用和易懂。它不仅提供了详细的理论识,还提供了大量的实际例子和操作指导,帮助读者掌握MySQL的基本技能。 ### 回答3: 《MySQL第五版》这本书是一本非常全面介绍MySQL的书籍。通过学习这本书,可以掌握MySQL的基础识,包括MySQL的安装、配置、基本语法、查询、事务处理、性能调优等方面。同时,还可以学习MySQL的高级应用,比如存储过程、触发器、视图、索引等。此外,这本书还介绍了MySQL的安全管理、备份与恢复、集群管理等方面的识。 《MySQL第五版》的特点在于,它不仅提供理论识讲解,还提供了大量的实例帮助读者更好地理解识点。每个章节都包括了讲解和实例两部分,主要内容还有重点提示和注意事项。同时,本书对MySQL的基础识和应用进行了系统化的总结,为读者提供了方便快捷的查询指南和索引。 此外,本书对于初学者来说十分友好,因为它从简单的SQL语句开始介绍,逐渐深入,难度逐步加大,对于刚接触MySQL的人来说是非常容易入手的。此外,本书对于经验丰富的MySQL用户也有很多帮助,因为本书提供了许多有用的技巧和最佳实践,可帮助他们更好地应用MySQL。 总之,《MySQL第五版》是一个很好的MySQL学习指南,不管是想学习MySQL的初学者,还是需要深入了解MySQL的高级用户,都可以从这本书中获得很多有用的识和技巧。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值