MySQL学习笔记第八天

news2025/4/5 3:24:18

第07章单行函数

4. 日期和时间函数

4.6 计算日期和时间的函数

第1组:

函数用法
DATE_ADD(datetime,lNTERVAL exprtype),ADDDATE(date,INTERVAL exprtype)返回与给定日期时间相差INTERVAL时间段的日期时间
DATE_SUB(date,lNTERVAL expr type),SUBDATE(date,INTERVAL expr type)返回与date相差INTERVAL时间间隔的日期

上述函数中type的取值:
在这里插入图片描述

SELECT NOW(),DATE_ADD(NOW(), INTERVAL 1 DAY) AS col1,
DATE_ADD('2023-05-05 21:00:00',INTERVAL 1 SECOND) AS col2,
ADDDATE('2023-05-05 21:00:00',INTERVAL 1 SECOND) AS col3,
DATE_ADD('2023-05-05 21:00:00',INTERVAL '1_1' MINUTE_SECOND) AS col4,
DATE_ADD(NOW(), INTERVAL -1 YEAR) AS col5, #可以是负数
DATE_ADD(NOW(), INTERVAL '1_1' YEAR_MONTH) AS col6 #需要单引号
FROM DUAL;
#输出
+---------------------+---------------------+---------------------+---------------------+---------------------+---------------------+---------------------+
| NOW()               | col1                | col2                | col3                | col4                | col5                | col6                |
+---------------------+---------------------+---------------------+---------------------+---------------------+---------------------+---------------------+
| 2023-05-04 13:22:57 | 2023-05-05 13:22:57 | 2023-05-05 21:00:01 | 2023-05-05 21:00:01 | 2023-05-05 21:01:01 | 2022-05-04 13:22:57 | 2024-06-04 13:22:57 |
+---------------------+---------------------+---------------------+---------------------+---------------------+---------------------+---------------------+
1 row in set (0.00 sec)

第2组:

函数用法
ADDTIME(time1,time2)返回time1加上time2的时间。当time2为一个数字时,代表的是秒,可以为负数
SUBTIME(time1,time2)返回time1减去time2后的时间。当time2为一个数字时,代表的是秒,可以为负数
DATEDIFF(date1,date2)返回date1 - date2的日期间隔天数
TIMEDIFF(time1, time2)返回time1 - time2的时间间隔
FROM_DAYS(N)返回从0000年1月1日起,N天以后的日期
TO_DAYS(date)返回日期date距离0000年1月1日的天数
LAST_DAY(date)返回date所在月份的最后一天的日期
MAKEDATE(year,n)针对给定年份与所在年份中的天数返回一个日期
MAKETIME(hour,minute,second)将给定的小时、分钟和秒组合成时间并返回
PERIOD_ADD(time,n)返回time加上n后的时间
SELECT NOW(), ADDTIME(NOW(),20), SUBTIME(NOW(),30), SUBTIME(NOW(),'1:1:3')
FROM DUAL;
#输出
+---------------------+---------------------+---------------------+------------------------+
| NOW()               | ADDTIME(NOW(),20)   | SUBTIME(NOW(),30)   | SUBTIME(NOW(),'1:1:3') |
+---------------------+---------------------+---------------------+------------------------+
| 2023-05-04 13:38:45 | 2023-05-04 13:39:05 | 2023-05-04 13:38:15 | 2023-05-04 12:37:42    |
+---------------------+---------------------+---------------------+------------------------+
1 row in set (0.00 sec)

SELECT NOW(), DATEDIFF(NOW(),'2023-05-04'),TIMEDIFF(NOW(),'2023-05-04 12:00:00')
FROM DUAL;
#输出
+---------------------+------------------------------+--------------------------------------+
| NOW()               | DATEDIFF(NOW(),'2023-05-04') | TIMEDIFF(NOW(),'2023-05-04 12:00:00') 
+---------------------+------------------------------+--------------------------------------+
| 2023-05-04 13:41:34 |                            0 | 01:41:34                              
+---------------------+------------------------------+--------------------------------------+
1 row in set (0.00 sec)

