整理 MySQL 常用函数,小伙伴们在也不发愁了

news2024/11/25 4:57:28

在这里插入图片描述

前言

  为了简化操作,MySQL 提供了大量的函数,会对传递进来的参数进行处理,并返回一个处理结果,也就是返回一个值。MySQL 包含了大量并且丰富的函数,这里只是对 MySQL 常用函数进行简单的分类,大概包括数值型函数、字符串型函数、日期时间函数、聚合函数等。剩下的比较罕见的函数就不再整理了,小伙伴们可以到「MySQL 官网」查询。

MySQL常用函数
1.字符串函数
2.数字函数
3.日期函数
4.聚合函数
5.流程控制函数

MySQL函数是MySQL数据库提供的内部函数,这些内部函数可以帮助用户更加方便的处理表中的数据,可以使MySQL数据库的功能更加强大。SELECT语句及其条件表达式都可以使用这些函数。同时,INSERT、UPDATE、DELECT语句及其条件表达式也可以使用这些函数。例如,表中的某个数据是负数,现在需要将这个数据显示为正数。这就可以使用绝对值函数。

一、字符串函数

字符串函数是最常用的函数,可以对字符串类型数据进行处理,MySQL也支持许多字符串函数,以下是MySQL支持的字符串函数的表。

函数名称作 用
ASCII(s)获取字符串的 ASCII 码
CHAR_LENGTH(s)返回字符串的长度(以字符为单位)
CHARACTER_LENGTH(s)返回字符串的长度(以字符为单位)
CONCAT(s1,s2…,sn)合并字符串函数,将两个或多个表达式相加。
如果该函数中的任何参数为 null,返回结果为 null
CONCAT_WS(x, s1,s2…sn)同 CONCAT 函数,但是每个字符串之间要加上 x,x 可以是分隔符
FIELD(s,s1,s2…)返回第一个字符串 s 在字符串列表(s1,s2…)中的位置
FIND_IN_SET(s1,s2)返回在字符串s2中与s1匹配的字符串的位置
FORMAT(x,n)将数字 x 进行格式化 “#,###.##”,保留到小数点后 n 位,最后一位四舍五入
INSERT替换字符串函数
INSTR(s1,x,len,s2)字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串
LCASE将字符串转换为小写
LEFT(s,n)从左侧字截取符串,返回字符串 s 的前 n 个字符
LENGTH返回字符串的长度(以字节为单位)
LOCATE(s1,s)从字符串 s 中获取 s1 的开始位置
LOWER将字符串转换为小写
LPAD(s1,len,s2)在字符串 s1 的开始处填充字符串 s2,使字符串长度达到 len
LTRIM(s)去掉字符串 s 开始处的空格
MID(s,n,len)从字符串 s 的 n 位置截取长度为 len 的子字符串
POSITION(s1 IN s)从字符串 s 中获取 s1 的开始位置
REPEAT(s,n)将字符串 s 重复 n 次
REPLACE(s,s1,s2)字符串替换函数,将字符串 s2 替代字符串 s 中的字符串 s1
REVERSE字符串反转(逆序)函数,返回与原始字符串顺序相反的字符串
RIGHT(s,n)从右侧字截取符串,返回字符串 s 的后 n 个字符
RPAD(s1,len,s2)在字符串 s1 的结尾处添加字符串 s2,使字符串的长度达到 len
RTRIM(s)去掉字符串 s 结尾处的空格
SPACE(n)返回 n 个空格
STRCMP(s1,s2)比较字符串 s1 和 s2,如果相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1
SUBSTR(s, start, length)从字符串 s 的 start 位置截取长度为 length 的子字符串
SUBSTRING(s, start, length)截取字符串,从字符串 s 的 start 位置截取长度为 length 的子字符串
TRIM(s)删除字符串 s 开始和结尾处的空格
UCASE(s)将字符串转换为大写
UPPER将字符串中的字母转换为大写

二、数学函数

  除去加减乘除的符号外,数字计算上,MySQL也提供了一些常用的数学计算函数,主要用于处理数字,包括整型、浮点数等。数学函数包括绝对值函数、正弦函数、余弦函数、获取随机数的函数等。

