自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ClimberCoding

基础不牢,地动山摇!

  • 博客(289)
  • 收藏
  • 关注

原创 MySQL 第十七章 视图(view)

十七、视图(view)17.1 什么是视图view:站在不同的角度去看待同一份数据注意!!!视图对应的语句只能是DQL语句。但是视图对象创建完成之后,可以对视图进行增删改查等操作。17.2 视图对象的创建、删除# 表复制:mysql> create table dept2 as select * from dept;Query OK, 4 rows affected (0.01 sec)Records: 4 Duplicates: 0 Warnings: 0mysql>

2021-11-14 21:41:18 270

原创 MySQL 第十六章 索引(index)

十六、索引(index)16.1 什么是索引索引是在数据库表的字段上添加的,是为了提高查询效率存在的一种机制。一张表的一个字段可以添加一个索引,多个字段联合起来也可以添加索引。索引相当于一本书的目录,是为了缩小扫描范围而存在的一种机制。示例,对于一本字典来说,查找某个汉字有两种方式:第一种方式:一页一页挨着查找,直到找到为止,这种查找方式属于全字典扫描第二种方式:先通过目录(索引)去定位一个大概的位置,然后直接定位到这个位置做局域性扫描,缩小扫描的范围快速查找。这种查找方式属于通过索引检索,效

2021-11-14 21:40:38 1123

原创 MySQL 第十五章 事务(★★★★★)