SELECT NOW(), FROM_DAYS(366),TO_DAYS('0000-12-25'),LAST_DAY(NOW())
FROM DUAL;
#输出
+---------------------+----------------+-----------------------+-----------------+
| NOW()               | FROM_DAYS(366) | TO_DAYS('0000-12-25') | LAST_DAY(NOW()) |
+---------------------+----------------+-----------------------+-----------------+
| 2023-05-04 13:42:56 | 0001-01-01     |                   359 | 2023-05-31      |
+---------------------+----------------+-----------------------+-----------------+
1 row in set (0.00 sec)

SELECT NOW(),MAKEDATE(YEAR(NOW()),32),MAKETIME(10,21,23),PERIOD_ADD(20200101010101,10)
FROM DUAL;
#输出
+---------------------+--------------------------+--------------------+-------------------------------+
| NOW()               | MAKEDATE(YEAR(NOW()),32) | MAKETIME(10,21,23) | PERIOD_ADD(20200101010101,10) |
+---------------------+--------------------------+--------------------+-------------------------------+
| 2023-05-04 13:46:16 | 2023-02-01               | 10:21:23           |                20200101010111 |
+---------------------+--------------------------+--------------------+-------------------------------+
1 row in set (0.00 sec)

4.7 日期的格式化与解析

函数用法
DATE_FORMAT(date,fmt)按照字符串fmt格式化日期date值
TIME_FORMAT(time,fmt)按照字符串fmt格式化时间time值
GET_FORMAT(date_type,format_type)返回日期字符串的显示格式
STR_TO_DATE(str, fmt)按照字符串fmt对str进行解析,解析为一个日期

上述非GET_FORMAT函数中fmt参数常用的格式符:

格式符说明格式符说明
%Y4位数字表示年份%y表示两位数字表示年份
%M月名表示月份(January,…)%m两位数字表示月份(01,02,03。。。)
%b缩写的月名(Jan.,Feb.,…)%c数字表示月份(1,2,3,…)
%D英文后缀表示月中的天数( 1st,2nd,3rd,…)%d两位数字表示月中的天数(01,02…)
%e数字形式表示月中的天数(1,2,3,4,5…….)
%H两位数字表示小数,24小时制(01,02…)%h 和%l两位数字表示小时,12小时制(01,02…)
%k数字形式表示小时,24小时制%l数字形式的小时,12小时制(1,2,3)(1,2,3,4…)
%i两位数字表示分钟(00,01,02)%S和%s两位数字表示秒(o0,01,02.….)
%W一周中的星期名称(Sunday…)%a一周中的星期缩写( Sun.,Mon.,Tues., …)
%w以数字表示周中的天数(0=Sunday,1=Monday…)
%j以3位数字表示年中的天数(001,002…)%U以数字表示年中的第几周,(1,2,3。。)其中Sunday为周中第一天
%u以数字表示年中的第几周,(1,2,3。。)其中Monday为周中第一天
%T24小时制%r12小时制
%pAM或PM%%表示%

GET_FORMAT函数中date_type和format_type参数取值如下:
在这里插入图片描述

# 日期的格式化与解析
# 格式化:日期 ---> 字符串
# 解析:  字符串 ----> 日期

#此时我们谈的是日期的显式格式化和解析
#之前,我们接触过隐式的格式化或解析
SELECT *
FROM employees
WHERE hire_date = '1993-01-13';#隐式转换
#输出
+-------------+------------+-----------+---------+--------------+------------+--------+----------+----------------+------------+---------------+
| employee_id | first_name | last_name | email   | phone_number | hire_date  | job_id | salary   | commission_pct | manager_id | department_id |
+-------------+------------+-----------+---------+--------------+------------+--------+----------+----------------+------------+---------------+
|         102 | Lex        | De Haan   | LDEHAAN | 515.123.4569 | 1993-01-13 | AD_VP  | 17000.00 |           NULL |        100 |            90 |
+-------------+------------+-----------+---------+--------------+------------+--------+----------+----------------+------------+---------------+
1 row in set (0.00 sec)