函数名称作 用
ABS(x)返回数字的绝对值
ACOS求反余弦值,与函数 COS 互为反函数
ASIN求反正弦值,与函数 SIN 互为反函数
ATAN(x)求反正切值,与函数 TAN 互为反函数
CEIL(x)返回不小于参数的最小整数,即向上取整
CEILING)返回不小于参数的最小整数,即向上取整
COS(x)求余弦值
COT(x)求余切值
DEGREES(x)将弧度转换为角度
DIV用于整数除法
EXP(x)返回 e 的 x 次方
FLOOR(x)向下取整,返回小于或等于 x 的最大整数
GREATEST(expr1, expr2, …)返回列表中的最大值
LEAST(expr1, expr2, …)返回列表中的最小值
LOG2(x)返回以 2 为底的对数
LOG10返回以10为底的数字的自然对数
LOG返回一个数字的自然对数
MOD(x,y)返回 x 除以 y 以后的余数
PI()返回圆周率(3.141593)
POW(x,y)返回 x 的 y 次方
POWER(x,y)返回 x 的 y 次方
RADIANS(x)将角度转换为弧度
RAND生成一个0~1之间的随机数,传入整数参数是,用来产生重复序列
ROUND对所传参数进行四舍五入
SIGN返回参数的符号
SIN求正弦值
SQRT求二次方根
TAN(x)求正切值
TRUNCATE(x,y)返回数值 x 保留到小数点后 y 位的值

三、日期时间函数

3.1 日期时间格式化

DATE_FORMAT(date,format)

根据format字符串格式化date值,在format字符串中可用标志符。具体的参数如下:

format含义
%a工作日的缩写名称(Sun~Sat)
%b月份的缩写名称(Jan…Dec)
%c月份,数字形式(0~12)
%D带有英语后缀的该月日期(0th, 2st, 3nd,…)
%d该月日期,数字形式(00~31)
%e该月日期,数字形式((0~31)
%f微秒(000000 …999999)
%H以 2 位数表示 24 小时(00~23)
%h, %I以 2 位数表示 12 小时(01~12)
%i分钟,数值(00-59)
%j—年中的天数(001~366)
%k以 24 小时(0~23)表示
%l以12小时(1~12)表示
%M月份名称(January~December)
%m月份,数字形式(00~12)
%p上午(AM) 或下午(PM)
%r时间,12小时制(小时 (hh): 分钟 (mm) : 秒数 (ss) 后加 AM 或 PM)
%S, %s以 2 位数形式表示秒(00~59)
%T时间,24 小时制(小时 (hh): 分钟 (mm): 秒数 (ss))
%U周(00~53),其中周日为每周的第一天
%u周(00~53),其中周一为每周的第一天
%V周(01~53),其中周日为每周的第一天,和%X同时使用
%v周(01~53),其中周一为每周的第一天,和%x同时使用
%W星期标识(周日、周一、周二…周六)
%w—周中的每日(0= 周日…6= 周六)
%X该周的年份,其中周日为每周的第一天,数字形式,4 位数,和%V同时使用
%x该周的年份,其中周一为每周的第一天,数字形式,4位数,和%v同时使用
%Y4 位数形式表示年份
%y2 位数形式表示年份

具体执行结果如下:

select DATE_FORMAT('2022-12-11 00:22:30','%Y/%m/%d');
select DATE_FORMAT('2022-12-11 00:22:30','%Y%m%d');
select DATE_FORMAT('2022-12-11 00:22:30','%m');
select DATE_FORMAT('2022-12-11 00:22:30','%H');

3.2 日期函数

函数名称作 用
CURDATE()当前系统的日期
CURRENT_DATE()返回当前日期
CURRENT_TIME返回当前系统的时间
CURRENT_TIMESTAMP()返回当前日期和时间
CURTIME()返回当前时间
DATE_FORMAT格式化指定的日期,根据参数返回指定格式的值
DATE()从日期或日期时间表达式中提取日期值
DATEDIFF(d1,d2)获取两个日期之间间隔,返回参数 1 减去参数 2 的值
DAY(date)返回日期值 d 的日期部分
DAYNAME(d)获取指定曰期对应的星期几的英文名称
DAYOFMONTH(d)获取指定日期是一个月中是第几天,返回值范围是1~31
DAYOFWEEK(d)获取指定日期对应的一周的索引值,1 星期日,2 星期一,以此类推
DAYOFYEAR(d)获取指定曰期是一年中的第几天,返回值范围是1~366
FROM_DAYS(n)计算从 0000 年 1 月 1 日开始 n 天后的日期
FROM_UNIXTIME将 UNIX 时间戳转换为时间格式,与UNIX_TIMESTAMP互为反函数
HOUR(time)返回 t 中的小时值,返回值的范围是 0 到 23
LAST_DAY(d)返回给给定日期的那一月份的最后一天
LOCALTIME()返回当前日期和时间
LOCALTIMESTAMP()返回当前日期和时间
MAKETIME(hour, minute, second)组合时间,参数分别为小时、分钟、秒
MINUTE(time)返回 t 中的分钟值,范围是 0 到 59
MONTH(date)获取指定日期中的月份,范围为 1 到 12
MONTHNAME获取指定日期中的月份英文名称
NOW()返回当前系统的日期和时间值
PERIOD_ADD(period, number)为 年-月 组合日期添加一个时段
PERIOD_DIFF(period1, period2)返回两个时段之间的月份差值
QUARTER(d)返回日期的一年中的季度,范围为 1 到 4
SEC_TO_TIME(s)将以秒为单位的时间 s 转换为时分秒的格式,与TIME_TO_SEC 互为反函数
SECOND(time)返回 t 中的秒钟值,范围为 0 到 59
STR_TO_DATE(string, format)将字符串转变为日期
SUBDATE(d,n)日期 d 减去 n 天后的日期
SUBTIME(t,n)时间减法运算,时间 t 减去 n 秒的时间
SYSDATE()返回当前日期和时间
TIME_FORMAT(t,f)按表达式 f 的要求显示时间 t
TIME_TO_SEC将时间参数转换为秒数
TIME(expression)提取传入表达式的时间部分
TIMEDIFF(time1, time2)计算时间差值
TO_DAYS(d)计算日期 d 距离 0000 年 1 月 1 日的天数
UNIX_TIMESTAMP获取UNIX时间戳函数
WEEK(d)获取指定日期是一年中的第几周,返回值的范围是否为 0〜52 或 1〜53
WEEKDAY(d)获取指定日期在一周内对应的工作日索引,0 表示星期一,1 表示星期二
WEEKOFYEAR(d)计算日期 d 是本年的第几个星期,范围是 0 到 53
YEAR(d)获取年份,范围为 1000 到 9999
YEARWEEK(date, mode)返回年份及第几周(0到53),mode 中 0 表示周天,1表示周一,以此类推
  • 获取当前系统时间
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());
SELECT EXTRACT(YEAR_MONTH FROM CURRENT_DATE);
SELECT EXTRACT(DAY_SECOND FROM CURRENT_DATE);
SELECT EXTRACT(HOUR_MINUTE FROM CURRENT_DATE);

3.3 日期函数加减运算

函数名称作 用
ADDDATE(date,INTERVAL expr unit)向日期添加指定的时间间隔
ADDTIME(date,INTERVAL expr unit)时间加法运算,在原始时间上添加指定的时间
DATE_ADD(date,INTERVAL expr unit)向日期添加指定的时间间隔
DATE_SUB(date,INTERVAL expr unit)向日期减去指定的时间间隔

  这里简单介绍其中的参数含义,date 参数指定开始日期或日期时间值。 expr 是一个表达式,指定要从开始日期添加或减去的间隔值,而unit则指明表达式expr应该如何被解释,其值为

unit值说明expr 格式
secondseconds
minute分钟minutes
hour小时hours
dayday
monthmonth
yearyear
minute_second分钟和秒minutes:seconds
hour_minute小时和分钟hours:minutes
day_hour天和小时hours hours
day_minute天、小时、分钟hours hours:minutes
day_second天、小时、分钟、秒hours hours:minutes:seconds
year_month年和月year-month

具体用法如下:

select DATE_ADD('2022-12-11' ,INTERVAL 1 DAY);
select DATE_ADD('2022-12-11' ,INTERVAL 1 MONTH);
select DATE_ADD('2022-12-11' ,INTERVAL -1 DAY);

3.4 关于时间的查询

  • 获取年月日时分秒周
SELECT now(),dayofweek(now()),YEAR(now()),MONTH(now()),DAY(now()),HOUR(now()),MINUTE(now()),SECOND(now()),WEEK(now());
  • 结合某表的常用查询
-- 今天
select * from sys_log_login where to_days(createTime) = to_days(now());
-- 查询最近一周的数据
select * from sys_log_login where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(createTime);
-- 查询上一周数据
SELECT * FROM sys_log_login WHERE YEARWEEK(date_format(now() ,'%Y-%m-%d'))= YEARWEEK(now()) -1
-- 近30天
SELECT *FROM sys_log_login  where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date( createTime)
-- 查询最近一月的数据
select * from sys_log_login where DATE_SUB(CURDATE(), INTERVAL 1 MONTH) <= date(createTime);
-- 查询本月数据
SELECT * FROM sys_log_login WHERE DATE_FORMAT(createTime, '%Y%m')=DATE_FORMAT(CURDATE() , '%Y%m')
-- 查询上一月数据
SELECT * FROM sys_log_login WHERE PERIOD_DIFF(date_format(now() ,'%Y%m'), date_format(createTime ,'%Y%m'))=1
-- 查询本年数据
select * from `sys_log_login` where YEAR(createTime)=YEAR(NOW());
-- 查询上一年数据
select * from `sys_log_login` where year(createTime)=year(date_sub(now(),interval 1 year));
-- 按日查询
SELECT DATE_FORMAT(createTime, '%Y-%m-%d') AS time,COUNT(*) FROM sys_log_login GROUP BY time
-- 按周查
SELECT DATE_FORMAT(createTime, '%Y-%u') AS time,COUNT(*) FROM sys_log_login GROUP BY time
-- 按月查
SELECT DATE_FORMAT(createTime,'%Y-%m') AS time,COUNT(*) FROM sys_log_login GROUP BY time
-- 按年查
SELECT DATE_FORMAT(createTime,'%Y') AS time,COUNT(*) FROM sys_log_login GROUP BY time
-- 按月分组查询
SELECT
	SUM(case MONTH(createTime) WHEN 1 THEN 1 ELSE 0 END) AS 一月份,
	SUM(case MONTH(createTime) WHEN 2 THEN 1 ELSE 0 END) AS 二月份,
	SUM(case MONTH(createTime) WHEN 3 THEN 1 ELSE 0 END) AS 三月份,
	SUM(case MONTH(createTime) WHEN 4 THEN 1 ELSE 0 END) AS 四月份,
	SUM(case MONTH(createTime) WHEN 5 THEN 1 ELSE 0 END) AS 五月份,
	SUM(case MONTH(createTime) WHEN 6 THEN 1 ELSE 0 END) AS 六月份,
	SUM(case MONTH(createTime) WHEN 7 THEN 1 ELSE 0 END) AS 七月份,
	SUM(case MONTH(createTime) WHEN 8 THEN 1 ELSE 0 END) AS 八月份,
	SUM(case MONTH(createTime) WHEN 9 THEN 1 ELSE 0 END) AS 九月份,
	SUM(case MONTH(createTime) WHEN 10 THEN 1 ELSE 0 END) AS 十月份,
	SUM(case MONTH(createTime) WHEN 11 THEN 1 ELSE 0 END) AS 十一月份,
	SUM(case MONTH(createTime) WHEN 12 THEN 1 ELSE 0 END) AS 十二月份
FROM sys_log_login
WHERE
	YEAR(createTime) = YEAR(CURDATE())

四、聚合函数

  聚合函数又称为组函数,一般结合分组进行使用,用来统计和计算,比如不想知道每条学生记录的确切信息,只想知道学生记录数量。聚合函数在平常的sql中十分常用,不需要查阅文档就应该保证熟练使用,这里列举如下:

函数名称作 用
AVG(expression)返回一个表达式的平均值
COUNT(expression)返回由 SELECT 语句检索的行中 expr 的非 NULL 值的计数
GROUP_CONCAT()将group by产生的同一个分组中的值连接起来,返回一个字符串结果
MAX(expression)返回字段 expression 中的最大值
MIN(expression)返回字段 expression 中的最小值
SUM(expression)返回指定字段的总和

需要注意的是,聚合函数不会对null值进行计算。由于它会略过null值,具体业务情况需要酌情分析。

这里主要来看下 GROUP_CONCAT 函数的使用,如下所示:

select date,GROUP_CONCAT(sales) from order_details group by date order by date limit 10;

+------------+-------------------------------+
| date       | GROUP_CONCAT(sales)           |
+------------+-------------------------------+
| 2019-01-01 | 39,44,37,38,88,87,6,21,91,78  |
| 2019-01-02 | 70,12,63,52,80,35,14,88       |
| 2019-01-03 | 16,76,48                      |
| 2019-01-04 | 42,69,99,85,49,37             |
| 2019-01-05 | 63,61,50,1,100,33,60,59,90,48 |
| 2019-01-06 | 66,66,49,14,38,94,78,16,68    |
| 2019-01-07 | 30,51,13,27,58,82,75,12       |
| 2019-01-08 | 71,50,67,46,91                |
| 2019-01-09 | 62,76,51,100,11,28,32         |
| 2019-01-10 | 13,72,38,42,67,94,76          |

五、控制流程函数

MySQL有4个函数是用来进行条件操作的,这些函数可以实现SQL的条件逻辑,允许开发者将一些应用程序业务逻辑转换到数据库后台。

函数名称作 用
IF(expr,v1,v2)如果表达式 expr 成立,返回 v1,否则返回 v2
IFNULL(v1,v2)如果 v1 的值不为 NULL,则返回 v1,否则返回 v2
NULLIF(arg1,arg2)如果arg1=arg2返回NULL;否则返回arg1
case
when <求值表达式> then <表达式1>
when <求值表达式> then <表达式2>
else <表达式>
end
如果testN是真,则返回resultN,否则返回default
当一个case子句中有多个判断逻辑时、字段类型需要一致。
case <表达式>
when <求值表达式> then <表达式1>
when <求值表达式> then <表达式2>
else <表达式>
end
如果test和valN相等,则返回resultN,否则返回default
当一个case子句中有多个判断逻辑时、字段类型需要一致。
ISNULL(expression)判断表达式是否为 NULL

这里举个完整的示例,我们先看原始数据:

idagesexnamescore
1220周蓉91
2180周秉昆45
3251周秉义92
4221蔡晓光82
5240郝冬梅82
6170乔春燕56
7210郑娟38
8181郝德宝61

统计优秀、良好、合格、不合格人数。

select  
case
	when  score>=90 then '优秀' 
	when  score>=80 and score <90 then '良好'
	when  score>=60 and score<80 then '合格'
	when  score<60 then '不合格'
end as type,count(*) as '人数' from t_score group by type;

六、系统信息函数

  系统信息函数用来查询MySQL数据库的系统信息。例如,查询数据库的版本,查询数据库的当前用户等。本小节将详细讲解系统信息函数的作用和使用方法。

函数名称作用
VERSION()获取MySQL版本号、连接数、数据库名
CONNECTION_ID()获取服务器的连接数,也就是到现在为止MySQL服务的连接次数
DATABASE()获取当前数据库名
SCHEMA()获取当前数据库名
USER()获取当前用户的名称
SYSTEM_USER()获取当前用户的名称
SESSION_USER()获取当前用户的名称
CURRENT_USER()获取当前用户的名称
CHARSET(str)获取字符串str的字符集,一般情况就是系统的默认字符集
COLLATION(str)获取字符串str的字符排列方式
LAST_INSERT_ID()获取最后生成的AUTO_INCREMENT值

七、加密函数

  加密函数是MySQL中用来对数据进行加密的函数。因为数据库中有些很敏感的信息不希望被其他人看到,就应该通过加密方式来使这些数据变成看似乱码的数据。例如用户的密码,就应该经过加密。下面是各种加密函数的名称、作用和使用方法。

