- 博客(44)
- 收藏
- 关注
原创 MySQL内外连接
表的连接分为内连接和外连接内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,也是在开发过程中使用的最多的连接查询。
2025-04-01 22:19:57
78
原创 MySQL复合查询
单行子查询是指子查询只返回单列,单行数据;多行子查询是指返回单列多行数据,都是针对单列而言的,而多列子查询则是指查询返回多个列数据的子查询语句。的任意员工的工资高的员工的姓名、工资和部门号(包含自己部门的员工)号部门的工作岗位相同的雇员的名字,岗位,工资,部门号,但是不包含。的所有员工的工资高的员工的姓名、工资和部门号。自连接是指在同一张表连接查询。的上级领导的编号和姓名(子查询是指嵌入在其他。返回多行记录的子查询。
2025-04-01 21:47:53
284
原创 MySQL内置函数
如果是单字节字符则算作一个字节。比如:字母,数字算作一个字节,中文表示多个字节数。函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;显示当前正在使用的数据库。(与字符集编码有关)
2025-03-31 23:04:36
364
原创 MySQL基本查询
- 0 row affected: 表中有冲突数据,但冲突数据的值和 update 的值相等。AVG([DISTINCT] expr) 返回查询到的数据的 平均值,不是数字没有意义。MAX([DISTINCT] expr) 返回查询到的数据的 最大值,不是数字没有意义。SUM([DISTINCT] expr) 返回查询到的数据的 总和,不是数字没有意义。MIN([DISTINCT] expr) 返回查询到的数据的 最小值,不是数字没有意义。在删除数据的时候,并不经过真正的事物,所以无法回滚。
2025-03-31 16:31:04
652
原创 MySQL表的约束
约束本质是通过技术手段,倒逼程序员,插入正确的数据,反过来,站在mysql的视角,凡是插入进来的数据,都是符合数据约束的。:当对应的字段,不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值+1操作,得到一个新的不同的值。默认值:某一种数据会经常性的出现某个具体的值,可以在一开始就指定好,在需要真实数据的时候, 用户可以选择性的使用默认值。一般而言,我们建议将主键设计成为和当前业务无关的字段,这样,当业务调整的时候,我们可以尽量不会对主键做过大的调整。我们可以简单理解成,主键更多的是标识唯一性的。
2025-03-30 21:39:51
774
原创 MySQL数据类型
数值越界测试:如果我们向mysql特定的类型中插入不合法的数据,MySQL一般都是直接拦截我们,不让我们做对应的操作。反过来,如果我们已经有数据被成功插入到mysql中了,那么插入的数据一定是合法的!!!所以,mysql中,一般而言,数据类型本省也是一种:约束。
2025-03-30 15:27:26
777
原创 MySQL表的操作
在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型, 表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准。字符集,如果没有指定字符集,则以所在数据库的字符集为准。不同的存储引擎,创建表的文件不一样。表添加一个字段,用于保存图片路径。
2025-03-29 16:32:34
277
原创 MySQL库的操作
支持数据库进行字符比较的编码,本质也是一种读取数据库中数据所采用的编码格式。:字符集是一个系统支持的所有字符的集合,它规定了每个字符对应的编码值。数据库无论对数据做任何操作,都必须保证操作和编码必须是编码一致的。对应的数据库文件夹被删除,级联删除,里面的数据表全部被删。对数据库的修改主要指的是修改数据库的字符集,校验规则。创建名为 databases1 的数据库,创建名为 databases1 的数据库,创建名为 databases1 的数据库。数据库内部看不到对应的数据库。指定数据库字符集的校验规则。
2025-03-29 14:11:43
671
原创 C++在线OJ负载均衡项目
通常是拿到数据之后,要进行构建网页,渲染网页内容,展示给用户的。1. common: 共享模块(日志、访问文件等方法)3. oj_server: 获得题目列表等其他功能模块。2. compile_server: 编译与运行模块。通常是和数据交互的模块,比如,对题库进行增删改查(oj_server.cc 用户请求的服务路由功能。第三方开源序列化、反序列化库。控制器,就是我们的核心业务逻辑。第三方开源前端网页渲染库。获取首页,用题目列表充当。本质就是建议一个小型网站。提供对数据的操作功能。
2025-03-19 20:15:37
867
原创 C++多态(复习)
重定义(隐藏)是指两个函数分别在基类和派生类的作用域,这两个函数的函数名相同。若两个基类和派生类的同名函数不构成重写就是重定义。
2025-03-17 20:51:47
317
原创 C++继承(复习)
是指在菱形继承的腰部使用虚拟继承(virtual)的继承方式,菱形虚拟继承对于D类对象当中重复的A类成员只存储一份,然后采用虚基表指针和虚基表使得D类对象当中继承的B类和C类可以找到自己继承的A类成员,从而解决了数据冗余和二义性的问题。1.派生类的构造函数被调用时,会自动调用基类的构造函数初始化基类的那一部分成员,如果基类当中没有默认的构造函数,则必须在派生类构造函数的初始化列表当中显示调用基类的构造函数。5.派生类对象初始化时,会先调用基类的构造函数再调用派生类的构造函数。
2025-03-17 15:34:14
379
原创 C++内存管理(复习)
new和delete是用户进行动态内存申请和释放的操作符,operator new和operator delete是系统提供的全局函数,new和delete在底层是通过调用全局函数operator new和operator delete来申请和释放空间的。6、申请自定义类型对象时,malloc/free只会开辟空间,不会调用构造函数和析构函数,而new在申请空间后会调用构造函数完成对象的初始化,delete在释放空间前会调用析构函数完成空间中资源的清理。都是从堆上申请空间,并且需要用户手动释放。
2025-03-16 20:20:12
465
原创 C++类和对象(二)(复习)
如果B是A的友元,在B类中可以直接访问A类的私有成员变量,但是在A类中不能访问B类中的私有成员变量。3、友元函数可以在类定义的任何地方声明,不受访问限定符的限制。1、友元函数可以访问类是私有和保护成员,但不是类的成员函数。如果A是B的友元,B是C的友元,不能推出A是C的友元。5、友元函数的调用与普通函数的调用原理相同。4、一个函数可以是多个类的友元函数。2、友元函数不能用const修饰。
2025-03-16 17:43:18
144
原创 C++类和对象(一)(复习)
用类将对象的属性和方法结合在一块,通过访问权限,选择性的将其接口提供给外部。第一个成员在与结构体变量偏移量为0的地址处。(即结构体的首地址处,即对齐到0处)其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。结构体的总大小为最大对齐数(每个成员变量都有一个对齐数)的整数倍。如果嵌套了结构体,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。对齐数 = 该结构体成员变量自身的大小与编译器默认的一个对齐数的较小值。
2025-03-16 17:42:55
307
原创 linux socket编程之udp_dict_serve服务端--引入配置文件
class Dict//默认配置文件路径//默认分隔符private://将配置文件的内容加载到_dict中if(!//按行读取文件//将对应的key value插入到哈希桶中public:Load();return "这个单词未找到";~Dict(){}private://key value 结构的字典 单词 翻译//配置文件的目录。
2024-12-23 15:30:17
471
原创 linux socket编程之udp_each_client客户端代码
domain:选择你要使用的网络层协议 一般是ipv4,也就是AF_INETtype:选择你要使用的应用层协议,这里我们选择udp,也就是成功返回文件描述符,失败返回-1。
2024-12-19 19:39:57
348
原创 linux socket编程之udp_each_server服务端代码
domain:选择你要使用的网络层协议 一般是ipv4,也就是type:选择你要使用的应用层协议,这里我们选择udp,也就是SOCK_DGRAM成功返回文件描述符,失败返回-1注意:源代码放在最后面,log是自己写的日志类,这里使用了类进行封装。
2024-12-19 15:34:09
551
原创 c++bind绑定器--通俗易懂
bind的使用场景bind可以改变传入参数的个数!!!我们想在一个类外使用这个类的非静态成员函数时,我们可以使用bind绑定这个函数,让我们不必传入this指针
2024-11-03 19:13:28
263
原创 c++包装器/适配器 function--通俗易懂
在下面的场景下 useF类模版要实例化出三份,影响效率而用function包装器能很好的解决这个问题。
2024-11-03 16:26:53
472
原创 Linux环境下 make/makefile、文件时间属性 详解!!!
我们先写一个简单的代码,然后编译生成一个可执行程序,下面的内容我们需要知道gcc识和编译链接的一些知识,不清楚的朋友们可以点这里我们知道要想生成一个可执行程序,需要一个或者多个.o文件链接形成一个可执行程序,一个我们还好说,但是如果有几十上百个.c文件那我们在用gcc编译的时候就很容易会写错,这里是指如果你多次修改.c文件里面的内容,你需要重新使用gcc重新编译链接,这样就难保不会写错,所以,这时候我们的!!!
2023-12-03 16:58:39
2673
54
原创 C++ 泛型编程,函数模版和类模版
就比如说活字印刷术,就是提供一个模具,然后根据模具来印刷出不同的字。泛型编程跟着类似,提供一个模版,根据这个模版由编译器自动生成不同的函数或者类。
2023-11-28 22:05:23
1271
42
原创 C/C++内存管理,malloc,realloc,calloc,new,delete详解!!!
new和delete在面对自定义类型时会去调用构造函数和析构函数new =先开空间 再调用构造函数delete = 先调用析构函数 再释放空间public:~Stack()_top = 0;int _top;int main()//new先开空间 再去调用构造函数delete(p2);//delete先调用析构函数,再去释放空间return 0;如果需要开10个Stack类型的空间 用new[] 和 delete[]
2023-11-26 17:02:08
1582
37
原创 Linux下Centos7 gcc/g++、动态库/静态库(动态/静态链接)
在我们上面写的c语言代码中,我们并没有写printf函数的具体实现,而在<stdio.h>这个文件中也只有printf函数的声明而没有其具体实现的定义,那么我们再使用printf这个函数的时候怎么去调用这个函数呢?在Linux Centos7 环境下,系统把这些函数的具体实现都放在了一个名为libc.so.6的。
2023-11-20 19:54:54
1348
38
原创 c++中static静态成员变量和静态成员函数、explcit和隐式类型转换、友元函数()详解
静态成员函数和静态成员变量,本质是受限制的全局变量和全局函数,专属这个类,受访问限定符和类域限制。
2023-11-13 20:03:10
1665
50
原创 c++中const成员函数、初始化列表详解!!!(类和对象下)
以日期类举例,具体实现可以看我这一篇博客我们在调用对象的成员函数时,会隐形传参给this指针,而this指针默认类型为,const 成员函数就是将this指针的类型更改为const。const成员函数 this指针类型:const难点在于this指针不能显示传参,所以c++语法规定,定义成员函数时,可以在此处位置加const改变this指针的类型返回值类型 函数名(参数)(const加上const this指针类型:const。
2023-11-10 16:19:48
607
5
原创 Linux下Centos7 yum命令详解
当我们买了一部手机或者一台电脑的时候,一般上面都会有xx应用市场,我们想去下载软件的时候就直接在应用市场里下载好然后直接安装就行了。在虚拟上安装Centos7时,默认的yum源是国外的,这就导致我们下载软件的速度不是很理想,这时我们就需要将yum更新成国内的。这里的应用市场就可以形象的比喻成yum指令了,可以用来在Linux环境下快速下载对应的指令(软件)。如果我们有一天发现我们的磁盘空间不够了,我想把sl这个指令删除了应该怎么操作呢?:下载对应的指令(软件):安装对应的指令(软件)
2023-10-31 16:24:51
928
11
原创 c++中运算符重载的实现,着重讲解cout、cin的输入输出重载讲解(超全!!!c++小白必看)
/全缺省构造函数_day = day;//析构函数_day = 0;//拷贝构造函数(特殊的构造函数,跟构造函数重载)//赋值运算符重载++_month;//由12月到13月的情况++_year;_month = 1;tmp += day;return tmp;--_month;//由1月到0月的情况--_year;tmp -= day;return tmp;//前置++ --//后置++ --return tmp;
2023-10-26 23:59:46
2149
6
原创 C++初始类(类与对象上)
1.第一种是成员函数和成员变量都放在类中2.第二种是将成员变量以及成员函数的声明放在类中,即一个.h文件中。将成员函数的定义放在一个cpp文件中,注意成员函数再定义时成员函数名前面要加上类名::的形式。在类里面定义的成员函数默认定义为内联函数inline。
2023-10-22 22:35:24
170
10
原创 八大排序 (思想+代码+时间、空间、稳定性分析)
1.假如[0,i]此区间是有序的,首先用 tmp 将 a[i+1] 的值保存下来,然后将tmp依次与a[i]、a[i-1]、a[i-2]......a[0]比较,当遇到比 tmp 大的数字(此时对应的下标记为b)并且没有越界的情况下,将 a[b] 对应的数字存放在 a[b+1] 处,继续向下依次比较。此时代表第一轮遍历结束,能保证a[keyi]左边的值都不大于a[keyi],a[keyi]右边的值都不小于a[keyi].3.此时采取递归的思路,遍历prev]左边的数组,再遍历prev右边的数组。
2023-10-18 08:50:02
123
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人