#格式化:
SELECT CURDATE(),DATE_FORMAT(CURDATE(),'%Y-%M-%D'),
DATE_FORMAT(NOW(),'%y-%m-%d'),TIME_FORMAT(CURTIME(),'%h:%i:%S'),
DATE_FORMAT(NOW(),'%Y-%M-%D %h:%i:%S %W %w %T %r')
FROM DUAL;
#输出
+------------+-----------------------------------+-------------------------------+-----------------------------------+-------------------------------------------------------+
| CURDATE()  | DATE_FORMAT(CURDATE(),'%Y-%M-%D') | DATE_FORMAT(NOW(),'%y-%m-%d') | TIME_FORMAT(CURTIME(),'%h:%i:%S') | DATE_FORMAT(NOW(),'%Y-%M-%D %h:%i:%S %W %w %T %r')    |
+------------+-----------------------------------+-------------------------------+-----------------------------------+-------------------------------------------------------+
| 2023-05-04 | 2023-May-4th                      | 23-05-04                      | 05:54:15                          | 2023-May-4th 05:54:15 Thursday 4 17:54:15 05:54:15 PM |
+------------+-----------------------------------+-------------------------------+-----------------------------------+-------------------------------------------------------+
1 row in set (0.00 sec)

#解析:格式化的逆过程
SELECT STR_TO_DATE('2023-May-4th 03:33:33 Thursday 4','%Y-%M-%D %h:%i:%S %W %w')
FROM DUAL;
#输出
+---------------------------------------------------------------------------+
| STR_TO_DATE('2023-May-4th 03:33:33 Thursday 4','%Y-%M-%D %h:%i:%S %W %w') |
+---------------------------------------------------------------------------+
| 2023-05-04 03:33:33                                                       |
+---------------------------------------------------------------------------+
1 row in set (0.00 sec)

SELECT GET_FORMAT(DATE,'USA')
FROM DUAL;
#输出
+------------------------+
| GET_FORMAT(DATE,'USA') |
+------------------------+
| %m.%d.%Y               |
+------------------------+
1 row in set (0.00 sec)

SELECT DATE_FORMAT(CURDATE(),GET_FORMAT(DATE,'USA'))
FROM DUAL;
#输出
+-----------------------------------------------+
| DATE_FORMAT(CURDATE(),GET_FORMAT(DATE,'USA')) |
+-----------------------------------------------+
| 05.04.2023                                    |
+-----------------------------------------------+
1 row in set (0.00 sec)

5.流程控制函数

流程处理函数可以根据不同的条件,执行不同的处理流程,可以在SQL语句中实现不同的条件选择。
MySQL中的流程处理函数主要包括IF()、IFNULL()和CASE()函数。

函数用法
IF(value,value1,value2)如果value的值为TRUE,返回value1,否则返回value2
IFNULL(value1, value2)如果value1不为NULL,返回value1,否则返回value2
CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2… [ELSE resultn] END相当于Java的if…else if…else…
CASE expr WHEN 常量值1 THEN 值1 WHEN 常量值1 THEN 值1 … [ELSE 值n] END相当于Java的switch…case…
#4.流程控制函数
#4.1 IF(value,value1,value2)
#如果value的值为TRUE,返回value1,否则返回value2
SELECT last_name,salary,IF(salary >= 6000,'高工资','低工资') "details"
FROM employees;

在这里插入图片描述

SELECT last_name,commission_pct,IF(commission_pct IS NOT NULL,commission_pct,0) "details",
salary * 12 * (1 + IF(commission_pct IS NOT NULL,commission_pct,0)) "annual_sal"
FROM employees;

在这里插入图片描述

#4.2 IFNULL(VALUE1,VALUE2):看做是IF(VALUE,VALUE1,VALUE2)的特殊情况
#如果value1不为NULL,返回value1,否则返回value2
SELECT last_name,commission_pct,IFNULL(commission_pct,0) "details"
FROM employees;

在这里插入图片描述

#4.3 CASE WHEN ... THEN ...WHEN ... THEN ... ELSE ... END
# 类似于java的if ... else if ... else if ... else
SELECT last_name,salary,CASE WHEN salary >= 15000 THEN '白骨精' 
			     			 WHEN salary >= 10000 THEN '潜力股'
			    			 WHEN salary >= 8000 THEN '小屌丝'
			                 ELSE '草根' END "details",department_id
FROM employees;

在这里插入图片描述

