- 博客(147)
- 资源 (4)
- 收藏
- 关注
原创 一天学会MySQL数据库(12):四种连接查询
最近在学习数据库,寻找教程中,苦于视频长度几十个小时,没有沉下心去看,发现一个六小时长度的mysql教程,发现还不错,学习并记录学习笔记。资源地址在最下方。本篇文章,作为学习笔记可配套学习!SQL的四种连接查询数据准备准备用于测试连接查询的数据:CREATE DATABASE testJoin;CREATE TABLE person (id INT,name VARCHAR(20),cardId INT);CREATE TABLE card (id INT,name VARCHA
2021-03-27 17:05:24 172 1
原创 一天学会MySQL数据库(11):子查询之ANY和ALL的使用
最近在学习数据库,寻找教程中,苦于视频长度几十个小时,没有沉下心去看,发现一个六小时长度的mysql教程,发现还不错,学习并记录学习笔记。资源地址在最下方。本篇文章,作为学习笔记可配套学习!ANY和ALL概念练习ANY:任意一个表示所有的 ALL视频资源:概念首先any和all都是用于子查询的;ALL:是所有,表示全部都满足才返回trueANY:是任意一个 ,表示有任何一个满足就返回true练习ANY:任意一个查询课程 3-105 且成绩 至少 高于 3-245 其中一名同学的 sc
2021-03-27 12:44:12 931 1
原创 一天学会MySQL数据库(10):union和not in的使用
最近在学习数据库,寻找教程中,苦于视频长度几十个小时,没有沉下心去看,发现一个六小时长度的mysql教程,发现还不错,学习并记录学习笔记。资源地址在最下方。本篇文章,作为学习笔记可配套学习!UNION 和 NOTIN 的使用UNION 和 NOTIN 的使用练习视频资源:UNION 和 NOTIN 的使用Union:求并集;注意合并的时候,select出来的字段应该相同!not :代表逻辑非练习查询 计算机系 与 电子工程系 中的不同职称的教师。– NOT: 代表逻辑非– 合并两个集
2021-03-27 12:33:20 526 1
原创 一文掌握sql基础查询语法
一文掌握sql基础查询语法食用指南建表查询练习1.查询student表中所有的记录-- 2.查询student表中所有记录的s_name,s_sex和s_class列-- 3.查询教师所有的单位但是不重复的t_depart列-- 4.查询score表中成绩在60-80之间所有的记录(sc_degree)-- 5.查询score表中成绩为85, 86, 或者88的记录(sc_degree)-- 6.查询student表中'95031'班或者性别为'女'的同学记录-- 7.以class降序查询student表中
2021-03-27 12:21:20 365 1
原创 一天学会MySQL数据库(9):子查询
最近在学习数据库,寻找教程中,苦于视频长度几十个小时,没有沉下心去看,发现一个六小时长度的mysql教程,发现还不错,偏向于应用,通俗易懂。学习并记录学习笔记。资源地址在最下方。本篇文章,作为学习笔记可配套学习!子查询什么是子查询示例1.子查询加分组求平均分子查询2子查询34.YEAR 函数与带 IN 关键字查询5.多层嵌套子查询视频资源:什么是子查询当一个查询是另一个查询的条件时,称之为子查询。SQL 子查询是一个 SELECT 查询,它返回单个值且嵌套在 SELECT、INSERT、U
2021-03-27 11:55:28 123 1
原创 一天学会MySQL数据库(8):多表查询
最近在学习数据库,寻找教程中,苦于视频长度几十个小时,没有沉下心去看,发现一个六小时长度的mysql教程,发现还不错,学习并记录学习笔记。资源地址在最下方。本篇文章,作为学习笔记可配套学习!多表查询俩表查询示例1示例2三表查询视频资源:俩表查询示例1查询所有学生的 name,以及该学生在 score 表中对应的 c_no 和 degree 。SELECT no, name FROM student;+-----+-----------+| no | name |+-----+
2021-03-27 11:39:22 289
原创 一天学会MySQL数据库(7):分组条件 having 和模糊查询 Like
最近在学习数据库,寻找教程中,苦于视频长度几十个小时,没有沉下心去看,发现一个六小时长度的mysql教程,发现还不错,学习并记录学习笔记。资源地址在最下方。本篇文章,作为学习笔记可配套学习!这里写目录标题条件查询模糊查询练习视频资源:条件查询在group by分组之后,还可以使用having进行条件过滤!模糊查询使用SQL 通配符可以替代一个或多个字符,即模糊查询。SQL 通配符必须与 LIKE 运算符一起使用。在 SQL 中,可使用以下通配符如下:1、% 替代一个或多个字符2、
2021-03-27 11:11:12 1020 1
原创 MySQL数据库学习笔记(6):分组查询group by
最近在学习数据库,寻找教程中,苦于视频长度几十个小时,没有沉下心去看,发现一个六小时长度的mysql教程,发现还不错,学习并记录学习笔记。资源地址在最下方。本篇文章,作为学习笔记可配套学习!接上篇文章::《MySQL数据库学习笔记(%):查询练习》https://blog.csdn.net/weixin_43742894/article/details/115261544查询每门课的平均成绩。-- AVG: 平均值SELECT AVG(degree) FROM score WHERE c_no
2021-03-27 11:03:30 183
原创 MySQL数据库学习笔记(5):查询练习准备数据和常规查询
最近在学习数据库,寻找教程中,苦于视频长度几十个小时,没有沉下心去看,发现一个六小时长度的mysql教程,发现还不错,学习并记录学习笔记。资源地址在最下方。本篇文章,作为学习笔记可配套学习!查询练习查询练习数据准备十个常规查询查询练习数据准备建表:-- 创建数据库CREATE DATABASE select_test;-- 切换数据库USE select_test;-- 创建学生表CREATE TABLE student ( no VARCHAR(20) PRIMARY K
2021-03-27 10:55:56 107
原创 MySQL数据库学习笔记(3):mysql建表约束
mysql建表约束主键约束主键约束-联合主键建表后增加或删除或修改主键约束自增约束唯一约束非空约束默认约束外键约束主键约束它能够唯一确定一张表中的一条记录,增加主键约束之后,就可以使得字段不重复而且不为空目的:唯一确定一条记录这里是引用create table user( id int PRIMARY KEY, name VARCHAR(20));INSERT INTO user VALUES (1,'张三');此时,再插入一个张三的话,就会出现错误。发现 id是不
2021-03-26 17:53:53 222 1
原创 Mysql数据库学习笔记(2):使用终端操作MySQL数据库
最近在学习数据库,寻找教程中,苦于视频长度几十个小时,没有沉下心去看,发现一个六小时长度的mysql教程,发现还不错,学习并记录学习笔记。资源地址在最下方。终端操作1.如何查看有什么数据库? show databases;2.如何选择数据库? use databasesName;3.如何查看该数据库中有哪些表? show tables;4.如何查询表中的数据? select * from tableName;5.如何退出数据库服务器?exit;
2021-03-26 16:24:00 205
转载 mysql数据库学习笔记(1):安装mysql数据库
https://mp.weixin.qq.com/s?src=11×tamp=1616743330&ver=2969&signature=N5i-BTJhywmQiLJXLPwzFmMBc*ZrtnZJ-8-5gdJHhorz4dUhP3xgnt9zy-A6xvK7wNPkr4wJ8ArxLmROEUJNArnW0RfU568ZtBEtVCZvBVQUy4OA3h5WJhEdZHpE5LPe&new=1
2021-03-26 15:23:25 97
原创 跟着陈姥姥学习数据结构之平衡二叉树
陈姥姥是浙江大学的一名老师,她在mooc上的《数据结构》广受好评,我也专门进行了学习,课讲的确实很好,适合系统地学习数据结构。真正意义上的,好大学没有围墙。什么是平衡二叉树重要的概念:平衡因子平衡二叉树的调整平衡二叉树的树高差的绝对值要小于等于1。但是如果此时再插入一个元素很可能就破坏了树高差,所以要对平衡二叉树进行调整。其中发现不衡的节点叫做”发现者“,破坏平衡的叫做”麻烦节点“。破坏和调整为以下四种情况:RR插入–》RR旋转LL插入 --》LL旋转LR插入 --》LR旋
2021-03-24 11:08:42 174
原创 跟着陈姥姥学习数据结构之二叉搜索树
陈姥姥是浙江大学的一名老师,她在mooc上的《数据结构》广受好评,我也专门进行了学习,课讲的确实很好,适合系统地学习数据结构。真正意义上的,好大学没有围墙。二叉搜索树(二叉排序树)相关操作也就是常用的五个函数。查找最大最小元素插入插入的操作和查询很像,将要插入的元素和根节点比较,如果大于走右子树,小于走左子树,直到插入到合适的位置。代码实现递归方法:BinTree Insert( BinTree BST, ElementType X ){ if( !BST )
2021-03-24 10:26:27 175
原创 跟着陈姥姥学习数据结构之二叉树的遍历
陈姥姥是浙江大学的一名老师,她在mooc上的《数据结构》广受好评,我也专门进行了学习,课讲的确实很好,适合系统地学习数据结构。真正意义上的,好大学没有围墙。二叉树的遍历如何记忆?根先遍历,就是前序遍历;根在中间遍历,就是中序遍历;后序遍历,就是根节点在最后面。几种遍历?前序遍历中序遍历后序遍历层次遍历前序遍历递归遍历void PreorderTraversal( BinTree BT ){ if( BT ) { printf("%d ", BT
2021-03-23 16:28:36 126
原创 跟着陈姥姥学习数据结构之二叉树及存储结构
二叉树定义特殊二叉树1.斜二叉树2.完美二叉树(满二叉树)3.完全二叉树完美二叉树最后一层,可以不满,但要按顺序。以下这个就不是完全二叉树二叉树的重要性质第三个性质尤其重要,会经常用到。二叉树的抽象数据类型定义最重要的操作是遍历操作,留到下一篇文章中。二叉树的存储结构本文最重要的一块内容。二叉树的存储结构有俩种:1.顺序存储结构2.链式存储结构1.顺序存储结构不做详细说明。2.链式存储最常用的是链式存储,因为二叉树,每个节点最多有俩个子节点,左右孩子,所以
2021-03-23 15:32:03 118
原创 跟着陈姥姥学习数据结构之树的基本概念
陈姥姥是浙江大学的一名老师,她在mooc上的《数据结构》广受好评,我也专门进行了学习,课讲的确实很好,适合系统地学习数据结构。真正意义上的,好大学没有围墙。引出二分查找实际上就是新进行排序,然后找mid元素进行比较,这实际上用的就是二叉排序树。然后为什么二分查找能比正常查找快那么多呢?实际上从二叉排序树的结构上来看,二分查找查找最多的次数就是二叉树的深度,所以效率提高了很多。树注意事项:1.树的结点是不能相交的2.也就是除根结点外的每个节点有且只有一个父节点。3.一个n个节点的树只
2021-03-23 10:42:19 188
原创 跟着陈姥姥学习数据结构之栈
陈姥姥是浙江大学的一名老师,她在mooc上的《数据结构》广受好评,我也专门进行了学习,课讲的确实很好,适合系统地学习数据结构。真正意义上的,好大学没有围墙。栈栈的定义:栈是一种运算受限的线性表,其限制是指只仅允许在表的一端进行插入和删除操作,这一端被称为栈顶(Top),相对地,把另一端称为栈底(Bottom)。栈的操作:栈的应用:栈最重要的一种用法是用来做算数运算的后缀表达式。代码实现最后附上栈的顺序实现和链式实现:顺序实现typedef int Position;s
2021-03-22 22:31:45 288
原创 面试常考之二叉排序树(二叉查找树)[c++源码]
题目:用C++实现一个二叉排序树,完成创建、插入节点、删除节点、查找结点等功能什么是二叉查找树?二叉排序树要么是空二叉树,要么具有如下特点:二叉排序树中,如果其根结点有左子树,那么左子树上所有结点的值都小于根结点的值;二叉排序树中,如果其根结点有右子树,那么右子树上所有结点的值都大小根结点的值;二叉排序树的左右子树也要求都是二叉排序树;代码实现:class Node{public: int data; //数据 Node *parent;//父亲节点 Node *left;
2021-03-21 23:14:47 215
原创 面试常考的c++实现单链表的各种操作(附c++代码)
单链表是笔试或者面试中常考的题型,常考的考点一般是:1.单链表的建立2.单链表的测长3.单链表的打印4.单链表节点的查找5.单链表节点的插入6.单链表节点的删除7.单链表的逆置8.寻找单链表的中间元素9.判断是否存在循环链表代码实现1.单链表的建立typedef struct node{ int data;//节点内容 node *next;//下一个节点}node;node *SingleLinkCreate(){ int i = 0; node *head
2021-03-21 21:15:26 277
原创 GetAdaptersInfo_@8无法解析的外部符号
很久没有编码,有些生疏。在使用GetAdaptersInfo()函数的时候,遇到了无法解析的外部符号问题;一般这种问题都是头文件没有写好,但是#include <Iphlpapi.h>已经写好,在查询之后,发现还需要进行静态链接。#include <Iphlpapi.h>#pragma comment(lib,"iphlpapi.lib")`问题解决!...
2021-03-19 21:47:25 903
原创 剑指 Offer 59 - II. 队列的最大值[C++ 辅助队列]
题目请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1思考过程:我们的题目中有一个要求:时间复杂度为O(1)。队列push_back 和 pop_front的操作时间复杂度本来就是O(1),所以我们只需要是max_value()做到时间复杂度为O(1)。第一时间想到的就是辅助队列(类似之前的辅助栈)。但稍微
2021-03-10 16:31:38 174
原创 剑指Offer-35.-复杂链表的复制-C++实现
/*// Definition for a Node.class Node {public: int val; Node* next; Node* random; Node(int _val) { val = _val; next = NULL; random = NULL; }};*/class Solution {public: Node* copyRandomList(Node* h
2021-03-08 15:56:59 84 1
原创 剑指Offer-35-复杂链表的复制[哈希表法]
题目:请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。解题过程:方法1:哈希表法:利用哈希表的查询特点,考虑构建 原链表节点 和 新链表对应节点 的键值对映射关系 ,再遍历构建新链表各节点的 next 和 random 引用指向即可。1.先声明一个map。2.然后根据原节点,依次复制新的节点,在map中添加映射键对;3.再依次遍历复制next和ran
2021-03-08 15:38:39 164
原创 剑指offer-30-包含 min 函数的栈
题目:包含 min 函数的栈定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。解题步骤要求:一个有min函数的栈。注意:时间复杂度为O(1)。方法:辅助栈法。栈A正常入栈出栈,新设一个栈B来存放入A栈最小元素的子列。这样取最小值的时候,直接取B.top()即可。入栈:当有元素入栈的时候,先将元素放入A的栈顶,然后与B的栈顶元素比较,若比B的栈顶元素小或相等(非严格降序),再将元素放入B的栈顶
2021-03-07 22:52:34 93 2
原创 反转链表[递归法与迭代法]
题目:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL限制:0 <= 节点个数 <= 5000迭代法(双指针法):依次迭代每一个节点,修改节点的指向,将next节点指向,修改为原pre节点。复杂度分析:时间复杂度 O(N) : 遍历链表使用线性大小时间。空间复杂度 O(1) : 变量 p
2021-03-07 17:41:33 177
原创 剑指offer-09-用两个栈实现队列[c++实现]
题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )题目解读:要求:使用俩个栈模拟队列栈是先进后出的,我们使用俩个栈,其中栈A入栈,先进后出地将元素装入栈B,那么此时栈B中的元素就是逆序的,然后栈B中的元素出栈元素,先进后出,相当于将A中的元素实现了先进先出。例如元素进入顺序 :123456A栈中元素顺序:123456;
2021-03-07 16:34:00 100
原创 剑指offer-06-从尾到头打印链表
题目输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2] 输出:[2,3,1]限制:0 <= 链表长度 <= 10000解题过程遇到的问题:1.如何找到链表的尾节点?2.如何知道链表的长度?题解:1.递推法:利用递归,先递推至链表末端;回溯时,依次将节点值加入列表,即可实现链表值的倒序输出。复杂度分析:时间复杂度 O(N)O(N): 遍历链表,递归 NN 次。空间复杂度 O(N)O(N): 系统递归需要使
2021-03-07 12:00:27 118
原创 《剑指offer》05 替换空格
开始刷算法题,记录并监督自己刷题题目:替换空格请实现一个函数,把字符串 s 中的每个空格替换成"%20"示例 1:输入:s = “We are happy.” 输出:“We%20are%20happy.”刷题过程:因为对string类的不熟悉,在字符串长度上使用了sizeof(s),但实际上求string类的长度,我们可以使用s.size()和s.length()。并且忘记了string可以当成字符串数组,错误地使用了地址,比较麻烦。题解:class Solution {publ
2021-03-07 11:07:18 71
原创 爬虫之旅,第一次尝试爬取整本小说
之前没有接触过爬虫,第一次接触感觉还是非常有意思的,首先做了一个非常小的爬虫来练手,随便爬了一本小说,将过程记录下来。总结简单的爬虫分为以下几个步骤:1.页面分析对要爬取的页面进行分析,确定要爬取的信息,主要通过页面源代码和检查来看。2.确定url爬取的第一步肯定是要确定页面url,本次我要爬取的小说url为http://www.yuetut.com/cbook_244503.发起请求python有很多第三方库,对于写惯c++的我来说,简直方便极了,要发起请求的话,首先要调用第三方库impo
2020-09-19 21:02:50 627
原创 再学一遍单链表
学习数据结构笔记:本篇主要学习资源来自leetcode单链表长什么样: 值;链接到下一个结点的指针。节点定义:// Definition for singly-linked list.struct SinglyListNode { int val; SinglyListNode *next; SinglyListNode(int x) : val(x), next(NULL) {}};与数组的不同:1.访问随机元素:链表在访问随机元素时,性能比较差。 数
2020-09-12 15:22:25 105
原创 自启动技术之注册表
实现原理:核心:Windows提供了专门的开机自启动注册表。每次开机完成之后,它都会在这个注册表键下遍历键值,以获取键值中的程序路径,并创建进程启动程序。所以想要使用注册表实现自启动,只需要在这个注册表键下添加想要设置自启动程序的程序路径就可以了。俩种修改方案:主要区别就是主键不同。HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunHKEY_LOCAL_MACHINE\Software\Microsoft\Windo
2020-09-06 16:46:38 417
原创 自启动技术之快速启动目录
快速启动目录:这是一种最简单的自启动技术,因为不用修改任何数据。实现原理:windows系统有自带的快速启动文件夹,只要把程序(一般是程序快捷方式)放入到这个快速启动文件夹中,系统在启动时就会自动地加载并运行相应的程序,实现开机自启动功能。注意:快速启动目录并不是一个固定的目录,每台计算机的快速启动目录都不相同。需要使用 SHGetSpecialFolderPath函数获取Windows系统中快速启动目录的路径,快速启动目录的CSIDL标识值为CSIDL_STARTUP。使用CopyFile
2020-09-06 16:45:52 386
原创 高精度QueryPerformCounter()和低精度的sleep()
QueryPerformanceCounter()是一个微秒级的高精度的时间函数。QueryPerformanceFrequency()获得的是CPU的滴答数(频率),现在频率一般为1000。那么CPU的周期也就是1/1000的1us。QueryPerformanceCounter()和QueryPerformanceFrequency()需要配合使用QueryPerformanceCounter()这个函数返回高精确度性能计数器的值,它可以以微妙为单位计时.但是QueryPerformanceC.
2020-07-12 12:33:40 1350
原创 Windows下的资源释放技术[C\C++]
资源释放技术:是一种病毒木马经常使用的技术,为了是程序变得更加简洁,当程序要使用一些图片、文本文件时可以把他们作为资源插入到程序中,当程序运行时,在释放到本地。这样编译出来就只有一个exe文件。实现原理:插入资源:首先创建资源,然后在VS里添加自定义资源,并导入创建的资源。然后利用FindResource()定位程序里的资源,获得资源信息块。再利用SizeofResource()获得资源的大小通过LoadResource()把资源加载到程序内存中。接着通过LockResource()锁定加载
2020-06-11 11:04:47 644
原创 Windows下运行单一实例[C\C++实现]
运行单一实例:一般病毒都会使用运行单一实例技术,防止病毒文件多次运行,减小暴露的风险。本次实现是创建互斥体来实现。实现原理CreateMutex( _In_opt_ LPSECURITY_ATTRIBUTES lpMutexAttributes, _In_ BOOL bInitialOwner, _In_opt_ LPCSTR lpName );lpMutexAttributes [in, optional] 指向 _SECURITY_ATTRIBUTES
2020-06-11 11:04:26 255
原创 关于Debug模式和Release模式
使用VS的都知道,在编译的时候,会有debug和release俩中模式,那么这俩种模式到底有什么不同呢?首先我们要明确的是Debug和Release模式并没有本质的区别,他们编译的都是同一份源码。Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。(一般客户不允许在发布版本上进行调试,所以他不保存调试信息)区别唯一区别就是,VS开发环境编译选项的区别。
2020-06-07 23:25:59 2784
原创 《小白学分析》某勒索病毒分析报告
0x00 样本信息样本名称:eef83497e8aa02d644b7d071be81a678e1611aa6MD5:5853957178FE89022855A530A4B0AA20SHA-1:60AF429E4AFF32E49405DF04710F41757D30F4F0创建时间:星期一 01 七月 2019, 13.55.28壳:UPX0x01 测试环境及工具环境: Windows 7 x86工具: OD,IDA,PEiD,火绒剑。0x02 样本行为样本运行后,首先调用一些启动函数,获
2020-06-04 15:25:48 472
原创 利用未被保护的内存突破 GS
为了将 GS 对性能的影响降到最小,并不是所有的函数都会被保护,所以我们就可以利用其中一些未被保护的函数绕过 GS 的保护。那我们在之前《《Windows安全机制》之GS机制》举得例子:SmallBuffer()void SmallBuffer(){ char BufferData[4] = ""; int num = 2;}int main(){ BigBuffer(); SmallBuffer(); getchar(); return 0;}使用 IDA 对可执行程序进
2020-06-02 22:31:49 191
原创 《Windows安全机制》之DEP(数据执行保护)
Windows安全机制第二弹——DEP保护,上一篇《Windows安全机制——ASLR(地址随机化)及如何关闭ASLR》,地址如下:https://blog.csdn.net/weixin_43742894/article/details/105702886...
2020-06-02 22:31:23 5738
熊猫烧香分析报告.pdf
2020-05-06
Ring3_Inline_Hook.zip
2020-05-02
TLS(线程局部存储).zip
2020-04-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人