学习笔记--个人记录

本文涉及的产品
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
全局流量管理 GTM,标准版 1个月
简介: 学习笔记--个人记录

Linux常见操作指令

cd change directory

pwd print working directory

ls list

mkdir make directory

mkdir -pv /root/b/c/d 创建目录结构

configuration

cat 文件名catenate 查看文本内容,适合小文件

more 文件名 看大文件,内容多的时候

less -mN 文件名 比more好,能显示行数

tail -10 文件名 显示该文件末尾10行

cp 文件名1 文件名2

cp -b 文件名1 文件名2 不会覆盖原来的文件

cp -r /root/a /root/b含有目录的文件夹复制,需要**-r** recursive递归

mv 移动文件或者重命名文件

rm 文件名 删除remove会提示是否删除

rm -f 文件名 强制删除不会提示force

rm -rf强制删除目录

find /root/ name ‘in*’ 寻找在/root/根目录下含有in的文件,*是通配符

vim 文件名 进去文件里面了

i 可以插入字符了insert

I 光标在当前行插入

a在光标后插入

A在光标当前行末尾插入

o插入新的下一行

O插入新的上一行

esc 退出,一般模式

:wq 保存并退出

yy复制

p粘贴

nyy复制n行

gg文本第一行

G文本最后

dd删除一行

ndd删除n行

grep(Global regular expression print)用来过滤字符 ,经常和其他命令联合一起使用 ignore 忽略大小写

grep -i MySQL /root/install.log

ps -ef任务管理器,查看当前进程

ps -ef | grep -i MySQL /root/install.log 管道,过滤

kill -9强制终止进程

ifconfig

ping 127.0.0.1 查看本机网络通畅


Java

JRE运行平台

JDK开发工具

Eclipse是集成开发环境IDE(Integrated Development Environment)


public class HelloWorld{

public static void main(String[] args){

System.out.println(“HelloWorld!”);

}

}

jdk 的bin 下编译javac HelloWorld.java

java HelloWorld


&&和&一样的效果,区别是&&有短路效果,如果左边为false,那么右边就不再执行

import java.util.Scanner

Scanner sc=new Scanner(System.in);

int x=sc.nextInt();

Scanner sc=new Scanner(System.in);

String s=sc.nextLine();


import java.util.Random;

Random r=new Random();

int number=r.nextInt();


猜数字小游戏,

系统产生一个随机数

键盘录入事件

while(true){

if比较多次猜的数据,判断大小

}


int[] arr =new int[3];动态初始化

int[] arr =new int[]{};静态初始化

int[] arr={};简化版

二维数组

int[][] arr=new int[m][n];

int[][] arr={{},{}};


ArrayList arr=new ArrayList();


读取数据的2种方式:

一次读取一个字符,


一次读取一个字符串。


方法的重写:在子父类当中,子类的方法和父类的完全一样,子类重写了父类的方法(覆盖),当子类重写了父类的方法之后,使用子类对象调用的就是子类的方法


方法重写的应用场景:当父类的方法不能完全满足子类使用的时候,既可以保留父类的功能(沿袭、传承),还可以有自己特有的功能

方法重写的注意事项:

不可以重写父类私有的成员方法,压根就看不到父类的私有成员

子类重写父类方法,权限必须大于等于父类方法的权限

注解

@Override:方法重写,说明下面的方法是重写父类的方法


方法的重载:在一个类中,有多个重名的方法,但是其参数不一样(参数的个数,参数的类型,参数的顺序),和返回值无关

什么是xml?

xml是一种可扩展标记语言,用于描述数据,可以以轻松检索和共享的形式存储数据。


xml的特征:


1、XML(可扩展标记语言)是一种标记语言。


2、XML旨在存储和传输数据。


3、XMl的创建是为了提供一个易于使用和存储的自描述数据。


4、XML不是HTML的替代品。


5、XML旨在实现自我描述。


6、XML旨在传输数据,而不是显示数据。


7、XML标签没有预定义,因此我们必须定义好自己的标签才可以使用。


8、XML独立于平台且与语言无关。