#ELSE可省略,省略时除以上情况外就为NULL
SELECT last_name,salary,CASE WHEN salary >= 15000 THEN '白骨精' 
			     			 WHEN salary >= 10000 THEN '潜力股'
			     			 WHEN salary >= 8000 THEN '小屌丝'
			     			 END "details"
FROM employees;             #ELSE可省略,省略时除以上情况外就为NULL

在这里插入图片描述

#4.4 CASE ... WHEN ... THEN ... WHEN ... THEN ... ELSE ... END
# 类似于java的switch ... case...
/*
练习1
查询部门号为 10,20, 30 的员工信息, 
若部门号为 10, 则打印其工资的 1.1 倍, 
20 号部门, 则打印其工资的 1.2 倍, 
30 号部门,打印其工资的 1.3 倍数,
其他部门,打印其工资的 1.4 倍数
*/
SELECT employee_id,last_name,department_id,salary,CASE department_id WHEN 10 THEN salary * 1.1
								     WHEN 20 THEN salary * 1.2
								     WHEN 30 THEN salary * 1.3
								     ELSE salary * 1.4 END "details"
FROM employees;

在这里插入图片描述

/*
练习2
查询部门号为 10,20, 30 的员工信息, 
若部门号为 10, 则打印其工资的 1.1 倍, 
20 号部门, 则打印其工资的 1.2 倍, 
30 号部门打印其工资的 1.3 倍数
*/
SELECT employee_id,last_name,department_id,salary,CASE department_id WHEN 10 THEN salary * 1.1
								     WHEN 20 THEN salary * 1.2
								     WHEN 30 THEN salary * 1.3
								     END "details"
FROM employees
WHERE department_id IN (10,20,30);

在这里插入图片描述

6.加密与解密函数

加密与解密函数主要用于对数据库中的数据进行加密和解密处理,以防止数据被他人窃取。这些函数在保证数据库安全时非常有用。

函数用法
PASSWORD(str)返回字符串str的加密版本,41位长的字符串。加密结果不可逆,常用于用户的密码加密
MD5(str)返回字符串str的md5加密后的值,也是一种加密方式。若参数为NULL,则会返回NULL
SHA(str)从原明文密码str计算并返回加密后的密码字符串,当参数为NULL时,返回NULL。SHA加密算法比MD5更加安全 。
ENCODE(value,password_seed)返回使用password_seed作为加密密码加密value
DECODE(value,password_seed)返回使用password_seed作为加密密码解密value

可以看到,ENCODE(value,password_seed)函数与DECODE(value,password_seed)函数互为反函数。

#5. 加密与解密的函数
#PASSWORD(str)返回字符串str的加密版本,41位长的字符串。加密结果 不可逆 ,常用于用户的密码加密
#MD5(str)返回字符串str的md5加密后的值,也是一种加密方式。若参数为NULL,则会返回NULL
#SHA(str)从原明文密码str计算并返回加密后的密码字符串,当参数为NULL时,返回NULL。 SHA加密算法比MD5更加安全 。
#ENCODE(value,password_seed) 返回使用password_seed作为加密密码加密value
#DECODE(value,password_seed) 返回使用password_seed作为加密密码解密value
# PASSWORD()在mysql8.0中弃用。
SELECT PASSWORD('mysql')
FROM DUAL;

SELECT MD5('mysql'),SHA('mysql'),MD5(MD5('mysql'))
FROM DUAL;
#输出
+----------------------------------+------------------------------------------+----------------------------------+
| MD5('mysql')                     | SHA('mysql')                             | MD5(MD5('mysql'))                |
+----------------------------------+------------------------------------------+----------------------------------+
| 81c3b080dad537de7e10e0987a4bf52e | f460c882a18c1304d88854e902e11b85d71e7e1b | 9b1c95c962f12d84f57c68e694274783 |
+----------------------------------+------------------------------------------+----------------------------------+
1 row in set (0.00 sec)

#ENCODE()\DECODE() 在mysql8.0中弃用。
SELECT ENCODE('atguigu','mysql'),DECODE(ENCODE('atguigu','mysql'),'mysql')
FROM DUAL;

7.MySQL信息函数

MySQL中内置了一些可以查询MySQL信息的函数,这些函数主要用于帮助数据库开发或运维人员更好地对数据库进行维护工作。