十五、事务(★★★★★)15.1 什么是事务一个事务(transaction)其实就是一个完整的业务逻辑。是一个最小的工作单元,不可再分。什么是一个完整的业务逻辑?假设转账,从A账号转向B账户10000元将A账户的钱减去10000(update数据)将B账户的钱加上10000(update数据)这就是一个完整的业务逻辑。这两个update语句要求必须同时成功或者同时失败,这样才能保证钱是正确的。以上的操作是一个最小的工作单元,要么同时成功,要么同时失败,不可再分。只有DML语句(in

2021-11-14 18:38:47 572

原创 MySQL 第十四章 存储引擎(了解)

十四、存储引擎(了解)14.1 什么是存储引擎?存储引擎是MySQL中特有的一个术语,其他数据库中没有(Oracle中有但不叫这名字)实际上存储引擎是一个表存储 / 组织数据的方式,不同的存储引擎,表存储数据的方式不同。14.2 如何给表添加/指定“存储引擎”?# 执行下面的语句查看默认设置(在t_student数据库下)mysql> show tables;+--------------------+| Tables_in_t_student|+------------------

2021-11-14 14:28:50 376

原创 MySQL 第十三章 约束(★★★★★)

十三、约束(★★★★★)13.1 什么是约束约束对应的英语单词:constraint在创建表的时候,我们可以给表中的字段加上一些约束来保证这个表中数据的完整性、有效性!约束的作用:保证表中的数据有效!13.2 约束包括哪些非空约束:not nll唯一性约束:unique主键约束:primary key(简称PK)外键约束:foregin key(简称FK)检查约束:check(mysql不支持,oracle支持)13.3 非空约束–not null非空约束not null 约束的

2021-11-14 14:28:12 484

原创 MySQL 第十二章 表的创建、数据的插入删除

十二、表的创建(建表)12.1 建表的语法格式:回顾一下,建表属于DDL语句,DDL包括:create drop altercreate table 表名 ( 字段名1 数据类型, 字段名2 数据类型, 字段名3 数据类型,);注意:表名:建议以 t_ 或者 tbl_ 开始,可读性会更强字段名:见明知意表名和字段名都属于标识符。12.2 关于MySQL中的数据类型有很多数据类型,我们只需要掌握一些常见的数据类型即可。varchar(最长255)可变长度的字符串比较智

2021-11-14 00:03:21 448

原创 MySQL 第十一章 limit(★★★★★)

十一、limit(★★★★★)11.1 limit的作用将查询结果集的一部分取出来。通常使用在分页查询当中。示例:百度默认—>一页只显示10条记录。分页的作用是为了提高用户的体验,因为一次全部都查出来用户体验感会差,可以一页一页翻着看。11.2 limit怎么用# 完整用法limit startIndex, length# startIndex:起始下标,length:长度# 起始下标从0开始# 缺省用法limit 5; # 取前5注意:mysql中limit在orde

2021-11-14 00:02:30 500

原创 MySQL 第十章 子查询

十、子查询10.1 什么是子查询select语句中嵌套select语句,被嵌套的select语句称为子查询。子查询出现的位置:select ..(select).from ..(select).where ..(select).10.2 where子句中的子查询找出比最低工资高的员工姓名和工资?# 错误示范:mysql> select ename, sal -> from emp -> where sal > min(sal);ERROR 11

2021-11-14 00:01:37 242

原创 MySQL 第九章 连接查询

九、连接查询9.1 什么是连接查询从一张表中单独查询,称为单表查询。emp表和dept表联合起来查询数据,从emp表中取员工名字,从dept表中取部门名字。这种跨表查询,多张表联合起来查询数据,被称为连接查询。9.2 连接查询的分类根据语法的年代分类:SQL92:1992年的时候出现的语法SQL99:1999年的时候出现的语法根据表连接的方式分类:内连接:(A和B连接,AB两张表没有主次关系~平等的)等值连接非等值连接自连接外连接:左外连接(左连接)右外连接(右连

2021-11-14 00:00:47 620

原创 MySQL 综合案例2

综合案例2找出每个岗位的平均薪资,要求显示平均薪资大于1500的,除MANAGER岗位之外,要求按照平均薪资降序排。mysql> select job, avg(sal) # 可以给avg(sal)起个别名 -> from emp -> where job <> 'MANAGER' -> group by job -> having avg(sal) > 1500 -> order by avg(sal) d

2021-11-13 11:46:42 373

原创 MySQL 第八章 分组查询(★★★★★)

八、分组查询(★★★★★)8.1 什么是分组查询在实际的应用中,可能需要先进行分组,然后对每一组的数据进行操作。这时候我们需要使用分组查询,如何进行分组查询?示例,select ...from ...group by ...计算每个部门的工资和?计算每个工作岗位的平均薪资?找出每个工作岗位的最高薪资?...8.2 关键字顺序(★★★★★)select ...from ...where ...group by ...having ...order by...# 执行顺序

2021-11-13 11:46:15 1727

原创 MySQL 第七章 分组函数

七、分组函数7.1 多行处理函数概述分组函数又被称为多行处理函数。特点:输入多行,最终输出一行。count 计数sum 求和avg 平均值max 最大值min 最小值注意:分组函数在使用的时候必须先进行分组,然后才能用。如果你没有对数据进行分组,整张表默认为一组。7.2 示例找出最高工资?mysql> select max(sal) from emp;+----------+| max(sal) |+----------+| 5000.00 |+--

2021-11-13 11:44:54 458

原创 MySQL 第六章 数据处理函数

六、数据处理函数6.1 什么是数据处理函数数据处理函数又被称为单行处理函数。特点:一个输入对应一个输出。------> 多行处理函数:多个输入,对应一个输出。6.2 常见的单行处理函数6.2.1 lower转换小写mysql> select lower(ename) as ename from emp;+--------+| ename |+--------+| smith || allen || ward || jones || martin || b

2021-11-13 11:44:22 236

原创 MySQL 综合案例1

综合案例1找出工资在1250到3000之间的员工信息,要求按照薪资降序排列:mysql> select ename, sal from emp where sal between 1250 and 3000 order by sal desc;+--------+---------+| ename | sal |+--------+---------+| SCOTT | 3000.00 || FORD | 3000.00 || JONES | 2975.00 ||

2021-11-13 11:43:28 186

原创 MySQL 第五章 排序

五、排序5.1 按照单个字段排序查询所有员工薪资,排序排序默认升序!!mysql> select xxx, xxx, ... from 表单 order by 排序依据 desc / asc;mysql> select ename, sal from emp order by sal;+--------+---------+| ename | sal |+--------+---------+| SMITH | 800.00 || JAMES | 950.

2021-11-13 11:42:43 120

原创 MySQL 第四章 条件查询

四、条件查询4.1 什么是条件查询不是将表中所有数据都查出来,只是查询符合条件的语法格式:select 字段1, 字段2, 字段3...from 表名where 条件;4.2 = 操作符查询薪资等于800的编号和员工姓名:mysql> select empno, ename from emp where sal = 800;+-------+-------+| empno | ename |+-------+-------+| 7369 | SMITH |+------

2021-11-13 11:41:40 1129

原创 MySQL 第三章 简单查询

三、简单查询3.1 查询一个字段select 字段名 from 表名;查询部门名字,mysql> select dname from dept;+------------+| dname |+------------+| ACCOUNTING || RESEARCH || SALES || OPERATIONS |+------------+4 rows in set (0.00 sec)3.2 查询两个或多个字段# 使用逗号隔开“,”sel

2021-11-13 11:40:51 84

原创 MySQL第二章 常用命令

二. MySQL常用命令2.1 查看数据库mysql> show databases; +--------------------+| Database |+--------------------+| information_schema || bjpowernode || ecshop || mysql || performance_schema || sys |

2021-11-13 11:40:09 124

原创 MySQL 第一章 数据库概述

一. 数据库概述以及准备工作1.1 MySQL的三层结构介绍1.1.1 什么是数据库?什么是数据库管理系统?什么是SQL?关系?数据库:英文单词DataBase,简称DB。按照一定格式存储数据的一些文件组合。顾名思义,就是一堆文件,只是在其中按照特定的格式存储着数据。数据库管理系统DataBaseManagement,简称DBMS。专门用来管理数据库中数据的,数据库管理系统可以对数据库中的数据进行增删改查。常见的数据库管理系统:MySQL、Oracle、MS SqlServer。。。S.

2021-11-13 11:38:54 577

原创 LeetCode 096、不同的二叉搜索树

LeetCode 096、不同的二叉搜索树题目题解思路dp[3] 就是 元素1为头结点搜索树的数量 + 元素2为头结点搜索树的数量 + 元素3为头结点搜索树的数量元素1为头结点搜索树的数量 = 右子树有2个元素的搜索树数量 * 左子树有0个搜索树的数量元素2为头结点搜索树的数量 = 右子树有1个元素的搜索树数量 * 左子树有1个搜索树的数量元素3为头结点搜索树的数量 = 右子树有0个元素的搜索树数量 * 左子树有2个搜索树的数量另外,有0个元素的搜索树数量就是dp[0]有1个元素

2021-11-12 00:04:48 238

原创 LeetCode 343、整数拆分

LeetCode 343、整数拆分题目题解解法1确定dp数组以及下标的含义dp[i]:拆分 i ,可以得到的最大乘积为dp[i]确定递推公式可以从1开始遍历j,有两种渠道获得dp[i]:一种直接j * (i - j) ;另一种是 j * dp[i - j],相当于拆分了dp[i - j](j在从1开始的过程中其实已经拆分了)。可以得到递推公式:dp[i] = max(dp[i], max(j * (i - j), j * dp[i - j]));dp的初始值在这里

2021-11-12 00:03:43 266

原创 LeetCode 063、不同路径 II

LeetCode 063、不同路径 II题目题解五部曲分析问题,注意递推公式:dp[i][j] = dp[i - 1][j] + dp[i][j - 1];(i, j)如果是障碍的话就应该保持初始状态0class Solution {public: int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { int row = obstacleGrid.si

2021-11-10 22:23:22 4271

原创 LeetCode 062、不同路径

LeetCode 062、不同路径题目题解按照动态规划五部曲来分析。class Solution {public: int uniquePaths(int m, int n) { if (m < 0 || n < 0) return 0; vector<vector<int>> dp(m, vector<int>(n)); for (int i = 0; i < m; ++i)

2021-11-10 22:22:49 214

原创 LeetCode 746、使用最小花费爬楼梯

LeetCode 746、使用最小花费爬楼梯题目题解很显然这是一道动态规划题目,按照动态规划五步走:确定dp数组以及下标的含义dp[i] :到达第 i 个台阶所花费的最少体力确定递推公式dp[i] = min(dp[i - 1], dp[i - 2]) + cost[i];dp数组如何初始化dp[0] = cost[0];dp[1] = cost[1];确定遍历顺序很显然是从前到后遍历cost数组举例推导dp数组… …class

2021-11-10 22:21:31 76

原创 LeetCode 070、爬楼梯

LeetCode 070、爬楼梯题目题解先分析题目,爬到第一层有一种方法,爬到第二层有两种方法。爬到第三层时,可以选择爬一层再跨两步,也可以选择爬两层再跨一步就到。即到达第三层是由第一层和第二层楼梯状态所推导出来的——> 动态规划分析一下动态规划五部曲:确定dp数组以及下标的含义dp[i]:爬到第i层楼梯,有dp[i] 种方法确定递推公式dp[i] = dp[i - 1] + dp[i - 2] ,在推导dp[i] 时一定要时刻想着dp[i] 的定义,否则容易跑偏。

2021-11-10 22:21:04 140

原创 LeetCode 509、斐波那契数列

LeetCode 509、斐波那契数列题目题解按照动态规划五步走:确定 dp数组 以及下标的含义:dp[i] 表示第 i 个斐波那契数的值确定递推公式:题目中已给出:dp[i] = dp[i - 2] + dp[i - 1]dp数组 如何初始化:dp[0] = 0;dp[1] = 1;确定遍历顺序:dp[i] 依赖于 dp[i - 1] 和 dp[i -2],因此遍历顺序从前到后举例推导dp数组按照上面的递推公式,当N为10时,dp数组为:

2021-11-10 14:04:21 76

原创 动态规划理论基础

学习链接动态规划理论基础1、什么是动态规划动态规划简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。动态规划中的每个状态都是由上一个状态推导出来的,而贪心没有状态推导,直接从局部选择最优。例如:有N件物品和一个承重量为W的背包。第 i 件物品的重量是 weight[i],价值为 value[i]。问将哪些物品装入背包中能使得物品价值总和最大?动态规划中 dp[j] 是由 dp[j - weight[i]] 推导出来的,然后取 max(dp[j], dp[j - weight[i]

2021-11-10 14:03:45 328

原创 LeetCode 1137、第 N 个泰波那契数

动态规划1137. 第 N 个泰波那契数题目题解前面一道斐波那契数列的升级版,定义三个变量递增即可class Solution { int a[4] = {0, 1, 1};public: int tribonacci(int n) { if (n < 3) return a[n]; for (int i = 3; i <= n; ++i) { a[3] = a[0] + a[1] + a[2];

2021-11-10 12:38:47 105

原创 剑指 Offer 10- I. 斐波那契数列

动态规划剑指 Offer 10- I. 斐波那契数列题目题解状态转移方程已给出,直接推导就行class Solution { int mod = (int)1e9+7; // 注意题目要求,取模public: int fib(int n) { if (n < 2) { return n; } int first = 0; int second = 1; int res

2021-11-10 12:38:00 59

原创 Unix环境高级编程(第三版)apue.h头文件安装教程(第三版)

Unix环境高级编程(第三版)apue.h头文件安装教程系统:centos,其他系统应该也是这样子注意,在root用户下操作(或者用 sudo)1、下载第一步,cd 到你要保存文件的目录下,输入 :wget http://www.apuebook.com/src.3e.tar.gz下载完成后解压:tar -zxvf src.3e.tar.gz2、安装通过 ls 可以看到有一个 apue.3e 的文件cd 到 apue.3e 目录下,执行 makecd apue.3e/make

2021-10-31 09:12:21 1537

原创 Golang在 Windows / Linux下的配置

注意:下面只讲述how,并不会讲述whyGolang在 Windows / Linux下的配置1. Windows下首先在官网 https://golang.org/dl/ 下载 SDK(软件开发工具包):下载后,傻瓜式安装(建议安装在非C盘)如图,我个人最后安装到了这里:接下来要配置环境变量:分别新建:环境变量说明GOROOTSDK的安装路径:D:\LenovoSoftstore\Go_sdkPath(添加)添加SDK的 /bin目录:D:\Lenovo

2021-10-29 23:40:23 528

原创 在Linux上实现自定义的 pwd命令

文章目录四、编写pwd命令1. 阅读联机帮助2. pwd是如何工作的2.1 文件系统的结构2.2 创建一个文件的过程2.4 读取一个文件的过程*2.5 如何读取大文件(可跳过)2.6 回归正题--pwd是如何工作的3. 如何编写pwd3.1 算法步骤3.2 目录的读操作3.3 获取文件的信息3.4 改变目录位置3.5 最终代码四、编写pwd命令1. 阅读联机帮助打印当前工作目录的完整文件名。往下翻可以看到,可能后期会用到。通过 man手册的查询可以了解到,pwd命令 能够打印当前工作目录的路

2021-10-28 00:36:23 694

转载 Typora+PicGO+Gitee图床配置

转载 文章目录 Typora+PicGO+Gitee图床配置什么是图床为什么需要图床图床的建立图床与typora联系 Typora+PicGO+Gitee图床配置 什么是图床 图床,顾名思义,就是图片存放的地方,也就是路径。 为什么需要图床 当你怀着满腔斗志把你的思想写入typora之后(如果你没用过typora,当我没说,不过还是建议使用),想要把自己本地的博客分享到csdn,却发现图片无法识别,你看到的只是一串的本地路径,内心极度失望,就此作罢,但是,拥有了图床,事情将会得到根本解

2021-10-26 09:30:11 123 1

转载 picgo+typore自动上传图床配置以及PicGo上传失败的解决办法

贴心教程转载附上picgo+gitee的配置1.安装 去官网下载吧,最新版的typora和picgo typora升级到最新版本:version 0.9.86(beta) picgo也升级到最新版本:version2.2.2 2.配置 打开typora,点开左上角文件,选择偏好设置 设置插入图片时为【上传图片】勾选【对本地位置的图片应用上述规则】在上传服务中选择“PicGo(app)”在路径中选择picgo安装目录PicGo.exe 点击下面的验证图片上传选项,上传

2021-10-26 09:09:07 2665 2

原创 在Linux上实现自定义的 ls命令

文章目录三、编写ls命令1. 阅读联机帮助2. ls是如何工作的3. 如何编写ls4. 改进ls命令5. ls -l 是如何工作的6. 如何编写 ls -l三、编写ls命令1. 阅读联机帮助列出有关文件的信息(默认为当前目录)。如果未指定 -cftuvSUX 或 --sort,则按字母顺序对条目进行排序。可以看到,ls命令 能够找出当前目录中所有文件的文件名,按字典序排序后输出。ls命令 还能显示其他信息,如果加上 -l 选项,ls 会列出每个文件的详细信息,也叫 ls的长格式,在 man手册

2021-10-25 23:52:45 3601 2

原创 在Linux上实现自定义的 who命令(下)

这一篇实现了运用缓冲技术实现自定义的who命令,上一篇见:https://blog.csdn.net/qq_45893475/article/details/1209280046. 在 who1.c 中运用缓冲技术每次从 utmp 中读出一条记录,就如同要煎 3 个荷包蛋,每次到超市去买一个鸡蛋,煎好以后再去买一个,这是很低效率的方法,完全可以一次把 3 个鸡蛋都买回来。对于 who 而言,完全可以一次读入多个记录放在缓冲区中,到缓冲区为空时,再向内核区读取数据。在这里重构了代码,修改后的主函数不

2021-10-24 18:25:50 101

原创 在Linux上实现自定义的 cp命令

二、编写cp命令1. 阅读联机帮助将 SOURCE 复制到 DEST,或将多个 SOURCE(s) 复制到 DIRECTORY。 长选项的强制性参数对于短选项也是强制性的。也就是说,cp命令是用来复制文件/目录的。基本用法:cp 源文件 目标文件如果目标文件不存在,cp就创建这个文件;如果存在就覆盖。2. cp的工作原理很容易猜到,cp命令无非就是从一个文件中读数据然后写入另外的文件中,与 who命令 从文件中读数据然后以一定的个数输出类似。打开 源文件创建 目标文件从 源文件中读取

2021-10-24 16:23:56 2909

原创 在Linux上实现自定义的 who命令(上)

Unix/Linux编程实践教程在尝试编写系统命令之前,学会以下4项技巧会有助于你的学习:阅读联机帮助搜索联机帮助阅读 .h 文件从参阅部分(SEE ALSO)得到启示一、编写who命令参考资料:Unix/Linux编程实践教程(第2章)man 文档(who、utmp、open、read、close)Linux/UNIX系统编程手册(第四章)1. 阅读联机帮助在终端下输入 who,回车可以看到,who 命令就是在终端上显示当前登录的用户信息。第一列:已登录用户,第二列:

2021-10-23 23:19:22 337

原创 C++入门教程总目录

C++入门教程总目录最近一直在读C++之父写的TC++PL,前面的章节体验感还不错,可能自己的基础还不扎实,,看到 类的 构造析构移动拷贝 那部分时 被彻底绕晕… 心态炸裂,自己的C++体系也彻底乱掉。然后就打算找C++入门的教程重新过一遍,重新梳理一下~恢复一下信心。刚开始看的 菜鸟教程,感觉很多核心知识点都没涉及到,讲的也不够清楚。然后又找…找…发现 C语言网 的 C++教程 还不错,就边copy边梳理修改,花了两天时间整理了这个入门教程。我的信心又回来啦!????这个教程仅仅是入门教程,要想走

2021-10-23 14:07:22 310

原创 C++入门教程 08

学习链接八、文件操作1. C++读写文件操作C++中对于文件的操作,主要是用以下几个类来支持,它们分别是:ofstream: 写操作(输出)的文件类 (由ostream引申而来)ifstream: 读操作(输入)的文件类(由istream引申而来)fstream: 可同时读写操作的文件类 (由iostream引申而来)它们都需要包含头文件:#include <fstream>依旧像C语言那样,对文件的读写操作也是三个步骤,分别是:打开文件读写文件关闭文件不一样

2021-10-23 13:51:00 143

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除