、XML是一种独立于软件和硬件的工具,用于传输和存储数据;它侧重于数据。HTML用于显示数据并关注数据的外观。


2、XML提供了一个定义标记语言的框架。HTML 本身就是一种标记语言。


3、XML 区分大小写。HTML 不区分大小写。


4、XML既不是标签标记语言也不是编程语言。HTML是一种超文本标记语言。


5、我们可以根据需要定义自己定义XML标签。HTML 有属于自己的预定义标签,不可以用户自己定义。


6、XML 强制要求使用结束标记。在HTML中,没有必要使用结束标记。


7、XML是动态的,因为它用于传输数据。HTML是静态的,因为它用于显示数据。


8、XML 保留空格。HTML 不保留空格。


JSON是一种轻量级的数据交换格式。它不同于其他的数据存储和交换语言格式的地方在于,它存储和表示数据时的文本中完全不会涉及到编程语言。

在网络传输中,使用JSON语言代替了XML语言,会有极大的便利。首先JSON语言的语法格式较为简单,并且它的层次结构十分的清晰,这极大的方便了人们的读写,也使得机器对其的解析和生成更加容易实现。其次,在数据交换方面,由于JSON语言没有XML语言中那种元素标签,因而对于相同的内容,使用JSON记录时会比使用XML记录所使用到的字符数要少得多,所以它可以极大的节省出数据传输时所需的带宽,提高网络传输的效率。但是JSON也有其缺点,那就是它没有XML语言那么一清二楚。例如,当JSON数据很长的时候,我们要想查找某个数据,就需要在其密密麻麻的数据节点中去搜寻,这一过程是繁琐而又复杂的。但由于JSON主要用于传输数据,所以这种问题对使用带来的影响并不大。综上,JSON作为一种理想的数据交换语言可谓是名副其实的。


Http之三报文握手

seq: 序列号,表示数据第一个字节的序号


ack: 确认序列号,表示期望收到的第一个字节的序号

SYN:用作建立连接时的同步信号。


ACK:用于对收到的数据进行确认。


FIN:表示后面没有数据需要发送,连接需要关闭。


第一次握手:客户端发送数据包将SYN置1,表示希望建立连接,seq=x。发完后进入SYN_SEND状态。


第二次握手:服务器收到请求后,通过SYN确认是建立连接请求,然后发送一个响应包,将SYN=1 ACK=1 seq=y ack=x+1,然后进入SYN_RCVDz状态


第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。


客户端想要关闭连接,然后发送FIN信号并带上seq信息给服务器,


服务器应答ACK告诉客户端可以断开,但是要等我把数据发送完喽。注意这时候客户端进入FIN_WAIT_2状态。


服务器将数据发送完后发送FIN+ACK给客户端,告诉客户端OK了,然后自己进入CLOSE_WAIT状态。


客户端收到后,给服务器发送ACK确认收到,然后自己进入TIME_WAIT状态。


经过2MSL,客户端没有收到服务器传来的报文,则确定服务器已经收到最后的ACK信号,连接正式释放。


为什么要三次握手?

保持信息对等。


防止请求超时导致脏连接。


TCP面向连接,UDP面向非连接


TCP提供可靠的服务(数据传输无差错、不丢失、不重复、按序到达),UDP不可靠


TCP面向字节流,UDP面向报文


TCP数据传输慢,UDP数据传输快


TCP首部开销20字节,UDP8字节


JS基础知识

JavaScript基础number,string,Boolean,null,undefined,object

获取字符串类型 console.log(typeof 变量名)

获取字符串长度 console.log(变量名.length)

字符串拼接 +就行

alert 无提示的弹框

prompt 有提示的弹框

其他类型转换数字

转整数 parseInt();

转小数 parseFloat();

转数字 Number();

其他类型转字符串

变量有意义 .toString();

变量没意义 String();

其他类型转布尔 Boolean(值);


instanceof 判断一个变量属于什么类型,结果为Boolean类型


Math.ceil向上取整

Math.floor向下取整

Math.pow幂次方,指数

Math.sqrt开方

Math.random伪随机数[0,1)

.charAt(index) 返回值是字符串index的对应字符