函数用法
VERSION()返回当前MySQL的版本号
CONNECTION_ID()返回当前MySQL服务器的连接数
DATABASE(),SCHEMA()返回MySQL命令行当前所在的数据库
USER(),CURRENT_USER()、SYSTEM_USER(),SESSION_USER()返回当前连接MySQL的用户名,返回结果格式为“主机名@用户名”
CHARSET(value)返回字符串value自变量的字符集
COLLATION(value)返回字符串value的比较规则
#6. MySQL信息函数
#VERSION() 返回当前MySQL的版本号
#CONNECTION_ID() 返回当前MySQL服务器的连接数
#DATABASE(),SCHEMA() 返回MySQL命令行当前所在的数据库
#USER(),CURRENT_USER()、SYSTEM_USER(),SESSION_USER()
#返回当前连接MySQL的用户名,返回结果格式为“主机名@用户名”
#CHARSET(value) 返回字符串value自变量的字符集
#COLLATION(value) 返回字符串value的比较规则
SELECT VERSION(),CONNECTION_ID(),DATABASE(),SCHEMA(),
USER(),CURRENT_USER(),CHARSET('尚硅谷'),COLLATION('尚硅谷')
FROM DUAL;
#输出
+-----------+-----------------+------------+-----------+----------------+----------------+-------------------+---------------------+
| VERSION() | CONNECTION_ID() | DATABASE() | SCHEMA()  | USER()         | CURRENT_USER() | CHARSET('尚硅谷') | COLLATION('尚硅谷') |
+-----------+-----------------+------------+-----------+----------------+----------------+-------------------+---------------------+
| 8.0.26    |              19 | atguigudb  | atguigudb | root@localhost | root@localhost | gbk               | gbk_chinese_ci      |
+-----------+-----------------+------------+-----------+----------------+----------------+-------------------+---------------------+
1 row in set (0.00 sec)

8.其他函数

MySQL中有些函数无法对其进行具体的分类,但是这些函数在MySQL的开发和运维过程中也是不容忽视的。

函数用法
FORMAT(value,n)返回对数字value进行格式化后的结果数据。n表示 四舍五入 后保留到小数点后n位
CONV(value,from,to)将value的值进行不同进制之间的转换
INET_ATON(ipvalue)将以点分隔的IP地址转化为一个数字
INET_NTOA(value)将数字形式的IP地址转化为以点分隔的IP地址
BENCHMARK(n,expr)将表达式expr重复执行n次。用于测试MySQL处理expr表达式所耗费
的时间
CONVERT(value USINGchar_code)将value所使用的字符编码修改为char_code
#7.其他函数
#FORMAT(value,n)返回对数字value进行格式化后的结果数据。n表示 四舍五入 后保留到小数点后n位
#如果n小于或者等于0,则只保留整数部分
SELECT FORMAT(123.125,2),FORMAT(123.125,0),FORMAT(123.125,-2)
FROM DUAL;
#输出
+-------------------+-------------------+--------------------+
| FORMAT(123.125,2) | FORMAT(123.125,0) | FORMAT(123.125,-2) |
+-------------------+-------------------+--------------------+
| 123.13            | 123               | 123                |
+-------------------+-------------------+--------------------+
1 row in set (0.00 sec)

#CONV(value,from,to) 将value的值进行不同进制之间的转换
SELECT CONV(16, 10, 2), CONV(8888,10,16), CONV(NULL, 10, 2)
FROM DUAL;
#输出
+-----------------+------------------+-------------------+
| CONV(16, 10, 2) | CONV(8888,10,16) | CONV(NULL, 10, 2) |
+-----------------+------------------+-------------------+
| 10000           | 22B8             | NULL              |
+-----------------+------------------+-------------------+

#INET_ATON(ipvalue) 将以点分隔的IP地址转化为一个数字
#INET_NTOA(value) 将数字形式的IP地址转化为以点分隔的IP地址
#以“192.168.1.100”为例,计算方式为192乘以256的3次方,加上168乘以256的2次方,加上1乘以256,再加上100。
SELECT INET_ATON('192.168.1.100'),INET_NTOA(3232235876)
FROM DUAL;
#输出
+----------------------------+-----------------------+
| INET_ATON('192.168.1.100') | INET_NTOA(3232235876) |
+----------------------------+-----------------------+
|                 3232235876 | 192.168.1.100         |
+----------------------------+-----------------------+

