SQL系统函数知识点梳理(Oracle)

这里写目录标题

  • 函数
    • 系统函数
      • 转换函数
        • to_date()
        • to_char()
          • 将数值转换成字符
            • 格式
          • 添加货币符号
          • 将日期转换成字符
        • 其他不常用的转换函数
      • 字符型函数
        • 连接函数
        • 大小写转换函数
          • 大写转换
          • 小写转换
          • 首字母大写,其余的小写
        • 替换函数
        • 去除空格函数
        • 截取函数
        • 填充函数
        • 获取字符长度函数
        • 获取字符位置函数
      • 数值型函数
        • 绝对值函数
        • 向上取整,向下取整
        • 取余函数
        • 四舍五入函数
        • 截取函数
        • 判断正负函数
        • 返回x的y次幂函数
      • 日期型函数
        • 添加月函数
        • 该月最后一天函数
        • 间隔月函数
        • NEW_TIME()
        • NEXT_DAY()
        • trunc()
        • 日期减法
      • 聚合函数(分组函数)
      • 开窗函数(分析函数)(窗口函数)--重点
      • 其他函数
        • 空值替换函数
        • 去重
        • ==条件判断取值函数==(重点!)
        • CASE WHEN

函数

函数是已经封装好的程序,会返回一个值,直接拿来使用就可以了
特点:返回一个

系统函数

系统函数是已经存在的函数,比如: 聚合函数,转换函数(to_date()函数)。
下面介绍一些常用函数

转换函数

to_date()

to_date(‘目标字符’,‘日期格式’);
功能:将目标字符转换成想要的日期格式
返回:日期
在这里插入图片描述
SYSDATE --系统日期

SELECT SYSDATE FROM dual;

在这里插入图片描述

to_char()

转换字符函数
to_char(目标数值或日期,[‘格式’])
功能:将数值或者日期按照格式转换成字符
返回:字符

将数值转换成字符
SELECT to_char(123.45) FROM dual  //没给格式仅仅将数值转换成了字符。
格式

0 :代表格式,
----当整数位无数字则以0补全,
----当小数位无数字,以0补全,
----当小数位精度不足,则四舍五入,
----当整数位精度不足,则显示成#####
9 :代表格式
----当整数位无数字,则格式不生效(只有此处与0不同)
----当小数位无数字,以0补全,
----当小数位精度不足,则四舍五入,
----当整数位精度不足,则显示成######
在这里插入图片描述
以上是格式9的用法,0与9的区别只有第一条的区别不一样。
如果换成0整数位无数字会被0代替。

添加货币符号

$:美元符号
L:当地货币
在这里插入图片描述

将日期转换成字符

在这里插入图片描述
d-本周的第几天 ==注意:==每周的第几天,美国人是按照星期日开始计算的 所以说星期三是本周的第四天
dd-本月的第几天
ddd-本年的第几天
w-本月的第几周
ww-本年的第几周
mm-本年的第几月
q-本年的第几季(1.1-4.1,4.1-7.1,7.1-10.1,10.1-1.1)
yyyy-年
day-星期几
year-多少年

其他不常用的转换函数
函数名作用
chartorowid()字符串转换为rowid值
ROWIDTOCHAR()rowid值转换成字符串
CONVERT()字符串语言字符集转换
HEXTORAW()16进制转换为二进制
RAWTOHEX()二进制转换为16进制
TO_NUMBER()字符串转换为数字型
TO_MULTI_BYTE()半角转换为全角
to_single_byte()全角转化为半角
nls_charset_id()字符集名称转为ID
nls_charset_name()字符集ID转换为名称

字符型函数

针对字符做处理

连接函数

CONCAT(‘字符1’,‘字符2’)
作用:将字符1和字符2进行拼接,拼接后的结果作字符返回。
返回:字符。

SELECT CONCAT('ABC','def') from dual;
SELECT concat(ename,job) FROM emp;
SELECT concat(ename,sal) FROM emp; //sal是数值类型,注意下面的解释

与 || 的区别
1.CONCAT()里面的参数只有两个。如果连接的字符有三个及以上 ||可以直接拼,而CONCAT()需要用到函数嵌套。
函数嵌套:里层的函数返回的结果成为了外层函数的一部分
2.concat()是函数存在于多个数据库中,但是 || 只能再Oracle数据库中使用。

Oracle数据库会将数值隐性转换成字符。通俗来讲,在Oracle中写出来的数字既是数字也是字符。但是在代码中尽量少或者不要出现隐性转换,因为会效率低。


