MySQL_4 常见函数汇总及演示

news2024/11/28 0:43:01

目录

一、统计函数

        1.基本语法 : 

        2.代码演示 :  

                演示Ⅰ——

                演示Ⅱ——

二、合计函数

        1.基本语法 : 

        2.代码演示 : 

三、平均函数

        1.基本语法 : 

        2.代码演示 : 

四、最值函数 

        1.基本语法 : 

        2.代码演示 : 

五、字符串函数

        1.常用字符串函数 : 

        2.代码演示 : 

六、数学函数

        1.常用数学函数 : 

        2.代码演示 : 

七、日期函数

        1.常用日期函数 : 

        2.代码演示 :  

八、加密函数

        1.基本语法 : 

        2.代码演示 : 

九、 流程控制函数

        1.基本语法 : 

        2.代码演示 : 


一、统计函数

        1.基本语法 : 

        SELECT COUNT(*) / COUNT (column_name)... FROM table_name 

                [WHERE where_definitition];

        注意事项——

        COUNT(*)表示查询整条记录,只要该记录满足WHERE子句的条件就会被统计在内;

        COUNT(column_name)表示在符合WHERE子句条件的基础上,还必须满足指定列不为NULL

        可以在一条查询语句中使用多个COUNT(column_name),以同时统计多个列,分别显示各个列的统计结果。

        2.代码演示 :  

                演示Ⅰ——

                现有学生表stus如下——

                现要求——
                ①统计表中一共有几位学生(即表中一共有多少条记录);
                ②统计数学成绩大于等于130的学生个数;
                代码如下 : 

# 统计stus表中共有多少学生
SELECT COUNT(*) FROM `stus`;

# 统计Math >= 130的学生个数
SELECT COUNT(*) FROM `stus`
			WHERE `Math` >= 130;

                运行结果 : 

                演示Ⅱ——

                向表中添加两条id = NULL的记录,stus表如下图所示 : 

                现要求——
                ①统计英语成绩在80分以下的学生个数;
                ②统计英语成绩在80分以下的,且id不等于NULL的学生个数;
                代码如下 : 

# 统计英语成绩在80分以下的学生的个数
SELECT COUNT(*) FROM `stus`
			WHERE `English` < 80;
			
# 统计英语成绩在80分以下的并且id不为空的学生的个数
SELECT COUNT(id) FROM `stus`
			WHERE `English` < 80;

                运行结果 : 


二、合计函数

        1.基本语法 : 

        SELECT SUM(column_name), SUM(column_name)... FROM table_name

                [WHERE where_definition];

        注意事项——

        SUM函数仅对数值型字段起作用,否则无意义

        可以同时对多列求和。

        2.代码演示 : 

                仍对stus表进行操作,stus表目前如下 : 

                现要求——
                ①统计所有学生的数学成绩;
                ②统计所有学生的英语成绩;
                代码如下 : 

SELECT SUM(`Math`) AS `Math_total`,SUM(`English`)  AS `English_total`
			FROM `stus`;

                运行结果 : 


三、平均函数

        1.基本语法 : 

        SELECT AVG(column_name), AVG(column_name)... FROM table_name

                [WHERE where_definition];

        注意事项——

        若求平均值的列中有NULL数据,AVG函数会自动跳过该NULL数据
       
除了AVG函数,还可以使用SUM(column_name) / COUNT(column_name)的方式来统计某一字段的平均值。

        2.代码演示 : 

                仍对stus表进行操作,stus表目前如下 : 

                现要求—— 
                ①查询所有学生的数学成绩的平均分以及英语成绩的平均分;
                ②将id = 2的学生Ice的数学成绩置为空,再次查询全体学生的数学平均分;
                代码如下 : 

SELECT AVG(`Math`), AVG(`English`) FROM `stus`;

UPDATE `stus` 
			SET `Math` = NULL
			WHERE `id` = 2;