#BENCHMARK(n,expr)将表达式expr重复执行n次。用于测试MySQL处理expr表达式所耗费
#的时间
#BENCHMARK()用于测试表达式的执行效率
SELECT BENCHMARK(100000,MD5('mysql'))
FROM DUAL;
#输出
+--------------------------------+
| BENCHMARK(100000,MD5('mysql')) |
+--------------------------------+
|                              0 |
+--------------------------------+
1 row in set (0.01 sec)

# CONVERT():可以实现字符集的转换,CHARSET(value) 返回字符串value自变量的字符集
#CONVERT(value USING,char_code)将value所使用的字符编码修改为char_code
SELECT CHARSET('atguigu'),CHARSET(CONVERT('atguigu' USING 'gbk'))
FROM DUAL;
#输出
+--------------------+-----------------------------------------+
| CHARSET('atguigu') | CHARSET(CONVERT('atguigu' USING 'gbk')) |
+--------------------+-----------------------------------------+
| gbk                | gbk                                     |
+--------------------+-----------------------------------------+
1 row in set (0.00 sec)

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

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

相关文章

vulnhub dc-5

1.信息搜集 官方文档描述 主要内容不会使用到ssh,进入的方式很难被发现,是改变页面刷新的方法,只有一个flag nmap扫描 存活主机 192.168.85.176 端口 80 111 中间件: nginx 2.访问网站,进行进一步信息搜集 通过这两张…

加速 AI 训练,如何在云上实现灵活的弹性吞吐?

AI 已经成为各行各业软件研发的基础,带来了前所未有的效率和创新。今天,我们将分享苏锐在AWS量化投研行业活动的演讲实录,为大家介绍JuiceFS 在 AI 量化投研领域的应用经验,也希望为其他正在云上构建机器学习平台,面临…

4面美团测试工程师,因为这个小细节,直接让我前功尽弃.....

说一下我面试别人时候的思路 反过来理解,就是面试时候应该注意哪些东西;用加粗部分标注了 一般面试分为这么几个部分: 一、自我介绍 这部分一般人喜欢讲很多,其实没必要。大约5分钟内说清楚自己的职业经历,自己的核…

C++11入门基础知识

文章目录 C11简介列表初始化std::initializer_list 变量类型推导nullptr范围for循环STL中的一些变化 C11简介 在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1),使得C03这个名字已经取代了C98称为C11之前的最新C标准名称。不过由于C03(TC1)主要是对C98标准中…

阿里云Alibaba Cloud Linux镜像操作系统性能兼容如何?

阿里云服务器操作系统Alibaba Cloud Linux镜像怎么样?可以代替CentOS吗?Alibaba Cloud Linux兼容性如何?有人维护吗?漏洞可以修复吗?Alibaba Cloud Linux完全兼容CentOS,并由阿里云官方免费提供长期维护。 …

【五一创作】自动驾驶技术未来大有可为

本文概要 自动驾驶技术是当今汽车行业的发展热点之一,但其也存在着许多争议。大家也可以从以下几个维度谈谈你对这项技术的看法。 🌟🌟🌟个人简介🌟🌟🌟 ☀️大家好!我是新人小白博…

4.2 线性表顺序表(上)