大小写转换函数
大写转换

UPPER(字符)
作用:将字符变成大写
返回:字符

SELECT UPPER('asAADSsaers一二三ad') From dual;

在这里插入图片描述

汉字没有大小之分,如果放入大写字母或者汉字都不会变

小写转换

LOWER(字符)
作用:将字符变成小写
返回:字符

首字母大写,其余的小写

INITCAP(字符)
作用:将字符首字母大写,其余变成小写。
返回:字符

SELECT INITCAP('mkmkADWQdsaMKAdaS') FROM dual;

注意:如果转变的字符中存在空格或者其他符号,被分开的第二段字母首字母同样会大写。


替换函数

REPLACE(目标字符,目标字符中要被替换的部分,替换成的值)

SELECT REPLACE('asdwsc','sdw','哈哈哈哈');
SELECT REPLACE(ename,'a','K'),ename from emp;

在这里插入图片描述
在这里插入图片描述
REPLACE()可以去空格

SELECT REPLACE('errr errw   wad',' ','哈'),REPLACE('errr errw   wad',' ','') from dual;

在这里插入图片描述

去除空格函数

Trim()
作用:去除字符两侧的空格
返回:字符

SELECT TRIM('   abc  def    ')  FROM dual;

在这里插入图片描述
Ltrim():去除左侧空格
Rtrim():去除右侧空格

截取函数

Substr(目标字符,截取位置参数n,[长度参数l])
作用:从第n个位置,截取l个长度。

SELECT ename,SUBSTR(ename,0,2) FROM EMP;

在这里插入图片描述

SELECT ename,SUBSTR(ename,-2,2) FROM EMP;//位置可以是负数,-2是指从倒数第二位开始截,截2长度。长度不能为负数

如果不写l参数,默认截取到最后。
1.在这里面 0,1没区别 都是从头开始截取。
2.位置可以是负数,长度必须的大于0;
3.不管位置是不是负数,截取都是从前往后截

练习题:

1)截取字符串’ABCDEF’中的前三个字符
2)截取名字中的前两位字符
3)从名字中的第二位字符开始,截取三位长度

SELECT SUBSTR('ABCDEF',0,3) FROM dual;
SELECT ename,SUBSTR(ename,0,2) FROM emp;
SELECT ename,SUBSTR(ename,2,3) FROM emp;

填充函数

lpad(目标字符,长度l,值)
左右:向目标左侧填充值,使其达到长度L
返回:字符

SELECT LPAD('abc',10,'*');

rpad(目标字符,长度l,值)
左右:向目标右侧填充值,使其达到长度L
返回:字符

SELECT LPAD('abc',10,'*');

获取字符长度函数

length(字符);
作用:返回字符的长度
返回:数值

SELECT LENGTH('sadasfasd') FROM dual;

在这里插入图片描述
练习:
1.找出姓名长度是五位 的员工信息
2.查询姓名长度是五位并且首字母是A
3.按照员工姓名长度分组,计算每组的人数,并且按照姓名长度排序。

SELECT * FROM emp WHERE LENGTH(ename)=5;
SELECT * FROM emp WHERE LENGTH(ename)=5 AND ename LIKE'A%';
SELECT * FROM emp WHERE LENGTH(ename)=5 AND SUBSTR(ename,1,1) ='A';.//第二题第二种写法。
SELECT COUNT(1),LENGTH(ename) FROM emp GROUP BY LENGTH(ename) ORDER BY LENGTH(ename);2

//WHERE后面不能用聚合函数,其他函数可以用


获取字符位置函数

INSTR(目标字符,目标字符中要找的字节s,位置参数n,次数参数n1)
作用:在目标字符中,从第n个位置开始找,找到第n1次出现的s,返回s所在目标字符中的位置。
返回:数值

SELECT INSTR('sjakdjkalsjhfasjdjwa','j','3','2') FROM dual;//从第三位开始找,找到j第2次出现的位置

在这里插入图片描述
在这里插入图片描述
找不到值的时候会返回0;
练习
查找姓名中至少有两个A的员工信息;
查找姓名中正好有两个A的员工信息;

SELECT * FROM emp WHERE INSTR(ename,'A')!=0;
SELECT * FROM emp WHERE INSTR(ename,'A',1,2)!=0 AND INSTR(ename,'A',1,3)=0;

在这里插入图片描述


