- 博客(50)
- 收藏
- 关注
原创 MySQL事务管理
其中隔离级别越严格,安全性越高,但数据库的并发性能也就越低,往往需要在两者之间找一个平 衡点不可重复读的重点是修改和删除:同样的条件, 你读取过的数据,再次读取出来发现值不一样了幻读的重点在于新增:同样的条件, 第1次和第2次读出来的记录数不一样说明: mysql 默认的隔离级别是可重复读,一般情况下不要修改上面的例子可以看出,事务也有长短事务这样的概念。事务间互相影响,指的是事务在并行执行的 时候,即都没有commit的时候,影响会比较大。
2025-12-21 11:45:36
973
原创 MySQL复合查询(重要)
多行子查询是指返回单列多行数据,都是针对单列而言的,而多列子查询则是指查询返回多个列数据的子查询语句。在实际应用中,为了合并多个select的执行结果,可以使用集合操作符 union,union all。显示工资比部门30的任意员工的工资高的员工的姓名、工资和部门号(包含自己部门的员工)子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询。显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号。相同的雇员的名字,岗位,工资,部门号,但是不包含10自己的。返回多行记录的子查询。
2025-12-17 18:22:46
676
原创 MySQL内置函数
length函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;如果是单字节字符则算作一个字节。比如:字母,数字算作一个字节,中文表示多个字节数 (utf-8中文算三个字节)
2025-12-14 11:56:11
759
原创 MySQL表的增删改查
用于筛选 “分组级数据”(比如:筛选平均工资 > 2000 的部门)。在select中使用group by 子句可以对指定列进行分组查询。:用于筛选 “行级数据”(比如:筛选工资 > 2000 的员工)。注:WHERE 条件中使用表达式 --(也可以用原始列,但通常配合聚合函数)。因为是先筛选出数据然后再排序。对应的值已经存在而导致插入失败。,只保留符合条件的行参与分组。_ 匹配严格的一个任意字符。,只保留符合条件的分组。
2025-12-13 17:30:39
946
原创 MySQL表的约束
可以看到a的值由原来的1变成00001,这就是zerofill属性的作用,如果宽度小于设定的宽度,自动填充0。要注意的是,这只是最后显示的结果,在MySQL中实际存储的还是1。:当对应的字段不给值,自动的被系统触发,系统会从当前字段中已经有的最大值 +1操作,得到一个新的不同的值。通常和主键搭配使用,作为逻辑主键。列描述:comment,没有实际含义,专门用来描述字段,会根据表创建语句保存,用来给程序员或DBA 来进行了解。默认值的生效:数据在插入的时候不给该字段赋值,就使用默认值。
2025-12-11 17:03:39
881
原创 MySQL数据类型
该设定只是提供了若干个选项的值,最终一个单元格中,设计可存储了其中任意多个值;而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的。该设定只是提供了若干个选项的值,最终一个单元格中,实际只存储了其中一个值;而且出于效率考虑,这些值实际存储的是“数字”,因为这些。:时间戳,从1970年开始的 yyyy-mm-dd HH:ii:ss 格式和 datetime 完全一致,占用四字节。字符串,L是可以存储的长度,单位为字符,最大长度值可以为255。: M指定显示长度,d指定小数位数,占用空间4个字节。
2025-12-09 21:12:12
982
原创 MySQL数据库操作
查看当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。说明: 对数据库的修改主要指的是修改数据库的字符集,校验规则。创建一个数据库,校验规则使用。创建一个数据库,校验规则使用。
2025-12-08 17:01:33
911
原创 【Linux】进程概念(二)
由于每个不同质的虚 拟内存区域功能和内部机制都不同,因此一个进程使用多个vm_area_struct结构来分别表示不同类型的虚拟内存区域。每个进程只有一个mm_struct结构,在每个进程的task_struct结构中,有一个指向该进程的结构。每一个进程都会有自己独立的mm_struct,这样每一个进程都会有自己独立的地址空间才能互不干扰。这张图就显示了,当堆在添加数据扩展时因为堆是向上增长的,地址空间起始都被存在vm里,就不会发混乱。描述linux下进程的地址空间的所有的信息的结构体是。
2025-11-02 18:36:29
740
1
原创 【C++】智能指针
当有抛异常场景时,又可能导致后面的delete没有得到执行,所以就内存泄漏了,所以需要new以后捕获异常,捕获到异常后delete内存,再把异常抛出,但是因为new本身也可能抛异常,连续的两个new场景也都可能会抛异常,处理起来很麻烦烦。智能指针放到这样的场景里面就让问题简单多了。
2025-09-25 20:45:50
1021
原创 【C++】C++11(一)
C++11以后,分别重载左值引用、const左值引用、右值引用作为形参的f函数,那么实参会分别匹配。是一个表示数据的表达式(如变量名或解引用的指针),一般是有持久状态,存储在内存中,我 们。等,右值可以出现在赋值符号的右边,但是不能出现出现在赋值符号的左边,右值。,左值可以出现赋值符号的左边,也可以出现在赋值符号右边。移动构造本质是将ret对象移动str的资源,再将str置空。进行拷贝,将对象拷贝到容器空间中的对象。,右值对象的资源到容器空间的对象上。也是一个表示数据的表达式,要么是。
2025-09-16 17:31:25
699
原创 哈希表封装myunordered_map和myunordered_set
unordered_map要支持[]主要需要修改insert返回值支持,修改HashTable中的insert返回值为。_ables,则可以把Iterator实现为哈希表的。类模板成为友元函数需要加上模板参数。此处实现迭代器需要访问哈希表中。
2025-09-11 21:15:52
608
原创 【C++】哈希表实现
哈希(hash)又称散列,是⼀种组织数据的方式。从译名来看,有散乱排列的意思。本质就是通过哈希 函数把关键字Key跟存储位置建立一个映射关系,查找时通过这个哈希函数计算出Key存储的位置,进行快速查找。
2025-09-08 22:22:04
962
原创 【C++】红黑树
红黑树是一棵二叉搜索树,它的每个结点增加一个存储位来表示结点的颜色,可以是红色或者黑色通过对任何一条从根到叶子结点的路径上各个结点的颜色进行约束,红黑树确保没有一条路径会比其它路径长出两倍,因而是接近平衡的。
2025-08-30 15:47:30
721
原创 【C++】异常
异常处理机制允许程序中独立开发的部分能够在运行时就出现的问题进行通信并做出相应的处理, 异常使得我们能够将问题的检测与解决问题的过程分开,程序的一部分负责检测问题的出现,然后 解决问题的任务传递给程序的另一部分,检测环节无须知道问题的处理模块的所有细节。
2025-08-11 22:19:10
735
原创 【C++】set和map使用
T就是set底层关键字的类型set默认要求T支持小于比较,如果不支持或者想按自己的需求可以自行实现仿函数传给第二个模 版参数set底层存储数据的内存是从空间配置器申请的,如果需要可以自己实现内存池,传给第三个参 数一般情况下,都不需要传后两个模版参数set底层是用红黑树实现,增删查效率是O(logN) ,迭代器遍历是走的搜索树的中序,所以是有序的T是map底层value的类型。
2025-08-02 22:48:50
1003
原创 Linux基础指令
功能:less与more类似,使用less可以随意浏览文件,且less在查看之前不会加载整个文件,拥有更多的搜索功能,可以向下搜,也可以向上搜。选项:• -a或‒all:详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称。是:只要用户具有目录的写权限,就可以删除目录中的文件,不论这个用户是否有这个文件的写权限。:向显示器文件写入,或向指定文件写入(重定向操作,若文件不存在,就新建文件)功能:显示尾部指定内容,不指定文件时,作为输入信息进行处理。
2025-03-17 22:49:46
795
原创 stack和queue
queue文档emptysizefront返回队头元素的引用back返回队尾元素的引用push_back在队列尾部入队列pop_front在队列头部出队列priority_queue 文档优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素(优先队列中位于顶部的元素)标准容器类vector和deque满足这些需求。默认情况下,
2025-03-13 12:15:31
681
原创 vector
如果pos刚好是最后一个元素,删完之后pos刚好是end 的位置,而end位置是没有元素的,那么pos就失效了。上方代码实现reserve扩容时没有用memcpy浅拷贝,而是使用赋值重载深拷贝,使指向新地址。,比如:resize、reserve、insert、 assign、push_back等。Linux下,g++编译器对迭代器失效的检测并不是非常严格,处理也没有vs下极端。erase删除pos位置元素后,pos位置之后的元素会往前搬移,解决方法:给 i 重新赋值即可。,造成的后果是程序崩溃。
2024-11-26 22:41:17
996
原创 模板初阶+STL简介
class 类模板名// 类内成员定义public:_size = 0;// 模版不建议声明和定义分离到两个文件.h 和.cpp会出现链接错误_size++;
2024-10-14 21:54:26
295
原创 C/C++内存管理
malloc free与new delete最大区别是:在申请自定义类型的空间时,new会调用构造函数,delete会调用析构函数,而malloc与free不会class Apublic:: _a(a)~A()private:int _a;free(p2);return 0;调用operator new函数申请空间在申请的空间上执行构造函数,完成对象的构造在空间上执行析构函数,完成对象中资源的清理工作。
2024-10-13 22:40:24
954
原创 【C++初阶】类和对象(三)
初始化列表总结:2.类型转换C++支持内置类型隐式类型转换为类类型对象,需要有相关内置类型为参数的构造函数 构造函数前面加explicit就不再支持隐式类型转换 类类型的对象之间也可以隐式转换,需要相应的构造函数支持3. static成员用static修饰的成员变量,称之为静态成员变量,静态成员变量一定要在类外进行初始化。静态成员变量为所有类对象所共享,不属于某个具体的对象,不存在对象中,存放在静态区用static修饰的成员函数,称之为静态成员函数,静态成员函数没有this指
2024-10-10 22:39:09
962
原创 【C++初阶】类和对象(二)
就是称为默认成员函数。⼀个类,不写的情况下编译器会默认生成以下6个默认成员函数,需要注意的是这6个中最重要的是前4个,最后两个取地址重载不重要,稍微了解⼀下即可。
2024-10-02 17:46:17
1116
原创 【C语言】内存分配
初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。等,由编译器自动分配和释放,通常在函数执行完后就释放了。函数进行内存释放,否则会造成。程序运行期间,常量区的内容。程序结束后,由系统释放。
2024-09-20 17:18:49
370
原创 【C++初阶】入门基础
定义命名空间,需要使用到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中 即为命名空间的成员。命名空间中可以定义变量/函数/类型等。namespace smc//命名空间名字通常可以使用自己的名字,形目名称等(此处均使用本人名字)int a = 1;// 命名空间中可以定义变量/函数/类型int data;namespace本质是定义出⼀个域,这个域跟全局域各自独立,不同的域可以定义同名变量。
2024-09-17 18:02:11
1005
原创 【数据结构初阶】排序
将杂乱无章的,通过一定的方法按顺序排列的过程叫做排序。常见排序方法有:插入排序,希尔排序,直接选择排序,堆排序,冒泡排序,快速排序,归并排序,基数排序......
2024-09-13 22:57:42
873
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