- 博客(26)
- 收藏
- 关注
翻译 看了这个你就会MySQL了(五)!!!
看了这个你就会MySQL了(五)!!! 什么是事务 一个事务其实就是一个完整的业务逻辑。 本质上,一个事务其实就是多条DML语句同时成功,或者同时失败! 是一个最小的工作单元。不可再分。 什么是一个完整的业务逻辑? 假设转账,从A账户向B账户中转账10000. 将A账户的钱减去10000(update语句) 将B账户的钱加上10000(update语句) 这就是一个完整的业务逻辑。 以上的操作是一个最小的工作单元,要么同时成功,要么同时失败,不可再分。 这两个update语句要求必须同时成功或
2021-06-07 16:58:18
170
原创 看了这个你就会MySQL了(四)!!!
看了这个你就会MySQL了(三)!!! 插入数据insert 语法格式: insert into 表名(字段名1,字段名2,字段名3…) values(值1,值2,值3); 注意:字段名和值要一一对应。什么是一一对应? 数量要对应。数据类型要对应。 mysql> insert into t_student(no,name,sex,age,email) values(4,'zhangsan','m',20,'zhangsan@123.com'); Query OK, 1 row affect
2021-06-07 15:23:14
242
原创 看了这个你就会Mysql了(三)!!!
看了这个你就会Mysql了(三)!!! 表的创建create create table 表名( 字段名1 数据类型, 字段名2 数据类型, 字段名3 数据类型 ); 表名:建议以t_ 或者 tbl_开始,可读性强。见名知意。 字段名:见名知意。 表名和字段名都属于标识符。 关于mysql中的数据类型? 很多数据类型,我们只需要掌握一些常见的数据类型即可。 varchar(最长255) 可变长度的字符串 比较智能,节省空间。 会根据实际的数据长度动态分配空间。
2021-06-07 15:00:38
269
原创 看了这个你就会MySQL了(二)!!!
看了这个你就会MySQL了(二)!!! 数据查询语言DQL 简单查询 查询一个字段 select+字段名+from+表名 mysql> select dname from dept; +------------+ | dname | +------------+ | ACCOUNTING | | RESEARCH | | SALES | | OPERATIONS | +------------+ 4 rows in set (0.43 sec) 查询两个或多个字段 使用逗号分
2021-06-06 20:55:41
277
2
原创 看了这个你就会Mysql了(一)!!!
看了这个你就会Mysql了!!! 1、什么是数据库?什么是数据库管理系统?什么是SQL?他们之间的关系是什么? 数据库(DB) Database,简称DB。按照一定格式存储数据的一些文件的组合。 顾名思义:存储数据的仓库,实际上就是一堆文件。这些文件中存储了具有特定格式的数据。 数据库管理系统(DBMS) DataBaseManagement,简称DBMS。 数据库管理系统是专门用来管理数据库中数据的,数据库管理系统可以对数据库当中的数据进行增删改查。 常见的数据库管理系统:
2021-06-06 16:50:30
140
原创 看了这个你就会编译链接原理了!
编译链接原理 计算机系统是由硬件和系统软件组成的,它们共同工作来运行程序。比如一个简单的hello程序,为了让它实现运行,系统的每个组成部分都需要协调工作。 hello程序的生命周期是从一个高级的语言程序开始,例如:C/C++,因为这种程序能够被人读懂。但是系统不能直接读懂你所写的高级语言。所以每条语句都被其他程序转换为一系列的低级机器语言指令。然后这些指令按照一种称为可执行目标程序的格式打好包,并以二进制磁盘文件形式存放起来。目标文件也可称为可执行目标文件。 在Unix系统上,从源文件到
2021-03-31 15:40:23
200
原创 看了这个你就会快排了!
看了这个你就会快速排序了! 快速排序:(C++版) 完整代码在后文!!! 挖坑法:(递归) 思想: 1、先设定一个基准数,一般取数组的第一个数做为基准数。 2、设置两个变量,left和right,让left指向数组第一个数,right指向数组的最后一个数。即left = 0;right = n - 1; 3、right一直向前走,直到找到一个比基准数小的数,将right目前指向的数赋值给left目前指向的数。 while(left < right && ar[right] > t
2021-03-30 23:24:10
255
2
原创 Linux系统下mybash的实现,主功能块
Linux系统下mybash的实现,主功能块 在Linux系统下bash可以执行其他命令和进程,核心原理就是进程的复制和进程替换,具体如下: 1、bash作为父进程,一直循环 2、如果要执行一个命令,bash进程复制一个子进程 3、用自己写的相关的命令操作来替换该子进程,实现其命令操作 4、子进程实现了它的功能后,返回到bash进程 注意: 1、因为Linux的命令都是在PATH下查找,执行时内存自动在/etc/bin里面查找命令的可执行程序,所以我们要想执行自己写的命令,我们需要重新设置默认的路径 2、c
2020-11-29 15:03:37
211
原创 Linux系统下mybash中pwd和ls命令的实现
Linux系统下mybash中pwd和ls命令的实现 1、pwd的实现: 调用getcwd函数来实现 #include<unistd.h> #include<stdio.h> #include<stdlib.h> int main() { char dir_buff[512] = {0}; getcwd(dir_buff,512); printf("%s\n",dir_buff); exut(0); } 2、ls命令的实现 ls的实现先调用函数getcwd获得
2020-11-29 14:33:01
309
原创 Linux系统下mybash打印信息函数Print_info()的实现
Linux系统下mybash打印信息函数Print_info()的实现 mybash: 在Linux系统中,命令的执行一般都是通过bash进程创建一个子进程,然后子进程进行替换,替换成可执行的命令文件。 显示信息: 在Linux下。打开终端一般会显示以下界面。这里面包含了用户信息、主机信息、和当前所在的文件夹(即所在位置信息),首先我们来实现它。 这里的的lx指的就是用户信息。lx-PC指的是主机信息,后面的 /Desktop/Study/mycode/mybash 指的就是当前所在文件夹的位置。 1、怎
2020-11-29 14:06:49
1343
原创 排序算法之——二路归并排序
排序算法之——二路归并排序 二路归并排序的思想: 一次排序过程,将已经各自有序的两个段的数据合并一个段,并且合并后依旧有序 开始,我们认为单个数据是有序的,一个数据就是一个段,一次排序之后,两个数据就是一个有序数据段,这样下一次每个数据段就是两个数据。最后将其合并成一个完成有序段,则整个数据就已经排序好了 时间复杂度: O(nlog(n)) 空间复杂度: O(n) 稳定性: 稳定 代码实现: void Meger(int* arr, int len, int width, int *brr) { int
2020-11-22 20:34:47
1204
原创 排序算法之——快速排序
排序算法之——快速排序 快排的思想: 1、先在数据中找一个基准数据:一般为待排序数据的第一个,或者随机数,三位数取中 2、将数据按照基准数据分为两部分,前一段都比基准小,后一段都比基准大。 3、按照同样的思想分别处理前一段和后一段数据。 按照一个基准数据,将待排序数据段分成两部分: 数据段为start到end之间的数据。先将基准数据(start位置)保存到tmp中,i = start; j = end。在i < j 的时候,重复执行以下两个过程: 1、通过j从后往前找第一个比基准数据小的数据,找到后
2020-11-19 18:25:26
247
原创 排序算法之——希尔排序shellsort
排序算法之——希尔排序 算法原理: 1、先将数据分为d个组,在每一组数据中使用直接插入排序算法来进行排序。void Shell 先比较同组前两个数据,再比较比较之后的同组的后两个数据 2、接着继续将数据分组(分组数越来越小),最后一次分组肯定为1,每一个分组数一般是互质的(5,3,1) void ShellSort 目的: 使得整个数据越来越有序 时间复杂度: O(n^1.3 --1.5) 空间复杂度: O(1) 稳定性: 稳定 代码实现: void Shell(int* arr, int len
2020-11-16 21:08:33
158
原创 排序算法之——直接插入排序
排序算法之——直接插入排序 算法原理: 将数据分成两部分,前一段是已经有序的数据(初始时,前一段数据只有一个),后一段是无序的数据。从无序数据中拿一个数据(左边第一个数据),插入到前一段的有序数据中,使有序数据依旧有序。 时间复杂度: O(n^2) 空间复杂度: O(1) 稳定性: 稳定 思路图示: 代码实现: void InsertSort(int* arr, int len) { for (int i = 1; i < len;++i)//i负责遍历无序数据段 { int tmp =
2020-11-16 19:35:32
146
原创 排序算法之——选择排序
排序算法之——选择排序 算法原理: 1、先遍历一遍整个待排序数据,找到当前最大数据的位置 2、将最大数据标记,与当前最后一个位置元素做交换 3、重复1、2步骤,直到只剩一个数据 4、上述的步骤每遍历一遍,下一次就少遍历一次数据 时间复杂度: O(n^2) 空间复杂度: O(1) 稳定性: 因为是将最大数据直接和最后一个数据做交换,所以不稳定 代码实现: void SelectSort(int* arr, int len) { for (int j = 0; j < len - 1; ++j)
2020-11-16 16:20:14
138
原创 排序算法之——冒泡排序
排序算法之——冒泡排序 冒泡排序因其在排序中相邻元素不断交换,一些元素被换到后面,看起来像元素在冒泡一样而得名。 算法原理: 冒泡排序的原理(以递减为例)是每次从头开始比较相邻的元素,如果后面的比前面的小,则交换。循环完毕后再次从头扫描,直到某次扫描没有元素可交换,程序完成。 时间复杂度: O(n^2) 空间复杂度: O(1) 稳定性: 没有发生隔几个的数据交换,所以稳定 代码实现 void BubbleSort(int* arr, int len) { for (int i = 0; i < le
2020-11-16 16:08:41
591
原创 用系统调用函数中的文件操作函数实现普通文件的拷贝
系统调用函数中的文件操作函数: 1、open: int open( const char *filename,int flag,/int mode/) filename :文件路径+文件名 flag:打开方式 O_RDONLY->只读,O_WRONLY->只写,O_RDWR->读写 O_APPEND->追加,O-TRUNC->清空,O_CREAT->创建 通过按...
2019-05-25 20:46:53
1106
原创 linux上的简单操作指令
基本操作命令: 调节气体大小:字体变大ctrl+shift+等号键位、字体变小ctrl±。 打印当前目录开始的路径:pwd 切换当前工作目录:cd+路径 eg:cd +空格+/home 切换上级目录:cd+空格+… eg:home的上级文件为/ 显示当前目录下的文件:ls 显示当前文件下所有的文件(隐藏文件:文件名以“.”开头):ls+空格+ -a 文件操作命令: 创建文件:1普通文件:touc...
2019-04-22 21:58:01
357
原创 位运算
位运算: 1、位运算符号:&,|,^,~(取反,不分正负数),<<(标准规定在右边补0), >>(正数则左边补0) |(或):0和任何数字按位或都为不变,1和任何数字按位或都为1。 &(与):0和任何数字按位与都变0,1和任何数字按位与都不变。 ^(按位异或):0和任何数字按位异或都为不变,1和任何数字按位异或都为取反。 10 0000 1010 1...
2019-03-22 20:29:20
204
原创 类型转换
类型转换 1.默认,数据类型有窄向宽的转 2.同级别,无符号比有符号宽 3.整型起 4.整数默认为int,小数默认为double 例子: int main() { unsigned short a = 10; unsigned int b = 10; if(a < -1) { printf("a<-1\n"); } else { printf("a>-1\n...
2019-03-22 19:53:51
281
原创 魔方阵的计算
魔方阵: 魔方阵的排列规律如下: (1)将1放在第一行中间一列; (2)从2开始直到n×n止各数依次按下列规则存放;每一个数存放的行比前一个数的行数减1,列数加1(例如上面的三阶魔方阵,5在4的上一行后一列); (3)如果上一个数的行数为1,则下一个数的行数为n(指最下一行);例如1在第一行,则2应放在最下一行,列数同样加1; (4)当上一个数的列数为n时,下一个数的列数应为1,行数减去1。例如...
2019-03-05 15:46:21
550
原创 动态内存
动态内存 malloc; calloc; realloc; free; 作用: malloc:申请内存; calloc:初始化为0; realloc:修改内存大小; free:释放内存; 动态申请100整型单元,且每个单元值为0: int *arr=(int *) malloc(100*sizeof (int)); for(int i=0;i<100;i++) { arr[i]=0;...
2019-03-05 13:28:19
244
原创 二维数组
一维数组 int arr[4]; 数据类型 arr; int *x; arr+1; int *x; arr[0]; int x; arr[0]+1; int x; 二维数组 int brr[3][4]; //数据类型 brr; int(*x)[4];...
2019-03-04 21:23:10
259
原创 const的使用
const的使用: 作用:定义常变量,不允许修改其值 。例如 int const ca = 10; 1、基本的数据类型对于const是透明的。int const ca = 0;const int cb=0;ca和cb是等价的 2、const 限定它的直接右边 3、权限可以缩小或者同等传递,但不能放大 int a = 10; int b = 20; const int ca = 10; const ...
2019-03-04 20:31:22
274
原创 指针算术运算
指针的加法:1:指针+1,加1字节。 2:指针+1,加1个单元格。 3:指针+1,加整个数组。(无意义) 1:指针+1,加1字节 *p=10; p++; p=20; printf("%d %d\n",arr[0],arr[1]); 第一行单元格表示,一个单元格表示4个字节,第二行表示第一行的单元格扩大四倍,一个表示1个字节。p=10,把10赋值给第一行hi一个格子,而在第二行中必须化为16进制,...
2019-02-25 20:30:29
291
原创 一个数的位数,逆序输出,每个数字
#include&lt;stdio.h&gt; #include&lt;math.h&gt; int GetFigures(int n)## 标题一个数的位数,逆序输出,每个数字 { int i=0; while(n!=0) { n=n/10; i++; } return i; } int PrintReverse(int n) { int a; while(n!=0) { a=n%10; n/...
2018-11-30 22:15:08
835
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