String.fromCharCode 将数字转成字符,组成字符串 遵循ASCII码SOS 83 79 83

.slice(2,3) 截取字符串,开始的索引,结束的索引,返回值是截取后的字符串

.substr(2,5)开始的位置,个数,,返回值是截取的字符串

.substring()开始的索引,结束的索引,返回值是字符串

.indexof()要找的字符串,返回值是这个字符串的索引值,没有找到的话,就返回-1

.lastIndexOf()从后往前找,但是索引的位置还是从左到右

.split("",3) 去掉某个字符,

.splice(2,3)从索引为2的位置,删除3个元素

.replace(原来的字符串,要替换的字符串)

.toLocaleLowerCase()大写转小写

.toLowerCase

.toUpperCase

.toLocaleUpperCase

.trim去掉字符串两端的空格

Array.isArray()判断变量是不是数组

.filter 过滤

.push 把要添加的值放在数组最后

.pop 删除数组中最后一个元素,返回值就是删除的这个值

.shift删除数组第一个元素,返回值就是删除的这个值

.unshift 把要添加的值放在数组最前面

.forEach(函数),循环遍历数组,相当于for循环

.indexof(元素),返回值是元素所在的索引,如果没有就返回-1

.join(字符串)

.map(函数),把得到的每一个结果作为新的返回值传到数组的原来的位置

.reverse反转数组

.sort(函数)排序数组

.slice(开始索引,结束索引)截取数组,包括开始,不包括结束索引

strcat 粘贴字符串,加在后面

struct结构体

strcpy

malloc,calloc和free

typedef和#define

IO输入输出流

文件操作FILE *fp

PASCAL

&全真才真

|全假才假

^(XOR)同号为假,异号为真


C++基础知识

#include

using namespace std;

int main()

{

cout<<“Hello,World!”<<endl;

return 0;

}

虚函数,是针对多态来的,经过派生后动态绑定(虚表,指向函数的指针。)。是非静态成员函数,不是内联函数,因为内联函数是定义的静态成员函数。

一般的成员函数都是虚函数。构造函数不能是虚函数,析构函数可以是虚函数。

派生类的成员可以继承基类成员的虚函数。不需要再用virtual关键字来声明。但是为了程序的可读性,我们一般都对派生的成员用virtual关键字。

重载operate是指重新定义。

重写是针对继承来说的。成员函数可以重新覆盖基类成员。

virtual函数=0 纯虚函数,在基类中无法实现操作,在成员函数中通过动态绑定,指针指向来实现。

在派生类中定义虚函数覆盖基类虚函数。有的时候可能参数列表返回值不同。这类错误往往不容易被发现,编译器也不会报错。我们使用override去申明派生类虚函数。Override关键字是针对多态而言的。

Final关键字。不允许被继承。

template 函数模板,函数模板并非自动可以处理所有类型的数据。

template类模板

返回是引用,他是左值

返回是对象,他是右值

栈的基本操作。初始化入栈,出栈,清空站,访问栈的元素,检测站的状态(满占空占。)。

泛型程序设计。是指将数据和算法分离出来。单独抽象出来的一个程序设计模板,就像c++的stl类库。Standard template library。标准模板库。为泛型程序设计提供了逻辑基础。

STL的基本组件。容器container。迭代器interact。函数对象function object。算法。


基本容器内模板。顺序容器有,数组向量,双端队列。单链表列表。关联容器有集合。映射多种集合,

容器适配器有栈队列,优先队列。

使用容器的时候需要包含对应的头文件。


迭代器。是泛型的指针。指针本身也是迭代器。使用迭代器的时候需要包含头文件iterator

函数对象是泛化的函数。任何普通函数和任何重载了。()的运算符的类的对象。都可以作为函数对象来使用。

迭代器是算法和容器的桥梁,迭代器用作访问容器中的元素,算法不直接操作容器中的数据,而是通过迭代器去访问数据

算法和容器独立新增算法不影响容器的实现,新增容器也不影响算法的移植。

输入流迭代器和输出流迭代器都属于适配器。适配器是用来为已有的对象提供新的接口。

输入流适配器和输出流适配器。为流泪对象提供了接口。

STL

