- 博客(68)
- 收藏
- 关注
原创 【C++】在C++中空指针用NULL来初始化还合适吗?
通过阅读这篇文章,大家可以对于空指针的初始化有个比较深入的了解。通过对比C++98和C++11的NULL和nullptr,来说明nullptr的优越性
2025-07-16 08:46:58
427
原创 【C++】带你一篇了解什么是OPP(面向对象编程),什么是封装?类和对象(上)
本文主要介绍了面向对象编程与面向过程编程的区别,以及C++中类的定义和使用。首先对比了两种编程范式:面向过程强调算法步骤,而面向对象关注数据和对象交互。通过足球统计案例展示了两种编程思维差异。然后详细讲解了C++类的定义方式、访问限定符(public/private/proprotected)的作用,以及封装的概念和优势。文章还解释了类的作用域、实例化过程,并分析了类对象的内存模型:成员变量存储在对象中,成员函数存放在公共代码段。最后指出类的大小仅包含成员变量,空类占用1字节空间。
2025-07-14 23:06:02
1115
2
原创 【C++】auto关键字 C++入门(5)
C++11中auto关键字被重新定义,从存储类修饰符变为类型推导指示符。auto让编译器在编译时自动推导变量类型,必须初始化且不能用于函数参数或数组声明。auto可与指针(*)、引用(&)结合使用,同一行多个auto变量类型必须一致。auto特别适用于新式for循环,配合引用可修改原数组元素。这种自动类型推导简化了代码编写,同时保持了类型安全性。
2025-07-13 21:01:44
555
1
原创 【C++】内联函数inline以及 C++入门(4)
C++内联函数(inline)的概念、作用及特性。内联函数对于编译器来说是一个建议,不代表使用了inline修饰,就一定在编译时就会使用函数体替换函数调用。
2025-07-11 22:37:15
722
1
原创 【C++】全套数据结构算法-线性表讲解(1)
在学习c++的同时复习一遍数据结构(复习的会更加深入一些),会深入底层一些(内存之类的)。然后加上题解,准备笔试题。
2025-07-11 15:58:10
923
1
原创 【C++】函数重载底层原理 C++入门(2)
C++实现函数重载的底层机制是修改了函数命名规则,在符号表中加入了参数类型信息(如_Z3Addid),而C语言仅保留函数名导致无法区分同名函数。
2025-07-02 15:28:13
722
原创 【C++】HelloWorld解析 C++入门(1)
这个暑假开始c++语言的学习,因为经过Java的学习后还是觉得c++要更深入一些,偏向底层。然后在学习C++的过程中,要结合之前学过的C语言和数据结构知识,希望能写出优质的C++文章。与君共勉!
2025-07-02 15:27:53
849
1
原创 SQL ConcurrencyControl(并发控制)
Example:Schedule ASchedule BSchedule CSchedule DSchedule E从数据约束一致性来看,模式A、B、C是可串行化的,D的结果显然不满足条件,但是更改一下D的运算,E就能通过数据约束一致性检查,所以从逻辑上讲模式D和E都是错误的,所以总结来说,判断一个调度是否正确,应该是检查调度中的read和write的执行顺序会不会导致数据约束不一致的可能。
2025-06-11 09:47:13
1128
原创 SQL Indexes(索引)
索引是加速数据库查询的关键数据结构,主要有聚焦索引(每表只能有一个,物理存储顺序与索引一致)和非聚焦索引(SQL Server默认类型)。虽然能加速查询,但会降低数据修改效率。非聚焦索引通过存储聚焦索引关键字定位数据,当物理存储顺序改变时需重建索引。
2025-06-03 09:35:02
1252
原创 SQL Views(视图)
数据库视图的概念、类型及基本操作视图分为虚拟视图(仅查询构造)和物化视图(实际存储)两种类型。通过INSTEAD OF触发器实现虚拟视图修改的方法
2025-06-02 15:51:39
852
1
原创 Real SQL Programming
SQL在实际程序中的应用通常通过存储过程和嵌入式SQL实现,而非直接终端查询。存储过程(PSM)将常规语句与SQL结合,扩展了数据库功能,具有共享逻辑、屏蔽细节、提升安全性和性能等优势。其参数模式分为IN(输入)、OUT(输出)和INOUT(双向),通过OUT参数获取返回值。这种方式比直接SQL查询更高效灵活。
2025-05-30 11:28:55
1205
1
原创 SQL(Database Modifications)
数据库修改操作主要包括插入、删除和更新三类。插入可使用INSERT语句添加单条或多条记录,支持属性列表和默认值设置;删除通过DELETE语句移除满足条件的记录,过程分为标记和删除两阶段(重点考虑涉及到子查询的的删除语句);更新操作用UPDATE修改指定记录的属性值。这些操作不返回结果,而是直接改变数据库状态。
2025-05-29 15:45:52
921
原创 More SQL(Focus Subqueries、Join)
介绍了SQL子查询,包括子查询在FROM和WHERE子句中的使用、返回单行结果的子查询。一个重要的思考:子查询和连接之间能否相互转换?IN、EXISTS、ANY、ALL等运算符在子查询中的应用,以及UNION、INTERSECT、EXCEPT等集合操作重点是内连接(INNER JOIN)和外连接(OUTER JOIN)的区别
2025-05-28 15:39:18
706
原创 Introduction to SQL
SQL语言是一种结构化查询语言,包含数据查询(DQL)、数据控制(DCL)、数据定义(DDL)和数据操纵(DML)四类操作。其核心特点是操作对象为集合,语法简洁(仅9个核心功能),支持单表和多表查询。SELECT-FROM-WHERE是基本查询结构,其中FROM确定数据源,WHERE进行筛选,SELECT执行投影。SQL还支持模糊匹配(LIKE)、空值处理(NULL)、三值逻辑运算和聚合函数(SUM/AVG/COUNT等)。多表查询通过FROM子句实现,GROUP BY支持分组计算,HAVING用于分组后过
2025-05-27 19:43:05
733
1
原创 Multivalued Dependencies
多值依赖(MVD)是指在关系模式中,当X属性值相同时,Y属性值可交换且交换后的元组仍存在于关系中,且Y值独立于其他属性。MVD规则包括函数依赖可提升为MVD,以及互补规则。第四范式(4NF)要求非平凡MVD中的X必须是超键,它能消除MVD带来的冗余。4NF比BCNF更强,满足4NF必满足BCNF。分解4NF时,若X→→Y违反4NF,可将关系分解为XY和其余属性。例如饮酒者关系通过分解逐步满足4NF。
2025-05-25 11:09:10
852
原创 Design Theory for Relational Databases(关系型数据库)
本文摘要: 函数依赖(FD)是关系数据库中描述属性间约束的重要概念,X→Y表示X属性集决定Y属性集。文章详细介绍了FD的特性,包括右侧拆分规则(X→A1A2...An等价于多个X→Ai)、超键与候选键的定义(能函数决定所有属性的最小集合),以及通过闭包算法推导隐含FD的方法。重点讨论了BCNF和3NF范式分解:BCNF要求每个FD的左侧必须是超键,而3NF放宽条件允许右侧是主属性。文章通过酒馆数据库案例演示了BCNF分解过程,并比较了两种范式在保持无损连接和依赖保留方面的差异。最后简要提及2NF要求非主属性
2025-05-24 10:49:51
621
原创 Entity-Relationship Model(实体-关系模型)
E/R模型(实体-关系模型)用于数据库模式设计,通过实体关系图(E/R图)直观展示数据库结构。实体集表示相似实体的集合,属性为实体的简单值,关系集则连接多个实体集。E/R图通过矩形、椭圆和菱形分别表示实体集、属性和关系。关系类型包括多对多、多对一和一对一,通过箭头表示关系的多重性。E/R模型还支持子类、弱实体集和键的设计,子类继承超类属性,弱实体集依赖其他实体集的键来唯一标识。设计时应避免冗余,合理选择实体集和属性,并限制弱实体集的使用。最终,E/R设计可转换为关系数据库设计,实体集和关系分别映射为表和关系
2025-05-21 15:27:48
609
原创 Java-高阶-异常处理
详细讲解Java中的异常处理机制:exception中的try、catch、finallg语句块;throws抛出异常、自定义异常类
2025-04-14 11:02:14
959
原创 Java-高阶-集合框架
主要介绍Java中的集合框架,包括:Collection接口、Set接口及其实现类、List接口及其实现类、Map接口及其实现类ArrayList、LinkedList、HashSet、TreeSet、HashMap、简单的多线程封装语句
2025-04-13 09:16:32
697
原创 MySQL-触发器
触发器是一个与表有关的数据库对象,能够在insert、update、delete后,触发并执行触发器中定义的SQL语句集合。可以协助应用在数据库端确保数据的完整性,日志查询,数据校验。使用OLD、NEW来引用触发器中发生变化的记录内容。现在的触发器还只是行级触发器,不支持语句级触发器。影响了多行数据,触发器将被多次触发影响了多少行数据,只被触发一次。
2025-03-31 20:57:59
470
1
原创 MySQL-存储过程
MySQL存储过程,由一系列SQL语句经过编译后的指令集合,通过调用这个集合可以简化开发者的流程。最重要的是,能够减少数据在数据库和应用服务器之间的传输,提高数据处理的效率。系统变量、用户自定义变量、局部变量流程控制(if、case、while、repeat、loop)游标cursor
2025-03-26 20:33:10
1651
1
原创 MySQL-sql优化
主要讲一下SQL优化:insert优化、主键优化、order by优化、group by优化、limit优化、count优化、update优化这都是经常用到的优化手段
2025-03-21 14:33:16
1015
原创 MySQL-索引
MySQL索引,B+Tree,慢查询日志,prfile详情,explain执行计划,最左前缀法则,索引失效情况,覆盖索引,前缀索引,索引的选择性
2025-03-18 14:39:32
1097
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人