目录 目录结构 线性表 线性表的特征: 顺序表存储结构的表示 顺序表存储结构的特点 顺序存储结构的表示 线性表的基本运算 基本运算的相关算法 线性表的基本运算 线性表 目录结构 线性表 线性表是包含若干数据元素的一个线性序列 记为: L(a0, …

Android FlexboxLayout布局

FlexboxLayout 布局 一、简介二、使用三、功能详解FlexboxLayout属性flexWrapflexDirectionalignItemsjustifyContentalignContentdividerDrawableHorizontal、showDividerHorizontaldividerDrawableVertical、showDividerVerticaldividerDrawable、showDividermaxLine Flexbox…

简单理解Transformer注意力机制

这篇文章是对《动手深度学习》注意力机制部分的简单理解。 生物学中的注意力 生物学上的注意力有两种,一种是无意识的,零一种是有意识的。如下图1,由于红色的杯子比较突出,因此注意力不由自主指向了它。如下图2,由于…

讯飞星火认知大模型 VS CHATGPT3.5

2023年5月6日,科大讯飞(002230.SZ)宣布将于当日举行“讯飞星火认知大模型”成果发布会。 与其他厂商的大模型发布相比,本次发布会具有三个特点:1.全程真机互动,现场实测、现场体验;2.技术先进性不是笼统表达&#xff…

Java的自定义注解

java元注解和自定义注解的区别 Java的自定义注解是一种元数据,可以应用于类、方法、字段等程序元素上,以提供额外的信息或指示。 自定义注解包括注解声明、元注解、运行时处理器三个部分。注解声明指定了注解的名称、作用域、成员等信息;元注…

IP-GUARD如何通过网络控制策略禁止应用程序联网?

如何通过网络控制策略禁止应用程序联网? 可以在控制台-高级-网络控制中,添加以下策略: 动作:“禁止” 应用程序:填写要禁止的程序(以QQ示例) 如何禁止没有安装客户端的电脑访问客户端电脑? 可以给所有客户端设置只允许客户端电脑访问的网络控制策略; 在控制台左边的…

Unity使用Sqlite3

环境 Unity:Unity2021.3.6f1c1 OS:Window10 64 Plugins:Mono.Data.Sqlite、Sqlite 插件准备 Sqlite3官方网址 Sqlite3有x64和x86版本,根据发布的架构使用不同版本的Sqlite3。 该文档使用x64版本,发布架构为64位。 Mono.Data.Sqlite 使用Unity Hub打开…

搜索旋转排序数组

题目链接 搜索旋转排序数组 题目描述 注意点 nums 中的每个值都 独一无二题目数据保证 nums 在预先未知的某个下标上进行了旋转 解答思路 因为本题数组基本递增(仅在某个位置进行旋转),可以看作由两个递增的数组组合而成,所以…

OPenGL笔记--创建一个3D场景

文章目录 一、前言二、效果展示三、详细流程3.1、World.txt文件规则3.2、加载World.txt3.3、绘制场景3.4、交互 四、详细代码五、举一反三 一、前言 通过前面的学习,基本掌握了怎么绘制图形,使用纹理,接下来就来创建一个3D场景。 基本原理 …

Unity 软性管的实现

概述 因近期项目有要求使用到水管这种软性管的模拟,该篇主要说明软管的实现和应用,参考自:unity3D---实现柔软水管(蛇的移动)效果一(无重力)_unity 软管_ayouayouwei的博客-CSDN博客 效果 实现…

B/S医院手术麻醉管理系统源码:麻醉知情同意书模板

麻醉知情同意书模板 姓名:​ 性别:​ 年龄:​ 科别:​ 床号:​ 住院号:​ 疾病介绍和治疗建议: 医生已告知我因​手术,而接受麻醉。 1.麻醉作用的产生主要是利用麻醉药使中枢神经系统或神经中某些部位受到抑制的结果,临床麻醉的主要任务是: 2.为…

webpack 的打包流程

1.webpack 的打包流程 从以上5个方面来分析Webpack的打包流程: 初始化参数:这一步会从我们配置的webpack.config.js中读取到对应的配置参数和shell命令中传入的参数进行合并得到最终打包配置参数。 开始编译:这一步我们会通过调用webpack()方…

计算机网络基础知识(二)—— 什么是Ip地址、Mac地址、网关、子网掩码、DNS

文章目录 01 | Ip地址02 | Mac地址03 | 网关04 | 子网掩码05 | DNS06 | 总结 初次接触网络时,只知道电脑连接网线,就可以打开4399玩小游戏,可以登录QQ和朋友聊天; 再次接触网络时,知道了怎么查看自己电脑的网络情况&am…

06 - 5 生产者消费者模式

架构演进 介绍 同步调用变成异步调用生产数据与消费数据分离协调不同处理速度 生产者 系统运转的动力为下一个环节产生待处理的工作/数据与消费者的关系 重点在如何将数据发送到容器对消费者无依赖不关注消费者的how/when 发送顺序 消费者 容器 平衡 与EDA对比 消费策略 优点…