SELECT SUM(`Math`) / COUNT(`Math`) AS `average_Math` FROM `stus`;

                运行结果 : 


四、最值函数 

        1.基本语法 : 

        SELECT MAX(columun_name)... / MIN(column_name)... FROM table_name

                [WHERE where_definition];

        注意事项——

        与上面几个函数类似地,MAX和MIN函数也可以多个使用,并且可以混用

        2.代码演示 : 

                仍然操作stus表,目前stus表如下 : 

                现要求——
                ①查询全体学生中最高的数学成绩和最低的数学成绩;
                ②查询全体学生中最高的英语成绩和最低的英语成绩;
                代码如下 : 

SELECT MAX(`Math`), MIN(`Math`) FROM `stus`;

SELECT MAX(`English`), MIN(`English`) FROM `stus`;

                运行结果 : 


五、字符串函数

        1.常用字符串函数 : 

        CHARSET(str) : 返回字段(具体的字符串)的字符集类型;

        CONCAT(string, string2...) : 连接多个字符串,将多个列拼接成一列;

        INSTR(string, substring) : 返回substring在string中出现的位置,没有则返回0;

        UCASE(string) : 将当前字符串转换成大写;

        LCASE(string) : 将当前字符串转换成小写;

        LEFT(string, length) : 从string的左边起取length个字符;(RIGHT可从右取)

        LENGTH(string) : 获取当前string的长度(字节);

        8° REPLACE(str, old_string, new_string) : 用new_string替换掉str中的old_string);

        STRCMP(string1, string2) : 按照逐个字符比较两字符串大小;

        10° SUBSTRING(str, position [, length]) : 从str的position开始(默认是1),取LENGTH个字符;

        11° LTRIM(string) / RTRIM(string) / TRIM(string) : 去掉前端空格 / 后端空格 / 两端空格。

        2.代码演示 : 

                ① CHARSET(str) : 返回字段的字符集类型;

# 查询ename字段和ecareer字段的字符集类型
SELECT CHARSET(`ename`), CHARSET(`ecareer`)
            FROM `employee`;

                ② CONCAT(string, string2...) : 连接多个字符串;

# 查询自定义拼接后的列
SELECT CONCAT(`ename`, ' 是在 ', `hiredate`, ' 入职的') AS `hiredate_info`
			FROM `employee`;

                ③ INSTR(string, substring) : 返回substring在string中出现的位置,没有则返回0; 

# DUAL 亚元表,是一个系统表,可以作为默认的测试表来使用
SELECT INSTR('I love programming!', 'ing'),
       INSTR('I love programming!', 'hahah') AS `test`
       FROM DUAL;

                ④ UCASE(string) : 将当前字符串转换成大写;

SELECT UCASE(`ename`) FROM `employee`;

                ⑤ LCASE(string) : 将当前字符串转换成小写;

SELECT LCASE('I_loVe_YOU') AS `test` FROM DUAL;

                ⑥ LEFT(string, length) : 从string的左边起取length个字符;

SELECT LEFT(`ename`, 3) FROM `employee`;

                ⑦ LENGTH(string) : 获取当前string的长度(字节); 

SELECT LENGTH('abc'), 
       LENGTH('哈哈哈'), 
       LENGTH('...'), 
       LENGTH('。。。') 
       FROM DUAL;

                ⑧ REPLACE(str, old_string, new_string) : 用new_string替换掉str中的old_string) 

SELECT REPLACE('I love programming!', 'love ', 'relish ') AS `replace_result`
			FROM DUAL;

                ⑨ STRCMP(string1, string2) : 按照逐个字符比较两字符串大小 

SELECT STRCMP('abc', 'abcdefg') AS `t1`,
			 STRCMP('dsae','dsad') AS `t2`,
			 STRCMP('hah', 'hah') AS `t3`
			 FROM DUAL;

                ⑩ SUBSTRING(str, position [, length]) : 从str的position开始(默认是1),取LENGTH个字符; 