算法是通用的。独立于数据类型和容器类型。算法本身是一种函数模板,通过迭代器获得输入数据。通过函数对象对数据处理。通过迭代器将结果输出。

三个最重要的输出流:ostream,ofstream,ostringstream

三个预定义的输出流对象 cout,cerr,clong

cout标准输出

cerr标准错误输出,没有缓冲区

clog类似cerr,有缓冲区,就像错误日志

ofstream 类支持磁盘文件输出。

操纵符(manipulator)

操纵服大多都定义在iOS base 类,如hex,oct,dec

setprecision控制浮点数的精度


引用传递。

重载函数,就是有相同的功能,但是数据类型不同,编译器只是区分个数和类型,不以返回值区分

内联函数,就是只有单一语句,可以在其他地方调用该函数,不能包括switch case,while结构体,

返回值。return 1

复制构造函数

构造函数,默认构造函数初始化

析构函数没有参数,没有返回值类型。用来释放空间和资源。

基于范围的for循环。

stdafx.h


jQuery基础知识

优点:

查找元素的方法多种多样,非常灵活

隐式迭代,不需要写for循环

完全没有兼容性

动画animation效果多,功能强大

代码简单


concat?将传入的数组或非数组值与原数组合并

思想:可以用于数组合并,并且不改变原数组,返回一个新数组,


innerText低版本火狐浏览器不支持,支持textcontent,IE浏览器支持innerText,不支持textContent

jQuery入口函数:

( d o c u m e n t ) . r e a d y ( f u n c t i o n ( ) ) ; 或 者 (document).ready(function(){}); 或者(document).ready(function());或者(function(){});

js入口函数:window.οnlοad=function

js入口函数比jQuery慢,

jq等window加载完才显示 不等图片

js都要等待

什么是DOM对象?使用js方式获取的元素就是DOM对象(js对象)

什么是jQuery对象?使用jQuery方式获取的元素就是jq对象

js和jQuery对象的区别:

js对象不能调用jQuery对象的方法

jQuery和js的联系:

jQuery对象就是js对象的集合

DOM无法调用jQuery对象,因为这是2个不用的方法

DOM对象调用jQuery对象的方法,需要把DOM对象转化为jQuery对象,用$()

实 质 是 f u n c t i o n , 实质是function,实质是function,===jQuery

也可以把jQuery对象转化为DOM对象,用[]

或.get()

$的3种用法:

1,传函数,☞入口函数

2,把DOM对象转化为jQuery对象

3,传参是字符串,用来着找对象


$(“s1,s2”);并集选择器

$(“s1s2”);交集选择器

$(“s1 s2”);后代

$(“s1>s2”);子集


注册鼠标经过事件

$li.mouseenter

$li.mouseleave

mouseover mouseout

隐式迭代:

会给jQuery内部所有的样式设置相同的值

获取的时候只会返回第一个样式的值

添加类addClass

移除类removeClass

判断类hasClass

切换类toggleClass

样式在style里面写,用CSS

属性用attr(name,value)写,可以设置单个属性

多个属性用对象{}

三组动画

show hide

slide down . slide up slide toggle

fade in . fade out fade toggle

自定义动画

.animate({对象,传入需要改变的样式},speed动画持续的时间,动画效果)

.animate({left:800},speed:8000,“swing”)

动画队列

.stop().slide down() 停止当前正在执行的动画,有2个参数

clearQueue清除动画队列。true false

jumpToEnd是否跳转到动画最后

默认都是false


音乐导航播放🎵

.audio.get().load()音乐每次都重新加载,因为防止鼠标移走了音乐还没播放完

.audio.get().play()


创建节点

.append() 添加到内容前面

.appendTo()

.prepend() 把节点加到最前面

.prependTo()

.before()把元素填加到另一个元素上

.after()


清空元素的内容

$(“div”).html("")空字符串来替换了内容,但是容易造成内存泄露

$(“div”).


克隆节点

.clone() 默认不传参数就是false,深复制,不会复制事件

true浅复制,会复制事件


样式操作(写在style里面)

css(name value)设置单个样式

css(obj)设置多个样式

css(name)获取样式

