- 博客(70)
- 问答 (1)
- 收藏
- 关注
原创 【SQL】SQL事务
当我们发现第一条sql执行失败了,我们不能进行commit提交,而是应该使用rollbak进士回滚,让数据恢复到之前的状态。update account set money = money + 1000 where name = '李四';update account set money = money - 1000 where nam = '张三';:如果再第三步出现了异常,这就导致张三银行卡里的钱被扣掉了,但是李四银行卡里的前并没有增加。这一组操作就必须在一个事务的范围内,要么都成功,要么都失败。
2025-02-22 14:05:46
800
原创 【SQL】SQL多表查询
一对一关系,多用于单表拆分,将一张表的基础字段放在一张表中,其他详情字段放在另一张表中,以提升操作效率。建立第三张中间表,中间表至少包含两个外键,分别关联两方主键,使用。在任意一方加入外键,关联另外一方的主键,并且设置外键为唯一的。一个学生可以选修多门课程,一门课程也可以供多个学生选择。4. 增加唯一约束,保证外键创建成功。来维护二者之间的关联关系。用户 与 用户详情的关系。
2025-02-18 11:19:48
924
原创 【SQL】SQL约束
📢一旦为某个表建立了外键关联之后,我们再去删除被关联的父表的记录,如果发现当前父表的这条数据在子表中存在关联关系就不允许删除,这样就保证了数据的一致性和完整性。
2025-02-17 23:11:12
823
5
原创 【SQL】SQL用户管理和权限
撤销'remote'@'%' 用户的test数据库的所有权限。可以在任意主机访问该数据库, 密码remote;用来管理数据库用户、控制数据库的访 问权限。修改用户remote的访问密码为1234;删除itcast@localhost。仅代表只能够在当前本机访问,是不可以。授予'remote'@'%' 用户。代表的是访问该数据库的用户名。多个权限之间,使用逗号分隔。数据库所有表的所有操作权限。创建用户remote,代表当前用户访问的主机。, 密码itcast;
2024-10-21 16:16:39
1062
原创 【SQL】SQL查询语句
⭐ DQL-介绍。DQL英文全称是Data Query Language(数据查询语言)。用来查询数据库中表的记录同样DQL语言也是数据库中操作最频繁,最重要的语言。
2024-10-12 14:52:09
886
原创 [SQL] 数据库图形化安装和使用
一 安装1.1图形化安装下载DataGrip安装包 点击此处 一直下一步即可。 点击免费使用。进去界面后,选择新建一个项目点击加号,创建一个Mysql连接。 输入Mysql的连接信息。 点击DownLoad下载Mysql的驱动接下来点击创建的mysq项目中后面的三个点,选择要显示的哪些数据库 选择完成后点击刷新,这样就会显示出所需要显示的数据库了。二 创建数据库和表2.1 创建数据库右键点击创建的Mysql项目->New->Schem
2024-10-11 16:03:34
383
原创 [SQL] SQL语句注意事项
数据定义语言: 用来定义数据库对象(数据库,表,字段)数据操作语言:用来对数据库表中的数据进行增删改数据查询语言: 用来查询数据库中表的记录数据控制语言: 用来创建数据库用户、控制数据库的访问权限。
2024-10-04 19:48:15
685
原创 [qt] 数据库基本概念
用于执行数据库定义的任务,对数据库及数据库中的各种对象进行创建、删除和修改等操作。数据库对象主要包括表、默认约束、规则、视图、触发器和存储过程等。比如: create创建数据库对象drop:删除数据库对象alter:修改数据库对象truncate: 清空表中的所有数据,但保留表结构不变。
2024-08-08 22:19:33
1045
1
原创 [qt] 多线程应用02
要值得注意的是qt的信号槽依赖元对象系统,他的绑定是根据信号的名字来绑定的,但是在我使用的5.12.5版本的qt中,QTcpSocke这个类中有两个error同名函数。
2024-08-08 14:21:23
387
原创 [qt] 线程等待与唤醒
DataSize: 生产者生产数据的大小BufferSize: 也就是这个缓冲区的大小,每个单元是一个int,也有可能是一个链表,结构体等等。mutex: 为了保证多个线程操作同一块数据时的原子性操作int numUsedBytes: 表示当前已经使用了多少个存储"单元"。int rIndex = 0:由于使用多个消费者线程处理生产者数据,所以为了不重复读取,设置全局变量rIndex用于标识当前读取到缓冲区的位置。
2024-08-04 21:20:44
1153
原创 [qt] 多线程控制
如果线程1和线程2同时将变量载入寄存器,执行加1操作,然后返回,此时两个线程执行的结果就会相互覆盖,实际上只进行了一次加1操作。为了保证这种在多线程的环境下正确执行,我们需要保证上面三条机器指令必须串行执行且不允许中途被打算(
2024-07-31 12:11:32
667
原创 [C++] 模板编程-12 模板元编程
模板元编程的基本原理是通过模板来描述编译时的逻辑运算,编译器在编译过程中对这些模板进行实例化,并生成相应的代码进行运算。这样,原本需要在运行时进行的计算或类型检查等操作,可以提前到编译时完成,从而提高程序的运行效率。
2024-07-30 14:53:04
190
原创 [C++] 模板编程-11 模板类型的推导
void func(T1(T2::*t2)(T3),T3 t3) // T2一定是个类/结构体类型 并且是一个函数 返回值为T1 参数为T3。
2024-07-30 13:46:20
521
原创 [C++] 模板编程-10 模板形参---->模板参数
首先我们里面的template相当于一个模板, 后面的class与typename功能一样,表示指定类型名为T,而这里的类型是前面的template
2024-07-30 10:11:52
266
原创 [C++] 模板编程-06 内部类模板
【代码】[C++] 模板编程-06 内部类模板。将一个类定义在另一个类的内部内部类与外部类没有任何关系,相互不能调用和访问。内部类相当于加了一个限定符,调用和使用时需要用到外部类的类名。
2024-07-27 21:43:33
599
原创 [C++] 模板编程-05 类模板的静态成员
【代码】[C++] 模板编程-04 类模板的静态成员。不依赖模板参数也就是任何采用该类模板生成的模板类都拥有一个通用的数据类型的成员而不受到模板参数的影响
2024-07-27 20:59:52
191
原创 [C++] 模板编程-03 typename关键字
在模板参数列表中,typename和class可以互换使用在模板参数内部,如果需要引用模板参数的一些嵌套的数据类型,则需要使用typename
2024-07-26 11:15:00
208
原创 [C++] 模板编程-02 类模板
声明public:定义:在定义时不但要加载类名的限定符,还要声明模板参数,以及传递模板参数a : b;如果我们将模板类定义在cpp中,那么我们就会遇到未定义的错误行为对于模板类的函数声明和实现必须放在同一个.h里面2.1 原因延迟实例化: 首先当编译器遇到类模板的声明时,并不会为这个类模板创建任何的代码,因为类模板的实例化是在调用它时才会产生对应的代码。如果成员函数定义位于类模板定义之外,比如在另一个.cpp文件中,那么就需要显式地实例化这些成员函数。
2024-07-25 16:33:22
429
原创 [qt] qt程序打包以及docker镜像打包
如果系统是只能离线安装,那么需要先配置镜像仓库,并且为yum源指定本地镜像仓库的位置。其实很简单只需要在/etc/yum.repos.d目录下配置一个一.repo为后缀的文件,然后将我们需要的离线rpm软件包放到一个指定目录下即可。这个工具的主要作用是为了找到qt运行所需要的库文件,我们只需要在GitHub下载可执行文件即可。#qt库文件路径这个很重要,Linuxdeployqt需要设置这个才能找到程序所需要的动态库。#qt安装路径的可执行文件目录 比如qmake等。#qt安装路径的目录。
2024-06-10 13:24:58
1980
原创 [GDB] GDB调试
UNIX及UNIX-like下的调试工具。虽然它是命令行模式的调试工具,但是它的功能强大到你无法想象,能够让用户在程序运行时观察程序的内部结构和内存的使用情况。
2024-05-27 14:23:04
967
原创 [OpenGL] opengl切线空间
对于法线贴图来说,我们知道它就是一个2D的颜色纹理,根据rgb来映射法线对应的xyz,从而达到在同一个平面上有多个不同方向法线的效果,这样就能根据光照的计算结果不同,从而得到凹凸不平(或者说更加细节)的平面。
2024-05-25 15:42:44
790
原创 [OpenGL] 法线贴图
如下图所示: 左边第一个是传入了上百万的顶点坐标实现的效果,而最中间的是传入了500个顶点实现的效果,最后一个是在中间的基础上运用的法线贴图实现的效果,他们的效果几乎是一样的。我们知道不是所有的物体表面都是光滑平整的平面,比如我么要绘制一个人脸,但人脸会由,头发,五官,甚至是微表情等组成这些都是具有凹凸感的,那我们该如何体现出这种凹凸感呢?
2024-05-23 15:31:57
1270
1
原创 c++编码规范
对于编码规范这个东西,没有一个定式,主要是由于大型产品的开发通常由很多的人协同作战,如果不统一编程规范,最终合到一起的程序,其可读性将较差,这不仅给代码的理解带来障碍,增加维护阶段的工作量,同时不规范的代码隐含错误的可能性也比较大。
2024-05-17 17:03:39
856
原创 [OpenGL] 点光源阴影(万向阴影贴图)
由于点光源是一个点向四周发散的光线,所以这将导致点光源会以不同的角度到达场景中的不同表面,造成近大远小的效果,所以要采用透视投影矩阵来处理点光源的阴影,透视投影能够正确反映这种随着距离增加而大小和亮度逐渐变化的现象。
2024-05-15 17:11:25
1164
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人