SELECT SUBSTRING('I love programming forever!', 3, 4) AS `sub_res`
			FROM DUAL;

                ⑩① LTRIM(string) / RTRIM(string) / TRIM(string) : 去掉前端空格 / 后端空格 / 两端空格。

SELECT LTRIM('   haha') AS `left_res`,
			 RTRIM('hah   ') AS `Right_res`,
			 TRIM('  haah   ') AS `Trim_res`
			 FROM DUAL;


六、数学函数

        1.常用数学函数 : 

        ABS(num) :  求绝对值;

        BIN(decimal_number) :  十进制转二进制;

        CEILING(number) : 向上取整;

        FLOOR(number) : 向下取整;

        CONV(number, from_base, to_base) : 进制转换,将number以一个指定的进制转为另一个进制;

        FORMAT(NUMBER, decimal_places) : 保留小数位数(四舍五入);

        HEX(DecimalNumber) : 转十六进制;

        LEAST(number_1 [, number_2...number_n]) : 求最小值;

        MOD(numerator, denominator) : 取余;

        10° RAND([seed]) : 求0~1.0之间的随机数,若想要返回的随机数不变化,可以给出一个seed(种子)。

        2.代码演示 : 

                1 ABS(num) :  求绝对值;

# DUAL 亚元表,是一个系统表,可以作为默认的测试表来使用
SELECT ABS(0.00) AS `a1`,
			 ABS(2333) AS `a2`,
			 ABS(-6.66) AS `a3`,
			 ABS(-333) AS `a4`
			 FROM DUAL;

                2 BIN(decimal_number) :  十进制转二进制; 

SELECT BIN(10),
			 BIN(11),
			 BIN(12)
			 FROM DUAL;

                3° CEILING(number) : 向上取整; 

SELECT CEILING(2.2) AS `c1`,
			 CEILING(0.8) AS `c2`,
			 CEILING(-0.99) AS `c3`,
			 CEILING(-1.01) AS `c4`
			 FROM DUAL;

                 FLOOR(number) : 向下取整; 

SELECT FLOOR(2.2) AS `f1`,
			 FLOOR(0.8) AS `f2`,
			 FLOOR(-0.99) AS `f3`,
			 FLOOR(-1.01) AS `f4`
			 FROM DUAL;

                 CONV(number, from_base, to_base) : 进制转换 

SELECT CONV(55, 10, 2) AS `conv_res1`,
			 CONV(55, 8, 10) AS `conv_res2`,
			 CONV(55, 16, 10) AS `conv_res3`
			 FROM DUAL;

                 FORMAT(NUMBER, decimal_places) : 保留小数位数(四舍五入);

SELECT FORMAT(22.222222, 2) AS `test1`,
			 FORMAT(22.22888, 2) AS `test2`,
			 FORMAT(-0.747, 2) AS `test3`
			 FROM DUAL;

                 HEX(DecimalNumber) : 转十六进制; 

SELECT HEX(16),
			 HEX(65),
			 HEX(126)
			 FROM DUAL;

                 LEAST(number_1 [, number_2...number_n]) : 求最小值; 

SELECT LEAST(0, -1.08, 22, 100) AS `least_1`,
			 LEAST(3, 8, 3, 11) AS `least_2`,
			 LEAST(1000, 233.3) AS `least_3`
			 FROM DUAL;

                 MOD(numerator, denominator) : 取余; 

SELECT MOD(10, 3),
			 MOD(55, 10)
			 FROM DUAL;

                10° RAND([seed]) : 求0~1.0之间的随机数 

SELECT FORMAT(RAND(), 2) AS `random1`,
			 FORMAT(RAND(), 2) AS `random2`,
			 FORMAT(RAND(5), 2) AS `random3`
			 FROM DUAL;