addClass

removeClass

hasClass

toggleClass


属性操作

attr方法,与class方法差不多

prop操作布尔类型的属性,disabled checked selected

removeAttr 移除属性


html innerHTML和text innerText

HTML会解析标签,Text不会

jQuery获取div的width值:

$(“div”).width

$(“div”).innerWidth padding+width

$(“div”).outerWidth(false) 指的是 padding+width+border

$(“div”).outerWidth(true) 指的是 padding+width+border+margin

获取滚动条的值

.scrollTop()

.scrollLeft()


JavaScript高级

dir验证属性

工厂模式,有new,有返回值,,new对象是当前对象

自定义构造函数,首字母大写,this是当前对象,

开辟内存空间,把this设为当前对象,设置属性和方法的值,把this返回

判断对象属性的数据类型,用instanceof 和 .constructor

原型的方法解决数据共享

倒叙数组i=this.length-1;i>=0;i–;

冒泡排序sort

函数自调用,一次性函数,声明的同时,调用自己

面向对象的编程思想,万物皆对象,总结出对象的特征和行为(比如,人),抽象成属性和方法,定义构造函数,实例化对象,调用属性和方法,完成相应的需求

原型添加方法,需要共享就加到属性里,不需要共享就加到构造函数里

组合继承,就是原型继承+构造函数继承

拷贝继承,改变地址指向,也可以通过循环遍历数组for(in)的方法

预解析的时候用函数表达式,因为函数声明在IE8浏览器会报错


函数中的this指向:

普通函数中的this☞window

对象.方法中的this☞当前实例对象

定时器中的this☞window

构造函数中的this☞实例对象

原型对象中的this☞实例对象


在严格模式下"use strict"


函数是对象(因为有prototype原型),对象不一定是函数(因为有__proto__对象,就像Math是对象,不是函数,它有__proto__,没有prototype),一个东西如果既有prototype又有__proto__,说明即是函数,又是对象


所有的函数实际上都是Function的构造函数创建出来的实例对象

回调函数,函数作为参数使用

setInterval定时器

apply和call中如果没有传入参数或者传null,那么该方法调用的函数中的对象的this就是指默认window,调用的写法不一样,结果一样,apply(null,[1,2]) call(null,1,2),可以改变this的指向

方法.属性改变原型的this指向

bind是复制函数,可以在复制的时候传参数,也可以在调用的时候传参数,


案例:每隔一秒产生一个1~10的随机数

思路:先调用系统random函数Math.random()*10+1

show1函数中设置定时器,并且调用show2函数显示随机数

show2函数是显示随机数

最后调用show1,打印出来就OK


介绍下函数中的几个属性:

name:函数的名字,只读,不能修改

arguments:实参的个数

length:形参的个数

caller:调用(比如f1在f2被调用,那么f2就是调用者)

作用域链,从里到外搜索

预解析,把函数的声明,和变量的声明提前

闭包,缓存数据(把这个数据放在外层函数和里层函数中间),延长作用域链,缺点也因为缓存数据没有及时释放内存。


闭包,可以实现产生3个相同的随机数


递归的思想求一串数字的和:递归一定是函数,并且有结束条件,先判断是否大于10,<10直接返回

若>10,用x%10得个位数+function(parseInt(x/10))


递归求斐波那契

function getFib(x){

if(x=1||x=2){return 1;}

return getFib(x-1)+getFib(x-2);


}

getFib(12);


遍历数组中的属性元素用for(var key in x)


浅拷贝:将一个对象中的属性,方法复制到另一个对象中,就是把一个对象的地址指向另一个对象,两个对象有共同的属性,方法

深拷贝:把一个对象中的属性,方法都找到,在另一个对象的相应地方开辟空间,一个一个存进去


深拷贝要用到递归

比如,通过函数把a中的属性深拷贝到b中

1,先遍历a对象中每个属性的值

2,判断这个属性值是不是数组,如果是,在b中添加一个月相同类型的属性值,也就是给b对象添加空数组,

3,调用函数把a对象中的数组中每个属性值深拷贝到b对象中的数组

