建设银行官方网站/seo外推软件
1. 单行函数与多行函数
1.1 单行函数
- 指单行数据输入,返回一个值的函数. 所以查询一个表时,对选择的每一行数据都返回一个结果.
[oracle@oracle-db-19c ~]$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Tue Mar 7 07:59:44 2023
Version 19.3.0.0.0Copyright (c) 1982, 2019, Oracle. All rights reserved.Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0SQL> show con_name;CON_NAME
------------------------------
CDB$ROOT
SQL> show user;
USER is "SYS"
SQL> alter session set container=PDB1;Session altered.SQL> conn scott/tiger@PDB1;
Connected.
SQL> show user;
USER is "SCOTT"
SQL> set pagesize 200 linesize 200
SQL> select empno,lower(ename) from emp;EMPNO LOWER(ENAME)
---------- ------------------------------7369 smith7499 allen7521 ward7566 jones7654 martin7698 blake7782 clark7788 scott7844 turner7876 adams7900 james7902 ford7934 miller13 rows selected.SQL>
- 单行函数是用于处理数据项的,它接受一个或多个参数,并为查询返回的每个行返回一个值,参数可以是下列对象:
- 用户提供的常数
- 变量值
- 列名
- 表达式
- 单上函数具有以下特性:
- 作用于查询返回的每个行
- 为每行返回一个结果
- 可能会返回与引用数据类型不同的数据值
- 可能需要一个或多个参数
- 可能用在select、where和order by字句中
1.2 多行函数
指多行数据输入,返回一个值的函数.所以对表的多组进行操作,并且每组返回一个结果.(典型的是聚合函数)
SQL>
SQL> show user;
USER is "SCOTT"
SQL> select sum(sal) from emp;SUM(SAL)
----------24025SQL>
2. 单行函数的几种类型
2.1 字符函数
2.1.1 lower & upper & initcap
-- upper('sql course') -- sql course 返回大写
-- upper('sql course') -- sql course 返回大写
-- initcap('sql course') -- sql course 返回只有首字母大写SQL> select ename,lower(ename),upper(ename),initcap(ename) from emp where ename='SMITH';ENAME LOWER(ENAME) UPPER(ENAME) INITCAP(ENAME)
------------------------------ ------------------------------ ------------------------------ ------------------------------
SMITH smith SMITH SmithSQL>
2.1.2 concat
-- concat('good','string') -- good string 拼接,只能拼接2个字符串SQL> show user
USER is "SCOTT"
SQL> show con_name;CON_NAME
------------------------------
PDB1
SQL> select concat(ename,job) from emp where ename='FORD';CONCAT(ENAME,JOB)
---------------------------------------------------------
FORDANALYSTSQL>
2.1.3substr
-- substr('String',1,3) -- Str 从第1位开始截取3位数
SQL> select substr(ename,1,3) from emp where ename='SCOTT';SUBSTR(ENAME,1,3)
------------------------------------
SCOSQL>
2.1.4 instr
-- instr('t#i#m#r#a#n#','#',5) -- 从第5位起始找#字符在那个绝对位置
SQL> select instr('K#L#A#U#S#','#',5) from dual;INSTR('K#L#A#U#S#','#',5)
-------------------------6SQL>
2.1.5 length
-- length('String') -- 长度
SQL>
SQL> show user;
USER is "SCOTT"
SQL> show con_name;CON_NAME
------------------------------
PDB1
SQL> select length(ename) from emp where ename='SCOTT';LENGTH(ENAME)
-------------5SQL>
2.1.6 lpad & rpad
-- lpad('first',10,'$') -- 左填充
-- rpad (676768,10,'*') -- 右填充SQL> select rpad(ename,10,'$') from emp where rownum < 6;RPAD(ENAME,10,'$')
------------------------------------------------------------------------------------------------------------------------
SMITH$$$$$
ALLEN$$$$$
WARD$$$$$$
JONES$$$$$
MARTIN$$$$SQL> select lpad(ename,10,'*') from emp where rownum < 6;LPAD(ENAME,10,'*')
------------------------------------------------------------------------------------------------------------------------
*****SMITH
*****ALLEN
******WARD
*****JONES
****MARTINSQL>
2.1.7 replace
-- replace ('JACK and JUE','J','BL') -- 替换字符
SQL> select replace('Gkkd Jkb','k','o') from dual;REPLACE('GKKDJKB','K','O
------------------------
Good JobSQL>
2.1.8 trim
-- trim ('a' from 'aaklausaa') -- 去除前后指定字符
SQL>
SQL> select trim ('a' from 'aaklausaa') from dual;TRIM('A'FROM'AA
---------------
klausSQL>
2.2 数值函数
2.2.1 round
对指定的值做四舍五入
round (p, s)
s为正数时, 表示小数点后要保留的位数,
s为0或不填写,表示取整四舍五入.
s为负数时,表示小数点前要保留的位数.
SQL>
SQL> select round(14535.9856) from dual;ROUND(14535.9856)
-----------------14536SQL> select round(14535.9856,2) from dual;ROUND(14535.9856,2)
-------------------14535.99SQL> select round(14535.9856,-2) from dual;ROUND(14535.9856,-2)
--------------------14500SQL> select round(14555.9856,-2) from dual;ROUND(14555.9856,-2)
--------------------14600SQL>
2.2.2 trunc
对指定的值取整
trunc (p, s)
s为正数时, 表示小数点后要保留的位数,
s为0或不填写,表示取整.
s为负数时,表示小数点前要保留的位数.SQL> select trunc(14535.9856) from dual;TRUNC(14535.9856)
-----------------14535SQL> select trunc(14535.9856,2) from dual;TRUNC(14535.9856,2)
-------------------14535.98SQL> select trunc(14535.9856,-2) from dual;TRUNC(14535.9856,-2)
--------------------14500SQL>
2.2.3 mod
返回除法后的余数
SQL>
SQL> select mod(100,12) from dual;MOD(100,12)
-----------4SQL>
2.3 日期函数
2.3.1 格式和语言
select * from v$nls_parameters; -- 查询日期语言
select SYSTIMESTAMP from dual; -- 查看日期格式
-- 设置日期语言
alter session set NLS_DATE_LANGUAGE='American'; -- 只对当前会话起作用
alter system set NLS_DATE_LANGUAGE='American'; -- 对系统设置生效
alter session set NLS_DATE_LANGUAGE='SIMPLIFIED CHINESE';
-- 或者这样
TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')
-- 缺省格式:DD-MON-RR.
-- 可以表示日期范围:(公元前)4712 至(公元)9999
2.3.2 日期转字符
# (to_date,to_char)
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; -- 日期转化为字符串
select to_char(sysdate,'yyyy') as nowYear from dual; -- 获取时间的年
select to_char(sysdate,'mm') as nowMonth from dual; -- 获取时间的月
select to_char(sysdate,'dd') as nowDay from dual; -- 获取时间的日
select to_char(sysdate,'hh24') as nowHour from dual; -- 获取时间的时
select to_char(sysdate,'mi') as nowMinute from dual; -- 获取时间的分
select to_char(sysdate,'ss') as nowSecond from dual; -- 获取时间的秒
2.3.3 字符和时间互换
-- 显示Two Hundred Twenty-Two
SQL>
SQL> select to_date('2023-03-07 09:32:46','yyyy-mm-dd hh24:mi:ss') from dual;TO_DATE('2023-0')
---------------
07-MAR-23SQL> select to_char(to_date(222,'J'),'Jsp') from dual;TO_CHAR(TO_DATE(222,'J'),'JSP')
------------------------------------------------------------------
Two Hundred Twenty-TwoSQL>
2.3.4 天数差floor
SQL> select floor(sysdate - to_date('20020405','yyyymmdd')) from dual;FLOOR(SYSDATE-TO_DATE('20020405','YYYYMMDD'))
---------------------------------------------7641SQL>
2.3.5 Month_between
因为日期在oracle里是以数字形式存储的,所以可对它进行加减运算,计算是以天为单位
-- 1、数据类型转换
SQL> select months_between ('1994-04-01','1992-04-01') mm from dual;
select months_between ('1994-04-01','1992-04-01') mm from dual
ERROR at line 1:
ORA-01861: literal does not match format string
-- 报错:字符串格式不匹配
-- 原因:
-- 如果直接按照字符串方式,或者直接使用'2013-2-26 11:07:25',没有指定日期格式,就会报错
to_date('2013-2-26 11:07:25' , 'yyyy-mm-dd hh24:mi:ss')
-- 正确如下:
select months_between (to_date('1994-04-01','yyyy-mm-dd'),to_date('1992-04-01','yyyy-mm-dd')) mm from dual;
-- 参考第三章:[数据类型转换]部分-- 2、查找emp表中参加工作时间>30年的员工
SQL> select * from emp where months_between (sysdate, hiredate)/12>30;
知识点:
很容易认为单行函数返回的数据类型与函数类型一致,对于数值函数类型而言的确如此,但字符和日期函数可以返回任何数据类型的值.
比如 instr 函数是字符型的, months_between函数是日期型的,但它们返回的都是数值.
2.3.6 Next_day
-- NEXT_DAY的第2个参数可以是数字1-7, 分别表示周日--周六, 比如要取下一个星期六, 则应该是:SQL> select next_day(sysdate,7) from dual;NEXT_DAY(SYSDAT
---------------
11-MAR-23SQL> select last_day (to_date('1999-06','yyyy-mm')) ld from dual;LD
---------------
30-JUN-99SQL>
2.3.7 extract
-- extract()找出日期或间隔值的字段值
-- 获得小时数
SQL> SELECT EXTRACT(HOUR FROM TIMESTAMP '2020-09-16 2:39:40') from dual;EXTRACT(HOURFROMTIMESTAMP'2020-09-162:39:40')
---------------------------------------------2
--获取分钟数SQL> SELECT EXTRACT(minute FROM TIMESTAMP '2020-09-16 2:39:40') from dual;EXTRACT(MINUTEFROMTIMESTAMP'2020-09-162:39:40')
-----------------------------------------------39
---获取天数
SQL> SELECT EXTRACT(day FROM TIMESTAMP '2020-09-16 2:39:40') from dual;EXTRACT(DAYFROMTIMESTAMP'2020-09-162:39:40')
--------------------------------------------16
--- 获取月份数
SQL> SELECT EXTRACT(month FROM TIMESTAMP '2020-09-16 2:39:40') from dual;EXTRACT(MONTHFROMTIMESTAMP'2020-09-162:39:40')
----------------------------------------------9
--- 获取年份数
SQL> SELECT EXTRACT(year FROM TIMESTAMP '2020-09-16 2:39:40') from dual;EXTRACT(YEARFROMTIMESTAMP'2020-09-162:39:40')
---------------------------------------------2020SQL> select sysdate,to_char(sysdate,'hh24') from dual;SYSDATE TO_CHA
--------------- ------
07-MAR-23 09SQL>
2.3.8 add_month
SQL>
SQL> select add_months(to_date('2023-03-01','yyyy-mm-dd'),4) am from dual;AM
---------------
01-JUL-23SQL> select add_months(sysdate,-6) from dual;ADD_MONTHS(SYSD
---------------
07-SEP-22SQL>
2.3.9 日期函数的运用
2.3.9.1 查看月份天数不定的方法
SQL> select to_char(add_months(last_day(sysdate) +1, -1), 'yyyymmdd') s,to_char(last_day(sysdate),'yyyymmdd') e from dual;S E
------------------------ ------------------------
20230301 20230331SQL>
2.3.9.2 今年的天数
SQL> select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') days from dual;DAYS
----------365SQL> --- 今年2月份的最后一天
SQL> select to_char(last_day(to_date('02'||to_char(sysdate,'yyyy'),'mmyyyy')),'dd') days from dual;DAYS
------
28SQL>
2.3.9.3 某天是星期几
SQL> select to_char(to_date('2023-03-31','yyyy-mm-dd'),'day') from dual;TO_CHAR(TO_DATE('2023-03-31
---------------------------
fridaySQL> select to_char(to_date('2023-03-31','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE =''simplified chinese''') from dual;TO_CHAR(TO_DATE('2023-03-31
---------------------------
星期五SQL>
2.3.9.4 去除指定周天的天数
-- 查找2002-02-28至2002-02-01间除星期一和七的天数SQL> select count(*)2 from(3 select rownum-1 rnum 4 from all_objects5 where rownum <= to_date('2023-03-31','yyyy-mm-dd')-to_date('2023-03-01','yyyy-mm-dd')+1) 6 where to_char( to_date('2023-03-01','yyyy-mm-dd')+rnum-1,'D')not in ('1','7');COUNT(*)
----------23SQL>
2.3.9.5 ROUND(p,s),TRUNC(p,s)在日期中的应用
-- 如何舍入要看具体情况,s是MONTH按30天计,应该是15舍16入,s是YEAR则按6舍7入计算.SQL> SELECT empno, hiredate,2 round(hiredate,'MONTH') AS round,3 trunc(hiredate,'MONTH') AS trunc4 FROM emp WHERE empno=7788;EMPNO HIREDATE ROUND TRUNC
---------- --------------- --------------- ---------------7788 24-JAN-87 01-FEB-87 01-JAN-87
SQL>
SQL> SELECT empno, hiredate,2 round(hiredate,'YEAR') AS round,3 trunc(hiredate,'YEAR') AS trunc4 FROM emp WHERE empno=7369;EMPNO HIREDATE ROUND TRUNC
---------- --------------- --------------- ---------------7369 17-DEC-80 01-JAN-81 01-JAN-80SQL>
2.4 几个有用的函数
实现sql语句中的条件判断语句,具有类似高级语言中的if语句的功能. decode函数源自oracle, case表达式源自sql标准, 实现功能类似
2.4.1 decode函数
-- 第一种形式
decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)
该函数的含义如下:
IF 条件=值1 THENRETURN(翻译值1)
ELSIF 条件=值2 THENRETURN(翻译值2)......
ELSIF 条件=值n THENRETURN(翻译值n)
ELSERETURN(缺省值)
END IF
-- 【eg.】----
SELECT empno, job, sal,DECODE (job,'ANALYST', SAL*1.1,'CLERK', SAL*1.15,'MANAGER', SAL*1.20, SAL) newsal
FROM emp;
-------------------------------------
-- 第二种形式
decode(字段或字段的运算,值1,值2,值3)
这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3
当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多
2.4.2 case表达式
------- -- 格式1---------
CASE WHEN 条件表达式1 THEN语句段1WHEN 条件表达式2 THEN语句段2......WHEN 条件表达式n THEN 语句段n[ELSE 语句段]
END;
-----------------------------
-- 【eg.】
select ename, job, sal
, case jobwhen 'ANALYST' then SAL*1.1when 'CLERK' then SAL*1.15when 'MANAGER' then SAL*1.20else sal end newsal
from emp;
-------- -- 格式2---------
CASE 条件表达式WHEN 条件表达式结果1 THEN 语句段1WHEN 条件表达式结果2 THEN语句段2......WHEN 条件表达式结果n THEN语句段n[ELSE 条件表达式结果]
END;
-----------------------------
-- 【eg.】
select ename, job, sal,case when job='ANALYST' then SAL*1.1when job='CLERK' then SAL*1.15when job='MANAGER' then SAL*1.20else sal end newsal
from emp;
-- case第二种语法比第一种语法增加了搜索功能.形式上第一种when后跟定值,而第二种还可以使用比较符.
-- eg.
select ename,sal,case when sal>=3000 then 'H'when sal>=2000 then 'M'else 'L' end Job_Level
from emp;
----------
select ename,sal,case when sal>=3000 then 'H'when sal>=2000 then 'M'else 'L' end
from emp;
2.4.3 DISTINCT
-- distinct貌似多行函数,严格来说它不是函数.
-- DISTINCT一定要放在开头,否则报错
-- 语法
SELECT DISTINCT column_name,column_name FROM table_name;
---------------------------------------------------------------------------------------
SQL>
SQL> -- 消除表行重复值
SQL> select distinct job from emp;JOB
---------------------------
CLERK
SALESMAN
ANALYST
MANAGERSQL> -- 重复值是后面的字段组合起来考虑的
SQL> select distinct job,deptno from emp;JOB DEPTNO
--------------------------- ----------
CLERK 20
MANAGER 20
MANAGER 30
MANAGER 10
SALESMAN 30
ANALYST 20
CLERK 30
CLERK 108 rows selected.SQL>
2.4.4 CHAR()和ASCII()函数
-- chr()函数将ASCII码转换为字符 :ASCII码 –》 字符
-- ascii()函数将字符转换为ASCII码 :字符 –》 ASCII码
-- 在oracle中chr()函数和ascii()是一对反函数.
SQL> select ASCII('K') FROM dual; -- 大写K
ASCII('K')
------------
75
SQL> select ASCII('k') FROM dual; -- 小写k
ASCII('K')
------------
107
SQL> select chr(75) from dual;
C
-
K
2.4.5 sys_context获取环境上下文的函数(很有用)
-- scott远程登录(查询IP时)
select sys_context('USERENV','AUTHENTICATION_TYPE') from dual; -- DATABASE 用户的认证类型
select sys_context('USERENV','AUTHENTICATION_DATA') from dual; -- null 未知
select sys_context('USERENV','BG_JOB_ID') from dual; -- null 当前指定id的会话是否为oracle后台程序建立,不是则返回null
select sys_context('USERENV','CLIENT_INFO') from dual; -- null 通过dbms_application_info包可以存储高达64字节的用户会话信息
select sys_context('USERENV','CURRENT_SCHEMA') from dual; -- DICPTEST 默认的schema将被当做当前的schema.-- 当在当前会话中使用ALTER SESSION SET CURRENT_SCHEMA语句的时候,它的查询返回值将被改变
select sys_context('USERENV','CURRENT_SCHEMAID') from dual; -- 当前schema的id
select sys_context('USERENV','CURRENT_USER') from dual; -- DICPTEST 当前的登陆用户
select REPLACE(SUBSTR(sys_context('USERENV','HOST'),1,30),'/',':') from dual; -- 当前会话主机操作系统名
select sys_context('USERENV','CURRENT_USERID') from dual; -- 当前登陆的用户的id
select sys_context('USERENV','DB_DOMAIN') from dual; -- null 为数据库的域指定初始化参数
select sys_context('USERENV','DB_NAME') from dual; -- iomtest 数据库实例名
select sys_context('USERENV','ENTRYID') from dual; -- null 可用的审计标示符.不能再分布式sql语句中使用此选项-- 使用USERENV关键字必须置AUDIT_TRAIL的初始化参数为真.
select sys_context('USERENV','EXTERNAL_NAME') from dual; -- null 数据库用户的扩展名
select sys_context('USERENV','FG_JOB_ID') from dual; -- 0 返回作业id当此会话是客户端进程创建.否则,返回null
select sys_context('USERENV','INSTANCE') from dual; -- 1 当前数据库实例的标示id
select sys_context('USERENV','ISDBA') from dual; -- FALSE 当前用户是否是以dba身份登录
select sys_context('USERENV','LANG') from dual; -- ZHS iso对LANGUAGE’的简称,查询的参数比”LANGUAGE”短
select sys_context('USERENV','LANGUAGE') from dual; -- SIMPLIFIED CHINESE_CHINA.ZHS16GBK 结果为当前数据库使用的存储语言,跟上面查询意义一样
select sys_context('USERENV','NETWORK_PROTOCOL') from dual; -- tcp 用于通信的网络协议
select sys_context('USERENV','NLS_CALENDAR') from dual; -- GREGORIAN 当前会话使用的,格林尼治时间
select sys_context('USERENV','NLS_CURRENCY') from dual; -- ¥本地化的货币符,如人民币为¥,美元符为$
select sys_context('USERENV','NLS_DATE_FORMAT') from dual; -- DD-MON-RR 当前使用的日期格式,一般中国为dd-mon-rr
select sys_context('USERENV','NLS_DATE_LANGUAGE') from dual; -- SIMPLIFIED CHINESE 表示日期的语言,如中文简体SIMPLIFIED CHINESE
select sys_context('USERENV','NLS_TERRITORY') from dual; -- CHINA 数据库服务器所在区域,如中国CHINA
select sys_context('USERENV','OS_USER') from dual; -- 操作系统的用户名
select sys_context('USERENV','PROXY_USER') from dual; -- null 是否使用代理用户.否返回null
select sys_context('USERENV','PROXY_USERID') from dual; -- null 代理用户id
select sys_context('USERENV','SESSION_USER') from dual; -- DICPTEST 当前认证的数据库用户名
select sys_context('USERENV','SESSION_USERID') from dual; -- 当前认证的数据库用户名id
select sys_context('USERENV','SESSIONID') from dual; -- 当前会话id
select sys_context('USERENV','TERMINAL') from dual; -- 操作系统用户组
select sys_context('USERENV','IP_ADDRESS') from dual; -- 当前会话主机ip
select sys_context('USERENV','HOST') from dual; -- 当前会话主机操作系统名
-- 在sqldeveloper中 一键查询
select
SYS_CONTEXT('USERENV','TERMINAL') terminal,
SYS_CONTEXT('USERENV','LANGUAGE') language,
SYS_CONTEXT('USERENV','SESSIONID') sessionid,
SYS_CONTEXT('USERENV','INSTANCE') instance,
SYS_CONTEXT('USERENV','ENTRYID') entryid,
SYS_CONTEXT('USERENV','ISDBA') isdba,
SYS_CONTEXT('USERENV','NLS_TERRITORY') nls_territory,
SYS_CONTEXT('USERENV','NLS_CURRENCY') nls_currency,
SYS_CONTEXT('USERENV','NLS_CALENDAR') nls_calendar,
SYS_CONTEXT('USERENV','NLS_DATE_formAT') nls_date_format,
SYS_CONTEXT('USERENV','NLS_DATE_LANGUAGE') nls_date_language,
SYS_CONTEXT('USERENV','NLS_SORT') nls_sort,
SYS_CONTEXT('USERENV','CURRENT_USER') current_user,
SYS_CONTEXT('USERENV','CURRENT_USERID') current_userid,
SYS_CONTEXT('USERENV','SESSION_USER') session_user,
SYS_CONTEXT('USERENV','SESSION_USERID') session_userid,
SYS_CONTEXT('USERENV','PROXY_USER') proxy_user,
SYS_CONTEXT('USERENV','PROXY_USERID') proxy_userid,
SYS_CONTEXT('USERENV','DB_DOMAIN') db_domain,
SYS_CONTEXT('USERENV','DB_NAME') db_name,
SYS_CONTEXT('USERENV','HOST') host,
SYS_CONTEXT('USERENV','OS_USER') os_user,
SYS_CONTEXT('USERENV','EXTERNAL_NAME') external_name,
SYS_CONTEXT('USERENV','IP_ADDRESS') ip_address,
SYS_CONTEXT('USERENV','NETWORK_PROTOCOL') network_protocol,
SYS_CONTEXT('USERENV','BG_JOB_ID') bg_job_id,
SYS_CONTEXT('USERENV','FG_JOB_ID') fg_job_id,
SYS_CONTEXT('USERENV','AUTHENTICATION_TYPE') authentication_type,
SYS_CONTEXT('USERENV','AUTHENTICATION_DATA') authentication_data
from dual;
相关文章:

数据库基本功之SQL的基本函数
1. 单行函数与多行函数 1.1 单行函数 指单行数据输入,返回一个值的函数. 所以查询一个表时,对选择的每一行数据都返回一个结果.[oracleoracle-db-19c ~]$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Tue Mar 7 07:59:44 2023 Version 19.3.0.0.0Copyri…...

配置主机名与ip的映射关系
本次进行简单的小实验 通过在windows上配置主机名与IP地址的映射关系,达到我们在xshell或其他远程连接设备上,不用IP地址登陆,只需要用主机名就能实现登陆的效果 配置 首先 需要查看自己虚拟机的IP地址,找到ens33或者ens160…...

Spring Cache简单介绍和使用
目录 一、简介 二、使用默认ConcurrentMapManager (一)创建数据库和表 (二)创建boot项目 (三)使用Api 1、EnableCaching 2、CachePut 3、cacheable 4、CacheEvict 三、使用redis作为cache 一、简…...

ECCV 2022|面向精确的主动相机定位算法
标题:ECCV 2022,山东大学、北大、腾讯AILab、斯坦福和三维家联合提出,面向精确的主动相机定位算法项目地址:https://github.com/qhFang/AccurateACL.文章:Towards Accurate Active Camera Localization(ECCV 2022&…...

web实现环形旋转、圆形、弧形、querySelectorAll、querySelector、clientWidth、sin、cos、PI
文章目录1、HTML部分2、css部分3、JavaScript部分4、微信小程序演示1、HTML部分 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge">&l…...

PyCharm+Python+Selenium自动化测试动态验证码识别
driver.find_element(byBy.ID,valueUSERID).send_keys("admin")driver.find_element(byBy.ID,valuePASSWORD_VIEW).send_keys("123456")#ocr识别原理:先根据验证码的class dl_yzm定位到验证码图片,然后将验证码截图保存,…...

git版本回退简单记录
简单记录git版本回退的命令,参考的是这篇文章1 首先查看以前存档的版本: git log1. 知道要回退的版本和现在的版本差了多少代 回退上一代版本(1个以前) git reset –hard HEAD^回退上上一代版本(2个以前࿰…...

QT入门Display Widgets之QLine、QLcdNumber、QTextBrowser
目录 一、QLine界面相关 1、布局介绍 2、界面基本属性 二、QLCDNumber的介绍 1、界面布局 2、定时器代码测试 三、QTextBrowser 此文为作者原创,创作不易,转载请标明出处! 一、QLine界面相关 1、布局介绍 先看下界面中创建个Q…...

Spring学习笔记
目录1 IOC容器1.1 概念1.2 IOC的底层原理1.3 Spring中IOC容器的两种实现方式(两个接口)1.3.1 BeanFactory接口1.3.2 ApplicationContext接口1.3.3 为什么开发中使用ApplicationContext接口1.3.4 ApplicationContext接口的两个实现类1.4 IOC操作之bean管理1.4.0 bean是什么&…...

数据的标准化处理
假设各个指标之间的水平相差很大,此时直接使用原始指标进行分析时,数值较大的指标,在评价模型中的绝对作用就会显得较为突出和重要,而数值较小的指标,其作用则可能就会显得微不足道。 因此,为了统一比较的标…...

性能优化|记一次线上OOM问题处理
概述最近线上监控发现 OOM 涨幅较大,因此去尝试定位和修复这个问题,在修复了一些内存泄漏和大对象占用问题后, OOM 依旧未达到正常标准,在这些新上报的 hprof 文件中,发现几乎所有 case 中都有个叫 FinalizerReference 的对象&…...

Vue动态粒子特效插件(背景线条吸附动画)
目录 效果图: 一、安装: 二、引入 main.js 文件: 三、使用: 四、属性说明: 效果图: 一、安装: npm install vue-particles --save 二、引入 main.js 文件: import VueParticles…...

【Java 类】002-类、属性、方法、代码块
【Java 类】002-类、属性、方法、代码块 文章目录【Java 类】002-类、属性、方法、代码块一、类1、类与对象2、类的作用3、创建与使用类类结构创建类调用类运行结果4、Java 类的执行过程5、封装、继承、多态、抽象类、内部类、接口、枚举、记录、注解等二、属性1、概述2、类型3…...

Ubuntu Linux 编译安装的基本步骤
文章目录1 基本步骤若报错: No such file or directory2 解压 tar.bz2文件参考:1 基本步骤 解压: tar -zxvf file.tar.gz 进入解压后的文件夹: cd file 源码编译安装 ./configure # ./configmakesudo make install 若报错&…...

day59反刍笔记
1.本地环境安装vue后,没有vue.js文件,只有vue.cjs.js文件, 引用后也无法正常使用,看npm install vue后的文件夹中没有vue.js文件_找不到vue.js_一枝风的博客-CSDN博客 老哥的博客后得到启发,将原本的命令由࿱…...

【阅读笔记】你不知道的Javascript--强制类型转换4
目录强制类型转换基本概念JSONboolean强转归纳其他知识点被诟病的安全使用隐式强转法则抽象关系比较语法表达式变动强制类型转换 基本概念 类型转换发生在静态类型语言的编译阶段; 强制类型转换则发生在动态类型语言的运行时(runtime) JSON…...

华为OD机试真题Python实现【有效子字符串】真题+解题思路+代码(20222023)
有效子字符串 题目 输入两个字符串S和L,都只包含小写字母, S长度 <= 100,L长度 <= 500000, 判断S是否是L的有效子字符串, 判定规则:S中的每个字符在L中都能找到(可以不连续) 且S在L中字符的前后顺序与S中顺序要保持一致 例如: S="ace"是L="abcd…...

上门按摩预约APP源码-东郊到家源码(开发,PHP,平台搭建)
一、什么是上门按摩预约APP源码? 上门按摩预约APP源码是一款家政服务类型的APP,可以帮忙用户在家就能享受按摩的服务。APP源码分两端,一端是用户端,另外一端是技师端。采用的技术,前端是安卓IOS,后端是PHP&…...

STL讲解——模拟实现vector
STL讲解——模拟实现vector vector深度剖析 在STL源码中,发现vector定义的并不是 start、size、capacity,而是start、finish、end_of_storage. 这样就可以得到size()和capacity()。 sizefinish-start capacityend_of_storage-start 扩容可能是本地扩容也…...

各种经典排序算法介绍及实现源码
一,冒泡排序(Bubble Sort) 排序算法是程序员必须了解和熟悉的一类算法,排序算法有很多种,基础的如:冒泡、插入、选择、快速、归并、计数、基数和桶排序等。 冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求,如果不…...

历史大讲堂:这是真·图形化 苹果系统历史回顾(上)
众所周知,米国有个非常牛掰的公司叫苹果,想必大家对这个logo不陌生吧。 目前已发布的苹果产品有iPhone、iPad、iPod等等,简直花样繁多,而且各种功能很好用,我的手机就是一部苹果iPhone X。 等一下,似乎扯远…...

今天女神节,用python画个贺卡送给母亲吧
今天女神节,你给女神妈妈准备了什么祝福呢?如果还没有,那么画个贺卡送给她吧,在你眼里,她是一个什么样的人呢? 是"可爱",“温柔”,“美丽”,“漂亮”…...

【编程基础之Python】11、Python中的表达式
【编程基础之Python】11、Python中的表达式Python中的表达式表达式与运算符算术表达式赋值表达式比较表达式逻辑表达式位运算表达式总结Python中的表达式 在Python中,表达式是由操作数、运算符和函数调用等组成的语法结构,可以进行各种数学运算、逻辑判…...

华为OD机试真题Python实现【乱序整数序列两数之和绝对值最小】真题+解题思路+代码(20222023)
乱序整数序列两数之和绝对值最小 题目 给定一个随机的整数数组(可能存在正整数和负整数)nums, 请你在该数组中找出两个数,其和的绝对值(|nums[x]+nums[y]|)为最小值 并返回这两个数(按从小到大返回)以及绝对值。 每种输入只会对应一个答案。但是,数组中同一个元素不能使用两…...

字符串转换整数 (atoi)(python)
链接: https://leetcode.cn/problems/string-to-integer-atoi 题目描述: 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C 中的 atoi 函数)。 函数 myAtoi(string s) 的算法…...

洛谷 P1115 最大子段和
题目链接:P1115 最大子段和 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 给出一个长度为 n 的序列 a,选出其中连续且非空的一段使得这段和最大。 输入格式 第一行是一个整数,表示序列的长度 n。 第二行有 n 个整数ÿ…...

【Linux】-- 权限和Shell运行原理
目录 Shell的运行原理 用户切换 su - / su sudo 权限 chmod chown chgrp 八进制方法修改文件属性 目录权限 粘滞位 umask 自定义默认权限 Shell的运行原理 广义上,Linux发行版 Linux内核 外壳程序 Linux 从广义上来理解它是一个操作系统 而从狭义上…...

C++各类设计模式及实现详解
软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书࿰…...

【Linux】进程理解与学习(Ⅰ)
环境:centos7.6,腾讯云服务器Linux文章都放在了专栏:【Linux】欢迎支持订阅🌹相关文章推荐:【Linux】冯.诺依曼体系结构与操作系统进程概念什么是进程?进程是什么?我们打开任务管理器可以看到有…...

认识代码之前,请先认识你自己 |《编程人生》
这是我的湛庐课程《给技术人的职场突围课》 (链接) 的一部分。 这篇文章也是 IT 女神征文活动 的一部分。 《编程人生》是一本优秀程序员的采访集,里面记录了15位世界级编程大师的故事。 我在 发刊词 里面说过,在这个书单课里&am…...