git基本用法
git 的三种状态
已修改表示修改了文件,但还没保存到数据库中。
已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
已提交表示数据已经安全地保存在本地数据库中。
已修改已暂存已提交修改文件但未添加和提交操作
12345678910echo 123 >> a.txt // 写入数据// 查看给i他状态$ git statusOn branch masterChanges not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: a.txt //已修改no changes added to commit (use "git add" and/or "git commit -a ...
博客写法合集
请先安装大佬的插件
引用站外地址
前置:前置知识
https://akilar.top/posts/615e2dec/
卡片式菜鸟解法大佬方案1hello1world
时间轴式更新记录
2022/08/09
version1
2022/08/06
version2
2022/02/14
version3
文本样式行内文字样式行内文本主题的note写法。插件的note写法。
带 下划线 的文本
带 着重号 的文本
带 波浪线 的文本
带 删除线 的文本
键盘样式的文本 command + D
密码样式的文本:这里没有验证码
彩色文字红色、黄色、绿色、青色、蓝色、灰色。
超大号文字pantherA Wonderful Theme for Hexo
默认 提示块标签
default 提示块标签
primary 提示块标签
success 提示块标签
info 提示块标签
warning 提示块标签
d ...
汇编概述
汇编概述
8086cpu有14个寄存器:AX BX CX DX SI DI SP BP IP CS SS DS ES PSW
8086所有的寄存器都是16位的,可以存储2个字节
AX BX CX DX通常用来存放一般性数据,称为通用寄存器不同的寻址方式(1) [idata]用一个常量来表示地址,可用于直接定位一个内存单元;(2) [bx]用一个变量来表示内存地址,可用于间接定位一个内存单元;(3) [bx+idata]用一个变量和常量表示地址,可在一个起始地址的基础上用变量间接定位一个内存单元;(4) [bx+si]用两个变量表示地址;(5) [bx+si+idata]用两个变量和一个常量表示地址。可以看到,从[idata]一直到[bx+si+idata],我们可以用更加灵活的方式来定位一个内存单元的地址。这使我们可以从更加结构化的角度来看待所要处理的数据。下面我们通过个问题的系列来体会CPU提供多种寻址方式的用意,并学习一些相关的编程技巧。通用寄存器| 名称 | 中英文含义 | 作用 ||-|-|-|| AX | 累加器 | 使用频率最高,用于算术、逻辑运算以及与外设传送信息等 || ...
指令讲解
指令div指令div除法指令,需要注意一下几点
除数:有8位和16位两种,存放在reg或内存单元中
被除数:默认放在AX或DX和AX中,如果除数为8位被除数则为16位,默认在AX中存放,如果除数为16位被除数则为32位默认在DX和AX中存放DX存放高16位AX存放低16位
结果:如果除数为 8 位,则 AL存储除法操作的商,AH 存储除法操作的余数;如果除数为16位,则AX存储除法操作的商,DX存储除法操作的余数。1234567div byte ptr ds:[1]al = (ax)/(ds*16+1)//地位存放商ah = (ax)%(ds*16+1)//高位存放余-----------------------------------------div word ptr es:[1]ax = (dx*10000H+ax)/(es*16+1)//ax存放商dx = (dx*10000H+ax)%(es*16+1)//dx存放余
例如100001/100
首先100001大于65535则需要32位寄存器
100小于255但是被除数为32位所以要16位寄存器1234mov dx,1mov ...
内中断
内中断的产生当CPU的内部有什么事情发生的时候,将产生需要马上处理的中断信息呢?对于8086CPU,当CPU内部有下面的情况发生的时候,将产生相应的中断信息。
除法错误,比如,执行div指令产生的除法溢出:
单步执行:
执行into指令:
执行int指令。中断处理程序CPU在收到中断信息后,应该转去执行该中断信息的处理程序。我们知道,若要8086CPU执行某处的程序,就要将CS:IP指向它的入口(即程序第一条指令的地址)。可见首要的问题是,CPU在收到中断信息后,如何根据中断信息确定其处理程序的入口。CPU的设计者必须在中断信息和其处理程序的入口地址之间建立某种联系,使得CPU根据中断信息可以找到要执行的处理程序。中断向量表
中断向量表,就是中断程序入口地址的列表
中断向量表在内存中存放,其中包含256个中断程序所对应的入口中断过程CPU收到中断信息后,要对中断信息进行处理,首先将引发中断过程。硬件在完成中断过程后,CS:P将指向中断处理程序的入口,CPU开始执行中断处理程序。有一个问题需要考虑,CPU在执行完中断处理程序后,应该返回原来的执行点继续执行下面的指令。所以在中断过程 ...
sql进阶知识
常见约束 六大约束:
NOT NULL:非空约束,保证字段不能为空
CHEAK:检查约束,限定字符(mysql不支持)
UNIQUE:唯一约束,保证字段唯一性,可以为空
DEFAULT:默认约束,字段的默认值
PRIMARY KEY : 主键约束,主键字段唯一且不为空
FOREIGN KEY:外键约束,保证字段的值必须来至主表的关联列的值
约束添加分类:
列级约束:
六大约束都可以写,但是外键没有效果
表级约束:
除了非空和默认都可以写
主键和约束的比较
主键:唯一性 最多一个 可以组合
唯一:唯一性 可以为空 可以多个 可以组合
列级约束
只需在创建字段时在后面添加约束即可12345678CREATE TABLE stuinfo( stuid int PR ...
SQL表连接查询
USE myemployees;USE girls;
连接查询
又称多表查询
如果多表查询将会出现笛卡尔乘积现象
若表一有n行 表二有m行 则结果会出现m*n行
分类:
内连接
等值连接 :多表的等值连接为多表的交集部分,可搭配排序,分组,筛选。
:n表连接至少需要n-1个条件 ,顺序无要求,起别名也无要求
非等值连接
自连接
外连接
左外连接
右外连接
交叉连接
1234567SELECT * FROM beauty;SELECT * FROM boys;# 笛卡尔乘积现象 SELECT NAME, boyName FROM boys,beauty; # 使用连接查询解决SELECT NAME,boyName FROM boys,beautyWHE ...
sql8新特性
MySQL 8 新特性概述:::info更简便的NoSQL支持::: NoSQL泛指非关系型数据库和数据存储。随着互联网平台的规模飞速发展,传统的关系型数据库已经越来越不能满足需求。从5.6版本开始,MySQL就开始支持简单的NoSQL存储功能。MySQL 8对这一功能做了优化,以更灵活的方式实现NoSQL功能,不再依赖模式(schema)。:::info更好的索引:::在查询中,正确地使用索引可以提高查询的效率。MySQL 8中新增了隐藏索引和降序索引。隐藏索引可以用来测试去掉索引对查询性能的影响。在查询中混合存在多列索引时,使用降序索引可以提高查询的性能。:::info更完善的JSON支持:::MySQL从5.7开始支持原生JSON数据的存储,MySQL 8对这一功能做了优化,增加了聚合函数JSON_ARRAYAGG()和JSON_OBJECTAGG(),将参数聚合为JSON数组或对象,新增了行内操作符 ->>,是列路径运算符 ->的增强,对JSON排序做了提升,并优化了JSON的更新操作。:::info安全和账户管理:::MySQL 8中新增了caching_s ...
sql知识补充
自然连接
自然连接是把同名列通过等值测试连接起来的,同名列可以有多个。
内连接和自然连接的区别:内连接提供连接的列,而自然连接自动连接所有同名列。123456789SELECT A.value, B.valueFROM tablea AS A NATURAL JOIN tableb AS B;自然连接(natural join) 自动判断连接条件完成连接。 相当于省略了using,会自动查找相同字段名。 natural join natural left join natural right join
游标
声明游标1234MYSQL、SQL server、DB2语法: DECLARE 游标名称 CURSOR FOR 查询语句ORACLE: DECLARE 游标名称 CURSOR IS 查询语句
打开游标1OPEN 游标名称
使用游标1FETCH 游标名称 INTO 变量1,变量2.....变量n
:::warning变量需要和查询语句的变量个数相同:::
关闭游标1CLOSE 游标名称
游标案列
查询按逆序排好序的员工的员工工资总和大 ...
JDBC
JDBC API是一个Java API可以访问任何类型的数据库的数据,尤其是存储在关系数据库中的数据。 JDBC的工作原理与Java在各种平台一样,如Windows,Mac OS和各种版本的UNIX系统。
使用JDBC:::info
导入jar包::::::info
注册驱动:::12345import com.mysql.jdbc.Driverpublic static void main(String[] args) throws ClassNotFoundException { Class.forName("com.mysql.jdbc.Driver"); }
:::info
获取连接:::1Connection con =DriverManager.getConnection("jdbc:mysql://localhost:3306/表名","用户","密码");
:::info
获取执行者对象:::12345 Statement stm=con.creat ...