函数名作用
ASCLL()返回字符的ASCII码
CHR()返回ASCII码为x的字符
NLS_LOWER()把整个字符串转换成小写
NLS_UPPER()把整个字符串转换成大写
LENGTH()返回字符串的长度
LENGTHB()返回字符串的长度(全角算2字符)
LTRIM()删除左边字符串
RTRIM()删除右边字符串
SOUNDEX()字符串语音表示形式
TRANSLATE()替换子字符

数值型函数

绝对值函数

abs(数值)
作用:返回数值的绝对值
返回:数值

SELECT ABS(-516.5),ABS(546),ABS(0) FROM dual;

在这里插入图片描述


向上取整,向下取整

向上取整
ceil(整数)
作用:返回离数值较近的较大的整数。
返回:数值

SELECT ceil(1.1),ceil(1.9999),ceil(-1.1) FROM dual;

在这里插入图片描述
向下取整
floor(数值)
作用:返回离数值较近的较小的整数。
返回:数值

SELECT floor(1.1),floor(1.9999),floor(-1.1) FROM dual;

取余函数

mod(x,y)
作用:返回x除以y得到的余数
返回:数值
练习:
查询姓名长度是奇数的员工信息

SELECT * from emp where MOD( LENGTH(ename),2)=1;

+-----------------------


四舍五入函数

ROUND(数值,[精度p])
作用:将数值按照精度p进行四舍五入
返回:数值
在这里插入图片描述
正数时保留到小数点后几位,负数时保留到小数点前几位,0是保留整数。位数不足时不会以0补全。
ROUND(123.45,-1)的结果是120
ROUND(123.45,0)的结果是123
不写精度默认保留整数


截取函数

trunc(数值,[截取精度])
作用:直接截取,四舍五入


判断正负函数

sign(数值)
作用:判断数值的正负
返回:数值

SELEC SIGN(123.45),sign(-123.45),sign(0) FROM dual;

在这里插入图片描述

返回x的y次幂函数

power(x,y)
作用:返回x的y次幂
返回:数值


日期型函数

添加月函数

ADD_MONTHS(d1,n1)
作用:返回在日期d1的基础上,再加上n1个月后的新日期
返回:日期

SELECT SYSDATE,add_months(sysdate,3) hz FROM dual;

在这里插入图片描述


该月最后一天函数

last_day(d1)
作用:返回日期d1所在月份最后一天的日期。
返回:日期


间隔月函数

months_between(d1,d2)
作用:返回两个日期之间的月数
返回:数值

SELECT SYSDATE,MONTHS_BETWEEN(SYSDATE,TO_DATE('2008/2/3','yyyy/mm/dd')) FROM dual;

如果d1>d2,则返回正数,
如果d2>d1,则返回负数


NEW_TIME()

NEW_TIME(dt1,c1,c2)
【功能】:给出时间dt1在c1时区对应c2时区的日期和时间
【参数】:dt1,d2 日期型

【返回】:日期时间

【参数】:c1,c2对应的 时区及其简写
大西洋标准时间:AST或ADT
阿拉斯加_夏威夷时间:HST或HDT
英国夏令时:BST或BDT
美国山区时间:MST或MDT
美国中央时区:CST或CDT
新大陆标准时间:NST
美国东部时间:EST或EDT
太平洋标准时间:PST或PDT
格林威治标准时间:GMT
Yukou标准时间:YST或YDT


NEXT_DAY()

NEXT_DAY(d1[,c1])
【功能】:返回日期d1在下周,星期几(参数c1)的日期
【参数】:d1日期型,c1为字符型(参数),c1默认为j(即当前 日期)
【参数表】:c1对应:星期一,星期二,星期三……星期日
【返回】:日期

trunc()

trunc(d1[,c1])
【功能】:返回日期d1所在期间(参数c1)的第一天日期
【参数】:d1日期型,c1为字符型(参数),c1默认为j(即当前日期)
【参数表】:c1对应的参数表:
最近0点日期: 取消参数c1或j
最近的星期日:day或dy或d (每周顺序:日,一,二,三,四,五,六)
最近月初日期:month或mon或mm或rm
最近季日期:q
最近年初日期:syear或year或yyyy或yyy或yy或y(多个y表示精度)
最近世纪初日期:cc或scc

在这里插入图片描述

日期减法

日期减日期等于天数
在这里插入图片描述
练习
1.查询出入职日期是当月倒数第三天入职的员工信息

SELECT * FROM emp WHERE last_date(hiredate)-hiredate = 2;

聚合函数(分组函数)

AVG()
SUM()
MAX()
MIN()
COUNT()
等,相信大家用的很熟练。