4,判断这个属性值是不是对象类型,如果是,在b中添加相同的属性,空对象类型,

5,调用函数把a对象中的属性值一个一个深拷贝到b对象中

6,如果这个属性值是普通数据,就直接赋值给b

遍历DOM树,用到递归函数

第一个函数,给我根结点,显示所有的子节点

第二个函数,把子节点的名字显示出来

循环遍历子节点显示名字,判断子节点下面有没有子节点,有就继续遍历


正则表达式,用来匹配姓名,身份证号码,电话号码是否一致,匹配用户名和密码是否一致

正则表达式是由元字符或者限定符组成的式子

.表示除了\n以外的所有字符

[09]表示09之间任意一个数字

[az]表示az小写字母中任意一个字母

[AZ]表示[AZ]之间任意一个大写字母

[azAZ]表示所有字母中任意一个

|或者,运算级别最低

()提升优先级,左结合性

下面这些可以叫元字符,但也可以叫限定符,因为限定了前面的元素出现的次数

*前面的表达式出现的零次或多次。

+前面的表达式出现的一次或多次。

?前面的表达式出现了零次或一次。

^表示以什么开头或者取反

$表示以什么结束


\d表示数字中的任意一个

\D表示非数字中的任意一个

\s,表示一个空白符

\S表示非空白符

\w表示非特殊符号[09azA~Z_]

\W表示特殊符号

\n换行符

\r回车符

\t水平制表符

\f换页符

邮箱📬的正则表达式:

[09azAZ_.-]+[@][09azAZ_.-]+([.][azAZ]+){1,2}

字面量的方式创建正则表达式

var reg=/\d{1,5}/;

var result=reg.text();


验证邮箱的密码强度:为文本框注册键盘抬起事件,正则表达式验证文本框中的内容,得到一个密码强度。

先用函数判断这个输入密码的强度。1,2,3级别,再显示对应的颜色


escape将中文汉字转化为编码

unescape将Unicode编码转化为中文汉子

验证表单

通过函数,验证文本框中的内容是否匹配正则表达式

str.match(/d{5}/g)可以提取字符串中的所有数字 以/g结尾全局模式/i忽略大小写。

可以用来提取字符串中的所有邮箱


区别数组和伪数组:

真数组长度可变,伪数组长度不可变。

真数组可以使用数组中的方法,伪数组不能使用数组中的方法。

解释一下数组中的方法

arguments.forEach 报错

arr.forEach 正确


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
6月前
|
JavaScript
记录一些报错记录
记录一些报错记录
59 0
|
关系型数据库 MySQL 数据库
数据的修改与更新:探究MySQL中的UPDATE操作
在数据库管理中,修改已存在的数据是一项常见任务,"UPDATE"语句正是用于实现这一目标的命令。通过UPDATE操作,我们可以对数据库中的现有数据进行修改。
260 0
|
算法 Java 关系型数据库
问题记录:msyql单个id查询出多条数据
在使用简单的select时,6个id却筛除了8条数据
141 0
问题记录:msyql单个id查询出多条数据
MySQL_03--使用UPDATE根据一个表中的数据条数,更新另一个表的计数字段
根据表t_distribute中标志字段completed的完成情况,通过评委的userID对应到t_user_judge中,进一步更新分配的评分作品数assignNum、完成的评分作品数judgeNum两个字段。
|
关系型数据库 MySQL
MySQL基础-删除/更新行为
添加了外键之后,再删除父表数据时产生的约束行为,我们就称为删除/更新行为。具体的删除/更新行为有以下几种:
210 0
|
关系型数据库 MySQL 数据库
mysql:一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15 ?
mysql:一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15 ?
389 0
|
关系型数据库 MySQL 测试技术
软件测试mysql面试题:mysql、表“test”,两个字段 id 和 uid。查看数据表结构、插入一条记录、删除一条记录。
软件测试mysql面试题:mysql、表“test”,两个字段 id 和 uid。查看数据表结构、插入一条记录、删除一条记录。
139 0
K8s 1.15.0 安装记录
k8s 1.15.0 安装记录
4526 0
|
存储 编解码 安全
案例分享的记录
案例分享—钉钉
368 0