函数名称作用
PASSWORD(str)对字符串str进行加密。一般情况下,主要是用来给用户密码加密的
MD5(str)主要对普通的数据进行加密
ENCODE(str,pswd_str)使用字符串pswd_str来加密字符串str
DECODE(crypt_str,pswd_str)使用字符串pswd_str来为crypt_str解密
SHA()计算字符串str的安全散列算法(SHA)校验和
SELECT ENCODE('xufeng','key');
SELECT DECODE(ENCODE('xufeng','key'),'key');#加解密放在一起
SELECT MD5('123456');
SELECT SHA('123456');

八、其它函数

函数名称作 用
CAST(expression AS data_type)用于将某种数据类型的表达式显式转换为另一种数据类型

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

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

相关文章

网站域名备案查询方法,批量查询网站域名备案的教程

网站域名备案查询方法&#xff0c;批量查询网站域名备案的教程 批量查域名备案操作步骤: 第一步、打开SEO综合查询工具。 第二步、添加需要查询的网站域名&#xff08;要查多少放多少&#xff0c;一行一个域名&#xff09;。 第三步、勾选域名ICP备案。 第四步、点击开始查询…

python带你体验唯美雪景,愿这个冬天的你,不缺暖阳

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 大雪已至&#xff0c;冬天无恙&#xff0c;愿这个冬天的你&#xff0c;不缺暖阳&#xff0c;好日常在 一、画一朵小雪花 import turtle import time from turtle import * # codingutf-8def sno…

%00截断

%00截断 CVE-2013-4547 影响版本&#xff1a;Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7 影响说明&#xff1a;绕过服务器策略&#xff0c;上传webshell 环境说明&#xff1a;Nginx 1.4.2 /test.jpg%00.php该漏洞利用了Nginx错误的解析了URL地址&#xff0c;导致可以绕过服务端限…

Armadillo与OpenCV矩阵数据mat、vec与Mat的相互转换

本文介绍在C 语言中&#xff0c;矩阵库Armadillo的mat、vec格式数据与计算机视觉库OpenCV的Mat格式数据相互转换的方法。 在C 语言的矩阵库Armadillo与计算机视觉库OpenCV中&#xff0c;都有矩阵格式的数据类型&#xff1b;而这两个库在运行能力方面各有千秋&#xff0c;因此实…

shiro-spring-boot-starter

第2.1.7章 WEB系统最佳实践Spring文件配置之spring-shiro.xml 2016年还在使用shiro&#xff0c;后来使用应用springboot之后&#xff0c;因为有了网关&#xff0c;感觉网关就可以做一些拦截&#xff0c;就没必要一定要使用shiro&#xff0c;如果你使用平台还需要每个系统自己做…

小白学编程(Java)20:判断一个数是否是质数

解题思路&#xff1a; 第一步&#xff1a;弄明白质数是什么&#xff1f; 质数的定义&#xff1a;质数又称素数。一个大于1的自然数&#xff0c;除了1和它自身外&#xff0c;不能被其他自然数整除的数叫做质数&#xff1b;否则称为合数&#xff08;规定1既不是质数也不是合数&am…

微信公众号开发——获取AccessToken接口调用凭据

&#x1f60a; 作者&#xff1a; 一恍过去&#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390&#x1f38a; 社区&#xff1a; Java技术栈交流&#x1f389; 主题&#xff1a; 微信公众号开发——获取AccessToken接口调用凭据⏱️ 创作时间&#xff1…

Typora的使用

一&#xff0e;标题&#xff1a;六级标题 1 .一级标题 2. 二级标题 二级标题 &#xff1a; ## 加一个空格 现在加 ## 空格 然后我们把光标放在其他地方 点击一下 3 层级列表 层级列表: > 空格 回车 在这一部分&#xff0c;我们先来讲解三个概念&#xff1a…

基于java+springboot+mybatis+vue+mysql的篮球竞赛预约平台

项目介绍 随着人们生活质量提高&#xff0c;越来越多的年轻人喜欢足球。尤其是在高校之中&#xff0c;每年都会举办一些足球和篮球比赛。甚至在国际上每年也都会有一足球和篮球联赛。很多高校为了提高学生的身体素质每年也都会举办一些篮球竞赛&#xff0c;为了让这些篮球爱好…