开窗函数(分析函数)(窗口函数)–重点

未更新

其他函数

空值替换函数

NVL(列名,值)
作用:将该列空值替换成想要的值

SELECT ename,sal,NVL(comm,1) FROM emp;

注意:保证值和前面列的属性一致。
在这里插入图片描述
练习,计算每个人的年薪

SELECT ename,sal,comm,(sal+NVL(comm,0) )*12 年薪 FROM emp;

在这里插入图片描述
NVL2(列名,值1,值2)
作用:当该列不为空的时候返回值1,为空的时候返回值2.

SELECT ename,comm,NVL2(comm,2,4) FROM emp;

在这里插入图片描述

去重

DISTINCT
作用:将查询结果去重
DISTINCT 效率低
/*执行顺序
FROM
WHERE
GROUP BY
HAVING
SELECT
DISTINCT ***
ORDER BY
*/
(不是函数)


条件判断取值函数(重点!)
DECODE(判断目标,目标返回的值1,重新定义值1,目标返回值2,重新定义值2,.......,其他情况定义为)

判断奖金,当奖金时空值的时候,则翻译成没有奖金。当奖金有值的时候翻译成有奖金。

SELECT ename,comm,DECODE(comm,NULL,'没有奖金','有奖金') from emp;

在这里插入图片描述
练习:当工资为1000-1999的时候,翻译成工资小于2000,当工资是2000-2999 翻译成小于3000;

SELECT sal,DECODE(floor(sal/1000),1,'工资小于2000',2,'工资小于3000',3,'工资小于4000','工资大于4000');

在这里插入图片描述
2. 显示员工姓名 姓名长度,当姓名长度是奇数的时候返回’奇数‘否则返回’偶数‘

SELECT ename,Length(ename),DECODE(MOD(LENGTH(ename),2),1,'奇数',2,'偶数','啊?') FROM emp;

在这里插入图片描述

CASE WHEN

写法

CASE WHEN 条件1......    --当满足条件1时THEN 结果1       ----执行结果1WHEN 条件2......THEN 结果2WHEN 条件3......THEN 结果3.....[ELSE 其他结果]     ---当不满足以上所有条件,则要执行的结果
END      ----结束

练习:当工资为1000-1999的时候,翻译成工资小于2000,当工资是2000-2999 翻译成小于3000;

  SELECT ename,sal,CASE WHEN sal>=1000 AND sal<2000THEN '工资小于2000'WHEN sal>=2000 AND sal<3000THEN  '工资小于3000'WHEN sal>=3000 AND sal<4000THEN  '工资小于4000'ELSE  '土豪'END AS "工资情况"FROM emp;

练习:给13季度员工涨薪10%,给24季度员工降薪10%;

SELECT ename,sal,CASE WHEN to_char(hiredate,'q') IN (1,3)THEN  sal*1.1WHEN to_char(hiredate,'q') IN (2,4)THEN sal*0.9END AS "薪资变化"
FROM emp;

在这里插入图片描述
函数练习题:

--查询当前日期
SELECT SYSDATE FROM DUAL;
--显示员工工资,加上$
SELECT SAL, CONCAT(SAL, 's') FROM EMP;
--将字符串"1980-12-17"转成日期
SELECT TO_DATE('1980-12-17', 'yyyy-mm-dd') FROM DUAL;
--使用case表达式,职位是分析员的,工资+1000;职位是经理的,工资+800;职位是其它的,工资+400
SELECT SAL,ENAME,JOB,CASEWHEN JOB = 'ANALYSE' THENSAL + 1000WHEN JOB = 'MANAGER' THENSAL + 800ELSESAL + 400END AS 薪资变化FROM EMP;
--使用decode函数,职位是分析员的,工资+1000;职位是经理的,工资+800;职位是其它的,工资+400【oracle专用】
SELECT SAL,JOB,DECODE(JOB, 'ANALYSE', SAL + 1000, 'MANAGER', SAL + 800, SAL + 400) "薪资变化"FROM EMP;
---从今天开始算,下下一个星期三是多少号?(next_day)
SELECT NEXT_DAY(NEXT_DAY(SYSDATE, '星期三'), '星期三') FROM DUAL;
--员工总工资,平均工资,四舍五入,保留小数点后2位
SELECT ROUND(SUM(SAL), 2), ROUND(AVG(SAL), 2) FROM EMP;
--求入职最早员工和入职最晚员工的入职日期
SELECT MIN(TO_CHAR(HIREDATE, 'yyyy')) "最早",MAX(TO_CHAR(HIREDATE, 'yyyy')) "最晚"FROM EMP;
--统计有佣金的员工人数
SELECT COUNT(1), DECODE(COMM, NULL, '无奖金', '有奖金') "有无佣金"FROM EMPGROUP BY DECODE(COMM, NULL, '无奖金', '有奖金');
--按部门求出部门平均工资,且平均工资取整数
SELECT ROUND(AVG(SAL), 0), AVG(SAL), DEPTNO FROM EMP GROUP BY DEPTNO;
--除30号部门外,查询部门平均工资大于1500元的部门
SELECT DEPTNOFROM EMPWHERE DEPTNO <> 30GROUP BY DEPTNO
HAVING AVG(SAL) > 1500;
--显示部门平均工资的最大值
SELECT MAX(AVG(SAL)) FROM EMP GROUP BY DEPTNO;

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Sql Server】锁表如何解锁,模拟会话事务方式锁定一个表然后进行解锁