七、日期函数

        1.常用日期函数 : 

        CURRENT_DATE :  当前日期;

        CURRENT_TIME : 当前时间;

        CURRENT_TIMESTAMP : 当前时间戳;

        DATE(datetime) : 返回当前时间的日期部分;

        //以下四个函数的date类型可以是DATE, DATETIME, TIMESTAMP类型

        DATE_ADD(date, INTERVAL  d_value  d_type) : 在当前日期的基础上加上一段时间或日期;(d_type 可以是YEAR, MINUTE, SECOND, DAY等)

         DATE_SUB(date, INTERVAL  d_value  d_type) : 在当前日期的基础上减去一段时间或日期;(d_type 可以是YEAR, MINUTE, SECOND, DAY等)

        DATEDIFF(date1, date2) : 返回两个日期的时间差,结果是天;

        TIMEDIFF(date1, date2) : 返回两个时间的时间差,结果是时间;

        NOW() : 返回当前时间;

        10° UNIX_TIMESTAMP() : 返回1970-1-1到现在的秒数。

        11° FROM_UNIXTIME() : 返回年月日。实际开发中,可能会使用int类型来保存一个时间戳,然后使用FROM_UNIXTIME()函数进行转换

        2.代码演示 :  

                 CURRENT_DATE :  当前日期;
                
CURRENT_TIME : 当前时间;
                
CURRENT_TIMESTAMP : 当前时间戳;

SELECT CURRENT_DATE(),
			 CURRENT_TIME(),
			 CURRENT_TIMESTAMP()
			 FROM DUAL;

                4° DATE(datetime) : 返回当前时间的日期部分;
                
DATE_ADD(date, INTERVAL d_value d_type) : 在当前日期的基础上加上一段时间或日期;
                
 DATE_SUB(date, INTERVAL d_value d_type) : 在当前日期的基础上减去一段时间或日期;

                先来建一张新闻消息表,代码如下:

CREATE TABLE IF NOT EXISTS `timetable`(
	`id` MEDIUMINT NOT NULL DEFAULT 0,
	`name` VARCHAR(50) NOT NULL DEFAULT '',
	`send_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 
							ON UPDATE CURRENT_TIMESTAMP
);

INSERT INTO `timetable`
			VALUES(1, '震惊,XXX', '2023-5-14 10:35:22'),
						(2, '卧槽,XXX', '2023-5-14 10:36:42'),
						(3, '我趣,XXX', '2023-5-14 10:40:12');

SELECT * FROM `timetable`;

                消息表如下 : 

                现要求——
                ①取出name中含有卧槽的新闻及其发布时间,且发布时间仅要求日期;

SELECT `name`, DATE(`send_time`)
			FROM `timetable`
			WHERE `name` LIKE '卧槽%';

                ②取出20分钟内发布的新闻;

/*
    WHERE子句的含义是要求发布时间 + 20分钟后大于当前时间的新闻,
    即20分钟内发布的新闻。
*/
# 思路一 : 
SELECT * FROM `timetable`
			WHERE DATE_ADD(`send_time`, INTERVAL 20 MINUTE) >= NOW();

# 思路二 : 
SELECT * FROM `timetable`
			WHERE DATE_SUB(NOW(), INTERVAL 20 MINUTE) <= `send_time`;

                 DATEDIFF(date1, date2) : 返回两个日期的时间差,结果是天;
                8° TIMEDIFF(date1, date2) : 返回两个时间的时间差,结果是时间;

# 求一个2002-1-1日出生的人,活到120岁还能活几天
SELECT DATEDIFF(DATE_ADD('2002-1-1', INTERVAL 120 YEAR), DATE(NOW()))
			FROM DUAL;
# 求时间差
SELECT TIMEDIFF('20:14:44', '14:22:11') FROM DUAL;

                10° UNIX_TIMESTAMP() : 返回1970-1-1到现在的秒数。
                11° FROM_UNIXTIME() : 返回年月日。实际开发中,可能会使用int类型来保存一个时间戳,然后使用FROM_UNIXTIME()函数进行转换。

SELECT UNIX_TIMESTAMP(), 
			FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y-%m-%d %H:%i:%s') AS `STAMP`
			FROM DUAL;


八、加密函数

        1.基本语法 : 

        1° SELECT USER() FROM table_name;        ——查询当前登录到MySQL的用户及其IP;

        SELECT DATABASE();         ——查询当前使用的数据库名称;

        SELECT MD5(str);         ——根据当前字符串,通过MD5特定算法得到一个32位的密码,常用于对数据库用户密码的加密,并且数据库中保存的用户密码,往往就是MD5加密后的密码;

        SELECT * FROM mysql.user; ——查询mysql数据库中的所有用户。

        2.代码演示 : 

                 SELECT USER() FROM table_name;  
                 SELECT DATABASE();

SELECT USER(), DATABASE();

                 SELECT MD5(str) 

SELECT MD5('123456'), MD5('2333');

CREATE TABLE IF NOT EXISTS `test_users`(
	`id` MEDIUMINT NOT NULL DEFAULT 0,
	`name` VARCHAR(32) NOT NULL DEFAULT '',
	`pwd` CHAR(32) NOT NULL DEFAULT ''
);

INSERT INTO `test_users`
			VALUES(11, 'Cyan', MD5('123456')),
						(12, 'Raina', MD5('2333'));
						
SELECT * FROM `test_users`
			WHERE `pwd` = MD5('123456') OR `pwd` = MD5('2333');

                 SELECT * FROM mysql.user; ——查询mysql数据库中的所有用户

SELECT * FROM mysql.user;


九、 流程控制函数

        1.基本语法 : 

        SELECT IF(expr_1, expr_2, expr_3) FROM table_name; ——若expr_1为TRUE则返回expr_2,否则返回expr_3)。(相当于java中的三目运算符)

        SELECT IFNULL(expr_1, expr_2) FROM table_name; ——若expr_1为NULL,返回expr_2,否则返回expr_1)。

        SELECT CASE WHEN expr_1 THEN expr_2

                                      WHEN expr_3 THEN expr_4...

                                      WHEN expr_n-1 THEN expr_n

                                      ELSE expr_e END; ——若expr_1成立,则返回expr_2;若expr_3成立,则返回expr_4,依此类推;若所有条件都不成立,返回ELSE中的内容。(相当于java中自带break语句的case分支语句)。

        2.代码演示 : 

                 SELECT IF(expr_1, expr_2, expr_3) FROM table_name;
                2° SELECT IFNULL(expr_1, expr_2) FROM table_name; 

SELECT IF(2 < 3, 'haha', 'wuwu') AS `if_1`,
			 IF(2 > 3, 'hah', 'wuwuw') AS `if_2`,
			 IFNULL(NULL, 2333) AS `ifnull_1`,
			 IFNULL(666, 2333) AS `ifnull_2`;

        ​​​​​​​         SELECT CASE WHEN expr_1 THEN expr_2

                                      WHEN expr_3 THEN expr_4...

                                      WHEN expr_n-1 THEN expr_n

                                      ELSE expr_e END;

SELECT `name`, `sex`, `English`, `Math`, 
			(SELECT CASE WHEN `sex` = 'female' THEN 'woman'
            WHEN `sex` = 'male' THEN 'man'
            ELSE 'unknown' END) AS `test`
			FROM `stus`;

        System.out.println("END-----------------------------------------------------------------------------");

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/524608.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux基础学习---6、系统定时任务、软件包管理、虚拟机克隆

1、系统定时任务 1.1 crontab 服务管理 1、重新启动crond服务1.2 crontab 定时任务设置 1、基本语法crontab [选项] 2、选项说明选项功能-e编辑crontab定时任务-l查询crontab任务-r删除当前用户所有的crontab任务 3、参数说明 &#xff08;1&#xff09;进入crontab编辑页面…

SpringSecurity 快速入门

1. 认证授权概述 1.1 认证授权概念 1.1.1 认证 在互联网中&#xff0c;我们每天都会使用到各种各样的APP和网站&#xff0c;在使用过程中通常还会遇到需要注册登录的情况&#xff0c;输入你的用户名和密码才能正常使用&#xff0c;也就是说成为这个应用的合法身份才可以访问…

项目开发工具【EditorConfig,Prettier,ESLint,Git Husky,Commitizen,Commitlint】

项目开发工具【六款】 前言 六款插件让你项目更加的规范✨✨✨ EditorConfig&#xff1a;为不同编辑器上处理同一项目的多个开发人员维护一致的编码风格Prettier&#xff1a;一款强大的代码格式化工具&#xff0c;是当下前端最流行的代码格式化工具ESLint&#xff1a;查找潜在…

图像增强库albumentations(v1.3.0, 2023.5)中所有图像增强方法记录(class)

整体概要 变换类型具体类模糊/噪声AdvancedBlur*&#xff0c;Blur*&#xff0c;Downscale*&#xff0c;Defocus*&#xff0c;GlassBlur*&#xff0c;GaussianBlur*&#xff0c;GaussNoise*&#xff0c;ImageCompression*&#xff0c;ISONoise*&#xff0c;MultiplicativeNoise…

MySQL基础-SQL介绍

本文介绍MySQL中SQL通用语法&#xff0c;包括&#xff1a;DDL&#xff0c;DML&#xff0c;DQL&#xff0c;DCL 文章目录 SQL分类DDL&#xff08;数据定义语言&#xff09;数据库操作表操作 DML&#xff08;数据操作语言&#xff09;添加数据更新和删除数据 DQL基础查询条件查询…

Linux sed流编辑器

sed流编辑器 sed是一种流编辑器&#xff0c;流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 sed编辑器可以根据命令来处理数据流中的数据&#xff0c;这些命令要么从命令行中输入&#xff0c;要么存储在一个命令文本文件中。 sed 的工作流程主要包括读取…

智能的本质人工智能与机器人领域的64个大问题阅读笔记(二)

目录 如果一个人不能理解所说语言的全部信息&#xff0c;那么说这种语言也是没有意义的。 “20年内&#xff0c;机器将能够胜任人类承担的所有工作”&#xff08;赫伯特西蒙&#xff0c; 1965&#xff09;。 以及21世纪的人类愿意相信超智能机器时代的到来&#xff0c;与前几…

项目中大批量数据查询导致OOM

项目中有时候一次性将大批量数据都查出来到内存中导致内存占用过多很可能会导致内存溢出 问题复现 搭建一个本地项目。需求描述&#xff1a;查询表call_task中待拨打的数据进行拨打&#xff0c;call_task中一次可能会有大批量数据需要处理。本次准备了1万条数据。 /*** 查询…

【Java校招面试】基础知识(九)——Redis

目录 前言一、基础概念二、Redis持久化三、Redis分布式存储后记 前言 本篇主要介绍Redis数据库的相关内容。 “基础知识”是本专栏的第一个部分&#xff0c;本篇博文是第九篇博文&#xff0c;如有需要&#xff0c;可&#xff1a; 点击这里&#xff0c;返回本专栏的索引文章点…

(c语言实现)数据结构链表oj题(2)

前言 &#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏: &#x1f354;&#x1f35f;&#x1f32f;C语言进阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f349;本篇简介:>:分析力扣中有关链表的部分题目. 目录 前言一、链表中倒…

HTML第二天

第二天 表格 表格的主要作用 1.表格主要用于显示、展示数据&#xff0c;因为它可以让数据显示的非常的规整&#xff0c;可读性非常好。特别是后台展示数据的时候&#xff0c;能够熟练运用表格就显得很重要。一个清爽简约的表格能够把繁杂的数据表现得很有条理2.表格不是用来…

Java基础知识:1,DOS命令

1&#xff0c;盘名称 加 : 进入该盘目录下 例如&#xff1a;e: 进入e盘 2&#xff0c;dir 查看当前路径下文件和文件夹 3&#xff0c;md 文件夹名字 》 创建文件夹&#xff08;md后要加空格&#xff09; &#xff08;md make directory&#xff09; 4&#xff0c;c…

Oracle11g下载与安装

一、Oracle11g下载 官网下载地址&#xff1a;Oracle Database 11g Release 2 for Microsoft Windows (x64) 选择"Accept License Agreement"&#xff0c;点击"win64_11gR2_database_1of2.zip"和"win64_11gR2_database_2of2.zip"&#xff0c;进行…

Debian11之 K3s 部署K8S集群

K3S 架构方案 Server 节点指的是运行 k3s server 命令的主机&#xff0c;control plane 和数据存储组件由 K3s 管理Agent 节点指的是运行 k3s agent 命令的主机&#xff0c;不具有任何数据存储或 control plane 组件Server 和 Agent 都运行 kubelet、容器运行时和 CNI 基于 …

GPUAnimation的Mesh动画烘焙到贴图,学习笔记

0.动画烘焙贴图工具作者 Unity-GPU Animation - 知乎 1.安装学习项目 GitHub - striter/Unity3D-ToolChain_StriteR 复制到URP项目中&#xff0c;并删掉多余报错的和GPUAnimation无关的模块 2.把学习项目中的HLSL搬到低版本Unity的CG版本 安装FBX Exporter把烘焙好的mesh导…

【秒杀系统】高并发编程入门学习

文章目录 一、秒杀系统的基本构成二、秒杀系统的常见问题三、秒杀系统的解决技术 一、秒杀系统的基本构成 二、秒杀系统的常见问题 高并发 大量的请求进来&#xff0c;在Redis缓存层会发生缓存雪崩 缓存击穿 缓存穿透这些问题&#xff0c;这些问题就会打挂MySQL。这样就会导致…

23种设计模式之建造者模式(Builder Pattern)

前言&#xff1a;大家好&#xff0c;我是小威&#xff0c;24届毕业生&#xff0c;在一家满意的公司实习。本篇文章将23种设计模式中的建造者模式&#xff0c;此篇文章为一天学习一个设计模式系列文章&#xff0c;后面会分享其他模式知识。 如果文章有什么需要改进的地方还请大佬…

C++ STL 之 list 的模拟实现

文章目录 &#x1f4cd;前言&#x1f308;STL之list的模拟实现&#x1f388;list_node节点的定义&#x1f388;iterator迭代器&#x1f56f;️构造函数&#x1f56f;️*it&#x1f56f;️->&#x1f56f;️it/it&#x1f56f;️it--/--it&#x1f56f;️! / &#x1f388;l…

[MAUI程序设计]界面多态与实现

文章目录 需求一&#xff1a;在不同设备上使用不同 UI 外观定义控件 UI 外观基于平台自定义配置 需求二&#xff1a;在不同数据类别中使用不同的 UI 外观定义视图 UI 外观创建数据模板创建选择器定义数据 需求三&#xff1a;在不同数据状态中使用不同的 UI 外观使用绑定模型更改…

【腾讯云FinOps Crane 集训营】Crane 助力云原生用户充分发挥云上资源的最大价值,帮助企业降本增效之利器

文章目录 Crane 助力云原生用户充分发挥云上资源的最大价值&#xff0c;帮助企业降本增效之利器前言云上资源成本虚高的现状一、云原生的崛起&#xff1a;服务上云二、服务上云的魔咒&#xff1a;服务健壮了&#xff0c;钱袋子却空了三、钱都去哪了&#xff1a;云资源无序投入的…