计算机毕业设计ssm+vue基本微信小程序的奶茶点单系统

随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受客户的喜爱&#xff0c;随便点奶茶点单小程序被客户普遍使用&#xff0c;为方便客户能够…

《发现心流》

关于作者 米哈里•契克森米哈赖&#xff0c;任教于美国加州克 菜蒙特大学&#xff0c;提出并发展了心流理论。他 一直在关注人类的积极心理体验&#xff0c;完成了 大量经典的研究工作&#xff0c;是该领域最权威的 学者之一&#xff0c;被誉为积极心理学的世界级领 军人物。 …

日期与时间

目录 一、基本概念 1.1、日期和时间 1.2、本地时间 1.3、时区 1.4、夏令时 1.5、本地化 二、Date 和 Calendar 2.1、Date 2.2、Calendar 三、TimeZone 四、LocalDateTime 4.1、LocalDateTime 4.2、Duration和Period 五、ZoneDateTime 5.1、创建实例 5.2、时区转…

电子学会2020年12月青少年软件编程(图形化)等级考试试卷(一级)答案解析

目录 一、单选题&#xff08;共25题&#xff0c;每题2分&#xff0c;共50分&#xff09; 二、判断题&#xff08;共10题&#xff0c;每题2分&#xff0c;共20分&#xff09; 三、编程题【该题由测评师线下评分】&#xff08;共2题&#xff0c;共30分&#xff09; 青少年软件…

【MySQL数据库】索引到底是什么,怎么创建索引的效率最高

面试官&#xff1a;我看你简历上写了MySQL&#xff0c;对MySQL InnoDB引擎的索引了解吗&#xff1f; 候选者&#xff1a;嗯啊&#xff0c;使用索引可以加快查询速度&#xff0c;其实上就是将无序的数据变成有序&#xff08;有序就能加快检索速度&#xff09; 候选者&#xff…

微服务守护神-Sentinel-其他

引言 书接上篇 微服务守护神-Sentinel-热点-授权-系统规则 &#xff0c;上面介绍了Sentinel热点、授权、系统规则&#xff0c;本篇继续来Sentinel 剩下其他操作 自定义异常返回 当触发sentinel流控规则之后&#xff0c; sentinel就干巴巴返回异常信息&#xff0c;单纯的文字…

JVM监控及诊断工具

本文目录命令行jps 查看正在运行的Java进程jstat&#xff1a;查看JVM统计信息jinfo&#xff1a;实时查看和修改JVM配置参数jmap&#xff1a;导出内存映像文件&内存使用情况jhat&#xff1a;JDK自带堆分析工具jstack&#xff1a;打印JVM中线程快照jcmd&#xff1a;多功能命令…

docker、LXC、LXD的区别及传统的虚拟机与操作系统虚拟化的区别

1. 概念解释 1.1. Docker Docker是一个用于在集中式平台上创建、部署和运行应用程序的开源工具。这使得主机的操作系统通过容器运行具有相同Linux内核的应用程序&#xff0c;而不是创建一个完整的虚拟机。使用docker容器不需要考虑Ram和磁盘空间的分配。它能够自己处理这些需…

CopyOnWriteArrayList源码解析

CopyOnWriteArrayList源码解析 简介 我们知道 ArrayList 是线程不安全的&#xff0c;其存在一个古老的线程安全的 Vector&#xff0c;但是由于 Vector 效率太低 (方法都加了synchronzed)&#xff0c;在 JDK1.5 时 Doug Lea 提供了一个效率较高的线程安全的 CopyOnWriteArrayL…

虚拟内存(深入理解计算机系统原书第3版9节)

深入理解计算机系统&#xff08;原书第3版&#xff09;读书笔记&#xff0c;其实就是嚼碎了原文然后把一部分挑了出来摘要&#xff0c;免得读着读着忘了 文章目录前言一、物理和虚拟寻址二、地址空间三、虚拟内存作为缓存的工具1、DRAM缓存的组织结构2、页表3、页命中4、缺页5、…

[附源码]Python计算机毕业设计SSM基于的小区物业管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…