大家好&#xff0c;我是全栈小5&#xff0c;欢迎来到《小5讲堂》。 这是《Sql Server》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 前言创建表模拟…

图灵奖得主AviWigderson:随机性与AI深度融合,引领计算科学新篇章

近日&#xff0c;理论计算机科学领域的杰出代表Avi Wigderson教授荣获了享有“计算机界诺贝尔奖”美誉的图灵奖&#xff0c;以表彰他对计算中随机性和伪随机性研究的杰出贡献。这一荣誉不仅彰显了Wigderson教授在计算理论领域的卓越成就&#xff0c;也为当前热门的AI和深度学习…

Dubbo面试回答简单版

一、dubbo特性 超时重试机制地址缓存多版本负载均衡&#xff1a;随机、权重轮询、最少活跃调用、一致性哈希集群容错&#xff1a;失败重试、快速失败、失败安全、失败自动恢复、并行调用、广播服务降级&#xff1a;异常时返回mock 集群容错 FailOver 失败重试&#xff0c;读…

Linux——守护进程

在这篇文章中我介绍了关于tcp网络套接字&#xff0c;关于网络套接字编程的问题我会再次讲述一点东西&#xff0c;然后介绍关于守护进程的知识。 1. 关于网络套接字编程的一些问题 在进行套接字编程时我们一定是得先有套接字&#xff0c;并且我们在使用socket的一些接口时&…

阳哥推荐的人力RPO蓝海项目怎么做才会赚钱吗?

近年来&#xff0c;随着互联网的快速发展&#xff0c;人力资源行业也迎来了新的变革。抖音上的阳哥推荐的人力RPO(招聘流程外包)蓝海项目&#xff0c;因其高效、便捷的特点受到了广泛关注。那么&#xff0c;这个项目究竟怎么做才能赚钱呢? 首先&#xff0c;我们需要了解人力RP…

aws云靶场和一些杂记

aws靶场 在AWS靶场中&#xff0c;存在三个安全问题&#xff1a;1) 一个S3存储桶政策配置错误&#xff0c;允许公共访问&#xff0c;通过访问特定域名可获取flag。2) SQS消息队列的政策没有限制角色&#xff0c;允许发送和接收消息&#xff0c;通过aws sqs命令行工具的receive-…

超光速传输:有源DWDM的无限可能✊

&#x1f5fa;&#x1f5fa;随着5G时代的到来&#xff0c;支持更高数据速率、较低延迟和更大传输容量的网络设施大量铺设&#xff0c;满足了人们对高质量通信的现有要求。然而&#xff0c;传统光网络中通常每个业务通过多根光纤进行传输&#xff0c;大大降低了传输效率。为了解…

cesium JulianDate和北京时间转换

关于cesium中时间可参考&#xff1a; cesium Clock JulianDate 日照分析 修改当前时间为北京时间-CSDN博客 有几个概念需要了解一下。 1、GMT、UTC GMT是前世界标准时&#xff0c;UTC是现世界标准时&#xff0c;UTC 比 GMT更精准&#xff0c;不需要精确到秒的情况下&#xf…

太阳能智能语音卡口:环保与智能的完美结合/恒峰智慧科技

随着科技的飞速发展&#xff0c;我们的生活正在经历前所未有的变革。在这场变革中&#xff0c;太阳能智能语音卡口以其独特的魅力&#xff0c;成为环保与智能的完美结合&#xff0c;为我们的生活带来了更多的便捷和环保。 太阳能智能语音卡口&#xff0c;顾名思义&#xff0c;是…

【每日刷题】技巧合集-LC136、LC169

1. LC136.只出现一次的数字 题目链接 解法一&#xff1a; 先给数字排序&#xff0c;如果num[i]与nums[i-1]或nums[i1]都不一致&#xff0c;则返回nums[i]。 class Solution {public int singleNumber(int[] nums) {if (nums.length 1){return nums[0];}Arrays.sort(nums);fo…

基于LabVIEW的CAN通信系统开发案例

基于LabVIEW的CAN通信系统开发案例 介绍了基于LabVIEW开发的CAN通信系统&#xff0c;该系统主要用于汽车行业的数据监控与分析。通过对CAN通信协议的有效应用&#xff0c;实现了车辆控制系统的高效信息交换与实时数据处理&#xff0c;从而提升了车辆性能的检测与优化能力。 项…

Nginx内存池相关源码剖析(一)总览

剖析nginx的内存池源码&#xff0c;讲解原理实现以及该内存池设计的应用场景 介绍 Nginx内存池是Nginx为了优化内存管理而引入的一种机制。在Nginx中&#xff0c;每个层级&#xff08;如模板、TCP连接、HTTP请求等&#xff09;都会创建一个内存池进行内存管理。当这些层级的…

手动实现简易版RPC(下)

手动实现简易版RPC(下) 前言 什么是RPC&#xff1f;它的原理是什么&#xff1f;它有什么特点&#xff1f;如果让你实现一个RPC框架&#xff0c;你会如何是实现&#xff1f;带着这些问题&#xff0c;开始今天的学习。 接上一篇博客 手动实现简易版RPC&#xff08;上&#xff…

【YOLOv9】完胜V8的SOTA模型Yolov9(论文阅读笔记)

官方论文地址&#xff1a; 论文地址点击即可跳转 官方代码地址&#xff1a; GitCode - 开发者的代码家园 官方代码地址点击即可跳转 1 总述 当输入数据经过各层的特征提取和变换的时候&#xff0c;都会丢失一定的信息。针对这一问题&#xff1a; 论文中提出的可编程梯度信息…

MATLAB实现遗传算法优化BP神经网络预测数值(GABP)

遗传算法&#xff08;Genetic Algorithm, GA&#xff09;和反向传播&#xff08;Back Propagation, BP&#xff09;神经网络是两种强大的算法&#xff0c;分别用于优化和机器学习。将遗传算法与BP神经网络结合&#xff0c;可以利用遗传算法的全局搜索能力来优化BP神经网络的初始…

Socket 通信机制详解

Socket 是网络编程中一种重要的通信机制&#xff0c;它允许不同的计算机通过网络进行数据交换。 一、 Socket 的概念 Socket&#xff08;套接字&#xff09;是计算机网络编程中的一种抽象&#xff0c;它提供了在网络上进行通信的接口。 Socket 本质上是一种通信的端点&#…

C++ ─── 类和对象(上)

目录 1.面向过程和面向对象初步认识 2.类的引入 3.类的定义 3.1 类的成员函数两种定义方式&#xff1a; 4.类的访问限定符及封装 4.1 访问限定符 4.2 封装 5.类的作用域 6.类的实例化 7.类对象模型 7.1 如何计算类对象的大小 7.2 结构体内存对齐规则 8.this指针 …

CSS display属性

目录 概述&#xff1a; 设置display示例&#xff1a; none&#xff1a; block&#xff1a; inline&#xff1a; inline-block &#xff1a; 概述&#xff1a; 在CSS中我们可以使用display属性来控制元素的布局&#xff0c;我们可以通过display来设置元素的类型。 在不设置…

IO-序列化流

简介 这个流是为了传输对象而生的对象序列化&#xff1a;把java对象写入到文件中对象反序列化&#xff1a;把文件中的对象读出来 继承体系 ObjectInputStream:把文件中的对象读出来ObjectOutputStream:把java对象写入到文件中 常用API 示例 实体类必须实现序列化接口这其实就是…

【Excel2LaTeX】复杂表格制作的解决方案

刚开始用LaTeX写论文&#xff0c;遇到的第一道坎就是绘制表格&#xff0c;较小的普通表格可以通过简单的语法实现&#xff0c;但是较大的复杂的表格却让我无从下手。 Excel2LaTeX插件 这里介绍一种我用到非常顺手的工具&#xff1a;Excel2LaTeX插件&#xff0c;下载地址&#x…