狂神说Java

什么是数据库

数据库 DataBase 简称db
数据库管理系统 DataBase Management System 简称DBMS
sql是非过程化语言
创建时间和更新时间的默认值   CURRENT_TIMESTAMP

数据库设计过程阶段

按照规范的设计方法,一个完成的数据库设计一般分为以下六个阶段:
1. 需求分析: 分析用户的需求,包括数据、功能和性能需求;
2. 概念结构设计:主要采用E-R模型进行设计,包括画E-R图;
3. 逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换,进行关系规范化;
4. 数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存储路径;
5. 数据库的实施:包括编程、测试和试运行;
6. 数据库运行和维护:系统的运行和数据库的日常维护

完整性描述

实体完整性指表中行的完整性
域完整性指列的值域的完整性,如数据类型、格式、值域范围、是否允许空值等等
参照完整性基于外键与被引用主键之间的关系,确保键值在所有表中的一致性

三个模式

在数据库的三级模式结构中:
模式也称为逻辑模式或概念模式;
外模式也称为用户模式;
内模式也称为物理模式或存储模式。

三个模型

 层次模型:用树状<层次>结构来组织数据的数据模型网状模型:用有向图表示实体和实体之间的联系的数据结构模型关系模型:使用表格表示实体和实体之间关系的数据模型

数据表的逻辑运算

投影得到元组
选取得到列
连接在多个关系的笛卡尔积中进行筛选出的新关系
交运算是多个关系之间交集所产生的新的关系。

下载安装

软件下载

mysql5.7 64位下载地址

步骤

1、下载后得到zip压缩包.

2、解压到自己想要安装到的目录,

3、添加环境变量:我的电脑->属性->高级->环境变量

选择PATH,在其后面添加: 你的mysql 安装文件下面的bin文件夹

4、bin目录同级目录下创建my.ini;
编辑 my.ini 文件 ,注意替换路径位置

[mysqld]
basedir=D:\Program Files\mysql-5.7\
datadir=D:\Program Files\mysql-5.7\data\
port=3306
skip-grant-tables

5、启动管理员模式下的CMD,并将路径切换至mysql下的bin目录,然后输入mysqld –install (安装mysql)

6、再输入 mysqld --initialize-insecure --user=mysql 初始化数据文件 net start mysql

7、然后再次启动mysql 然后用命令 mysql –u root –p 进入mysql管理界面(密码可为空)

8、进入界面后更改root密码

update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';

9 刷新权限

flush privileges;

10、修改 my.ini文件删除最后一句skip-grant-tables

11、重启mysql即可正常使用

net stop mysql
net start mysql

12、连接上测试出现以下结果就安装好了

mysql -uroot -p123456

13 连接数据库语句 : mysql -h 服务器主机地址 -u 用户名 -p 用户密码

基本命令

update user set password=password('123456')where user='root'; --修改密码
flush privileges; --刷新数据库
show databases; --显示所有数据库
use dbname; --打开某个数据库
show tables; --显示数据库mysql中所有的表
describe user; --显示表mysql数据库中user表的列信息
create database name; --创建数据库
use databasename; --选择数据库
exit; 退出Mysql
sc delete mysql;  清空服务 安装失败的时候使用
? 命令关键词
: 寻求帮助
-- 表示注释

DDL 数据定义语言

创建数据库

创建数据库 : create database [if not exists] 数据库名;

删除数据库 : drop database [if exists] 数据库名; 可选属性 判断是否存在

查看数据库 : show databases;

使用数据库 : use 数据库名;

创建表

sqlyog

CREATE TABLE IF NOT EXISTS `student` (`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名' ,`pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',`address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=UTF8

总结

加``是为了防止转义字符的出现 方式表明未识别

SHOW CREATE DATABASE school --查看创建数据库的语句
SHOW CREATE TABLE student --查看student数据表的定义语句
DESC student --显示表的结构

数据字段类型

UnSigned

  • 无符号的
  • 声明该数据列不允许负数 .

ZEROFILL

  • 0填充的
  • 不足位数的用0来填充 , 如int(3),5则为005Auto_InCrement
  • 自动增长的 , 每添加一条数据 , 自动在上一个记录数上加 1(默认)
  • 通常用于设置主键 , 且为整数类型
  • 可定义起始值和步长
  • 当前表设置步长(AUTO_INCREMENT=100) : 只影响当前表
  • SET @@auto_increment_increment=5 ; 影响所有使用自增的表(全局)

NULL NOT NULL

  • 默认为NULL , 即没有插入该列的数值
  • 如果设置为NOT NULL , 则该列必须有值

DEFAULT

  • 默认的
  • 用于设置默认值

例如,性别字段,默认为"男" , 否则为 “女” ; 若无指定该列的值 , 则默认值为"男"的值

mysql数据表的类型

经验

  • 使用MyiSAM:节约空间及相应速度
  • 适用于InnoDB:安全性 事务处理及多用户操作数据表

DML数据操作语言

插入数据

INSERT INTO 表名[(字段1,字段2,字段3,…)] VALUES(‘值1’,‘值2’,‘值3’)

INSERT INTO grade(gradename) VALUES (‘大三’),(‘大四’);

外键

CREATE TABLE `grade` (`gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年级ID',`gradename` VARCHAR(50) NOT NULL COMMENT '年级名称',PRIMARY KEY (`gradeid`)
) ENGINE=INNODB DEFAULT CHARSET=utf8

修改数据

UPDATE 表名 SET column_name=value [,column_name2=value2,…] [WHERE condition];

UPDATE grade SET gradename = ‘高中’ WHERE gradeid = 1;

where语句

删除数据

DELETE FROM 表名 [WHERE condition];

– 删除最后一个数据

DELETE FROM grade WHERE gradeid = 2

Truncate命令

作用:用于完全清空表数据 , 但表结构 , 索引 , 约束等不变 ;

语法:

TRUNCATE [TABLE] table_name;
-- 清空年级表
TRUNCATE grade

区别:注意:区别于DELETE命令

  • 相同 : 都能删除数据 , 不删除表结构 , 但TRUNCATE速度更快
  • 不同 :
    • 使用TRUNCATE TABLE 重新设置AUTO_INCREMENT计数器
    • 使用TRUNCATE TABLE不会对事务有影响 (事务后面会说

DQL数据查询语言

select语法

SELECT [ALL | DISTINCT]
{* | table.* | [table.field1[as alias1][,table.field2[as alias2]][,...]]}
FROM table_name [as table_alias] [left | right | inner join table_name2] -- 联合查询 [WHERE ...] -- 指定结果需满足的条件 [GROUP BY ...] -- 指定结果按照哪几个字段来分组 [HAVING] -- 过滤分组的记录必须满足的次要条件 [ORDER BY ...] -- 指定查询记录按一个或多个条件排序 [LIMIT {[offset,]row_count | row_countOFFSET offset}]; -- 指定查询的记录从哪条至哪条

where逻辑操作符

查询多个数据

SELECT studentno,studentname FROM student;

统计表中有多少条数据

select count(*) from student

骚操作

发现重复数据 去重

重复的数据只显示一条

SELECT DISTINCT `StudentNO` FROM result

数据库表达式

数据库表达式:文本值 列 Null 函数 计算表达式 系统变量

模糊查询

between and \ like \ in \ null

模糊搜索查询

WHERE studentname LIKE ‘%嘉%’;

查询学号为1000,1001,1002学生的成绩

WHERE studentno IN (1000,1001,1002);

查询BornDate为空的字段

WHERE BornDate IS NULL;

as字句取别名

作用:

  • 可给数据列取一个新别名
  • 可给表取一个新别名
  • 可把经计算或总结的结果用另一个新名称来代替
-- 这里是为列取别名(当然as关键词可以省略)
SELECT studentno AS 学号,studentname AS 姓名 FROM student; -- 使用as也可以为表取别名
SELECT studentno AS 学号,studentname AS 姓名 FROM student AS s;-- 使用as,为查询结果取一个新名字
-- CONCAT()函数拼接字符串
SELECT CONCAT('姓名:',studentname) AS 新姓名 FROM student;

连接查询

join

  • INNER JOIN 如果表中有至少一个匹配,则返回行
  • LEFT JOIN 即使右表中没有匹配,也从左表中返回所有的行
  • RIGHT JOIN 即使左表中没有匹配,也从右表中返回所有的行

key值为两个表相连的中间值 相等即为连接

select_list 需要查询的信息:查询条件和中间值

TableA A 给表起别名 as可以省略

自连接

先把自己拆成两个表 然后进行连接查询(有先行课的情况下需要进行自链接)

复制一份以后 判断条件 id=他先行课的id

子查询

在where语句中嵌套一个语句

比较一下连接查询和子查询的区别

从里向外查询(先执行最里面在执行外面

分页和排序

瀑布流:eg:抖音无限往下刷新

显示表中前5条数据

limit 页数,页面大小

select * from student limit 0,5

排序

ORDER BY 要排序的字段 DESC|ASC --降序|升序

mysql函数

常用函数

数学运算

SELECT ABS(-8)   --取绝对值
SELECT CTILING(9.4)   --向上取整
SELECT FlOOR(9.4)   --向下取整
SELECT RAND()    --取随机数
SELECT SIGN(10)   --返回一个数的符号 正数返回1 负数返回-1

字符串函数

SELECT CHAR_LENGTH('')   --返回字符串的长度
SELECT CONCAT('我','你')   -- 拼接字符串
SELECT INSERT('str',1,2,'str1')    --从第一个字符开始,将str的两个字符替换成str1
SELECT LOWER('')   --转换成小写
SELECT UPPER('')   --转换成大写
INSTR  返回第一次出现的字串的索引

时间和日期函数

聚合函数

  • COUNT() 计数

    • count(data) 会忽略所有的null值
    • count(*) 计算行数 所有列都会查
    • count(1) 计算行数 只会查一列
  • SUM() 求和
  • AVG() 平均值
  • MAX() 最大值
  • MIN() 最小值

GROUP BY 字段名 通过什么来分组

HAVING 二次过滤

MD5函数

增强算法复杂度和不可逆性

加密算法

UPDATE testmd5 SET pwd=MD5(pwd) WHERE id =1

插入时加密

INSERT INTO testmd5 VALUES(4,‘xiaoming’,MD5(‘123456’))

如何校验 将用户传入数据库的密码 进行MD5加密

SELECT * FROM testmd5 WHERE `name`='xiaoming' AND pwd=MD5('123456')

事务

将一组sql放在一个批次中去执行,要么都成功要么都失败

CAP原则

1.1 定义

​ CAP是“Consistency,Avalilability, Partition Tolerance”的一种简称,其内容分别是:

​ (1)强一致性:即在分布式系统中的同一数据多副本情形下,对于数据的更新操作体现出的效果与只有单份数据是一样的。

​ (2)可用性:客户端在任何时刻对大规模数据系统的读/写操作都应该保证在限定延时内完成;

​ (3)分区容忍性:在大规模分布式数据系统中,网络分区现象,即分区间的机器无法进行网络通信的情况是必然发生的,所以系统应该能够在这种情况下仍然继续工作。

​ 对于一个大规模分布式数据系统来说,CAP三要素是不可兼得的,同一系统至多只能实现其中的两个,而必须放宽第3个要素来保证其他两个要素被满足。一般在网络环境下,运行环境出现网络分区是不可避免的,所以系统必须具备分区容忍性§特性,所以在一般在这种场景下设计大规模分布式系统时,往往在AP和CP中进行权衡和选择。

​ 1.2 为什么分布式环境下CAP三者不可兼得呢?

​ 由于上面已经提到对于分布式环境下,P是必须要有的,所以该问题可以转化为:如果P已经得到,那么C和A是否可以兼得?可以分为两种情况来进行推演:

​ (1) 如果在这个分布式系统中数据没有副本,那么系统必然满足强一致性条件,因为只有独本数据,不会出现数据不一致的问题,此时C和P都具备。但是如果某些服务

器宕机,那必然会导致某些数据是不能访问的,那A就不符合了。

​ (2) 如果在这个分布式系统中数据是有副本的,那么如果某些服务器宕机时,系统还是可以提供服务的,即符合A。但是很难保证数据的一致性,因为宕机的时候,可能

有些数据还没有拷贝到副本中,那么副本中提供的数据就不准确了。

​ 所以一般情况下,会根据具体业务来侧重于C或者A,对于一致性要求比较高的业务,那么对访问延迟时间要求就会低点;对于访问延时有要求的业务,那么对于数据一致性要求就会低点。一致性模型主要可以分为下面几类:强一致性、弱一致性、最终一致性、因果一致性、读你所写一致性、会话一致性、单调读一致性、以及单调写一致性,所以需要根据不同的业务选择合适的一致性模型。

ACID原则

(1) 原子性(Atomicity):是指一个事务要么全部执行,要么完全不执行。

(2) 一致性(Consistency): 事务在开始和结束时,应该始终满足一致性约束。比如系统要求A+B=100,那么事务如果改变了A的数值,则B的数值也要相应修改来满足这样一致性要求;与CAP中的C代表的含义是不同的。

最终一致性,银行转钱,无论怎么转,钱的数量一致,

(3) 隔离性(Isolation):如果有多个事务同时执行,彼此之间不需要知晓对方的存在,而且执行时互不影响,事务之间需要序列化执行,有时间顺序。

事务的独立性,互相隔离,互不干扰

(4) 持久性(Durability):事务的持久性是指事务运行成功以后,对系统状态的更新是永久的,不会无缘无故回滚撤销。

没有提交事务回滚,提交事务不可逆

脏读:一个事务读取了另外一个事务未提交的数据 隔离性的问题

不可重复读:多次读取结果不同

幻读:一个事务读取到了另外一个事务插入的数据,导致前后读取不一致(一般是行影响 多了一行)

索引

mysql为什么使用b+树 减少磁盘访问 io的问题 优先把根节点加载到内存中 加载索引 尽量不要增加树深

olap 对历史数据的分析

oltp 传统的数据库用的是这个

局部性原理和磁盘预读(了解) 加载的时候以页(4k)为单位进行交换 innodb是以块读 16k

索引是什么

存储引擎:innodb文件 两个ibd文件将数据和索引存储在一起 聚簇索引

​ mylsam myd 存储数据 索引在 myi 非聚簇索引

frm存储表结构

hash为什么不行

hash冲突:而且容易造成空间的浪费 进行范围查找需要一条条数据进行对比

二叉树为什么不行

层级问题(树太高) io量太大

尽量在开发中sql不要写*

用二分查找需要将二叉树变成二叉搜索树 BST-》可是数据如果递减的话,树可能就退还成了链表,左分支空-》 avl树 (最长子树和最短子树高度相差1)平衡二叉树-》需要进行树的旋转 插入性能低 查询性能高

有序数组

只适用于静态存储引擎

红黑树

红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。 [3] 在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求:

  • 性质1. 节点是红色或黑色。
  • 性质2. 根节点是黑色。
  • 性质3.所有叶子都是黑色。(叶子是NUIL节点)
  • 性质4. 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
  • 性质5… 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。

b树

一层一个根节点下超过两个元素就往上添加 -》2²-1个值插进来的时候会影响树高

n叉树

n的数值取决于数据块的大小 ,减少树深,树还是可以用的

b+树

数据都在叶子节点 非叶子节点只存储key值(索引) 叶子之间是双向链表

概念

索引分类:

根据存储来分:聚簇索引和非聚簇索引

  • 主键索引 叶子节点存整行数据 主键索引也叫聚簇索引
  • 非主键索引 叶子节点存的是主键的值 也称二级索引

非主键索引需要多扫描一颗索引表(回表) 尽量使用主键索引
解释:非主键索引就是类似于用where条件去找数据,根据where条件找到值对应的主键,根据主键索引去获取对应的值(行),多扫描一次。上述也就是回表的概念

根据使用来分:

  • 主键索引 根据主键查找

  • 唯一索引 给列添加一个唯一索引 可以根据该列来查找

  • 普通索引 回表 索引覆盖

  • 组合索引 最左匹配:

什么时候会有索引失效:

  • like查询%开头
  • 组合索引如果中间某一个值进行了范围查询也会失效
  • 使用函数的时候会失效
  • 使用表达式的时候会失效
  • 类型不匹配的时候会失效 设及隐式转换的时候会失效
  • 数据量特别大也会失效

索引维护

怎么维护

  1. B+ 树为了维护索引有序性,在插入新值的时候需要做必要的维护
  2. 如果新插入的 ID 值比原来的小,就相对麻烦了,需要逻辑上挪动后面的数据,空出位置
  3. 而更糟的情况是,如果所在的数据页已经满了,根据 B+ 树的算法,这时候需要申请 一个新的数据页,然后挪动部分数据过去。这个过程称为页分裂。在这种情况下,性能自然会受影响。
  4. 除了性能外,页分裂操作还影响数据页的利用率。原本放在一个页的数据,现在分到两个页中,整体空间利用率降低大约 50%。
  5. 当然有分裂就有合并。当相邻两个页由于删除了数据,利用率很低之后,会将数据页做合 并。合并的过程,可以认为是分裂过程的逆过程
  6. 自增主键的插入数据模式,正符合了我们前面提到的递增插入的场景。每次插入一条新记录,都是追加操作,都不涉及到挪动其他记录,也不会触发叶子节点的分裂。
  7. 而有业务逻辑的字段做主键,则往往不容易保证有序插入,这样写数据成本相对较高
  8. 主键长度越小,普通索引的叶子节点就越小,普通索引所占空间就越小
  9. 如果业务字段做主键:只有一个索引且索引唯一 典型的kv场景

(所以一般使用自增主键)

  • 全文索引

回表

当存在主键索引和普通索引时,根据普通索引的b+树找到数据,返回主键值,根据主键取索引树找对应的值

索引覆盖

将单列索引(name)升级为联合索引(name, sex),即可避免回表。
根据name索引已经查出了数据,这个时候如果是联合索引,再去查sex值时,可以根据name的索引找,不必再去回表找数据

执行DQL时(查询语句),查sex得知 sex已经在name的索引树上了,可以直接查询结果,不需要回表,索引name覆盖了查询请求,我们称之为覆盖索引
覆盖索引能够减少树的搜索次数(就是回表的次数),显著提高查询性能,是常用的索引优化手段

索引下推

谓词下推
1 先从存储引擎中把所有符合name的数据拉取回来 然后再server层进行age筛选
2 从存储引擎拉去数据的时候把name和age都做了筛选

最左匹配

选地址必须先选择省 在选择市 在选择地区 不能直接选择地区

数据库三大范式

  1. 1NF 只要有不重复的组就可以(就是说每一列都不可再分)

  2. 2NF 满足第一范式 所有非主属性都完全依赖于主码

    1. 包含在任意一个码中的属性被称为主属性
    2. 解决数据冗余和插入异常的问题
    3. 你创建一个学生表 关系模型(班级编号,班级名称,学号,姓名,老师id,老师名称)这种是不合理的
      1. 通过你的id可以找到你,这是完全依赖,
      2. 通过你可以找到你老师 通过你同班同学一可以找到你老师 这是部分依赖 这种情况就需要分表
    4. 判断是否属于2范式
      1. 第一步:找出数据表中所有的码。
      2. 第二步:根据第一步所得到的码,找出所有的主属性。
      3. 第三步:数据表中,除去所有的主属性,剩下的就都是非主属性了。
      4. 第四步:查看是否存在非主属性对码的部分函数依赖
  3. 3NF 满足第二范式 所有非主属性对任何候选码都不存在传递依赖

    1. 解决插入异常,修改异常与删除异常的问题
    2. 每个属性都跟主键有直接关系而不是间接关系
    3. 你创建一个学生表 关系模型(学号,姓名,年龄,性别,所在院校,院校地址,院校电话)
    4. 你和你学校电话存在传递依赖 (间接关系)你-》你学校-》学校电话
  4. BCNF 解决了主属性对于码的部分函数依赖与传递函数依赖。

    1. 码的定义 K 确定的情况下,该表除 K 之外的所有属性的值也就随之确定,那么 K 就是码

    2. 码有主码和候选码 意味着码存在多个

    3. 满足BCNF’的条件

      1 所有非主属性对每一个候选键都是完全函数依赖; 满足2NF

      2 所有的主属性对每一个不包含它的候选键,也是完全函数依赖;

      3 没有任何属性完全函数依赖于非候选键的任何一组属性。 满足2NF

范式小结

1NF:关系中的每个属性都不可分。列的原子性
2NF:消除了非主属性对于码(键)的部分函数依赖。
3NF:消除了非主属性对于码(键)的传递函数依赖。
BCNF:消除了主属性对于码(键)的部分或传递函数依赖。

exe安装完全卸载

运行安装mysql-server 右上角安装程序,点击Remove进行卸载。
删除mysql目录 C:\Program Files\MySQL
检查C:\WINDOWS目录下是否有my.ini文件,将其删除 这个文件不一定存在
win+r,弹出运行程序窗口,然后输入regedit
删除 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL
如下两个key不一定有,没有就不理了 删除
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application \MySQL
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL
删除ProgramData目录下的文件 C:\ProgramData\MySQL Server 5.5

第七篇 SQL从安装到卸载相关推荐

  1. My SQL的安装与卸载

    My SQL数据库的安装 (1) 下载 官网:https://www.mysql.com/ 具体步骤:需要点击的地方均用黄色记号笔标出. 如果官网较慢或者找不到下载驱,在这附上我已经上传到百度网盘的链 ...

  2. python学习 第七篇 sql优化

    查询单条语句:用来获取用户列表和单个用户 >>> fields=["id","name","name_cn"," ...

  3. Linux下软件的安装与卸载

    在Windows下安装软件时,只需运行软件的安装程序(setup.install等)或者用zip等解压缩软件解开即可安装,运行反安装程序(uninstall.unware."卸载" ...

  4. win7 SQL Server2014安装

    win7 SQL Server2014安装 彻底卸载SQL Server https://blog.csdn.net/weixin_43808666/article/details/87864369 ...

  5. 第一篇:centos7下svn的安装与卸载

    2019独角兽企业重金招聘Python工程师标准>>> 第一篇:centos7下svn的安装与卸载 2017年11月29日 00:10:53 独家记忆ly 阅读数:6108 这是我的 ...

  6. SQL Server 2008 安装或卸载时提示“重启计算机失败的解决办法(转)

    安装或卸载SQL Server 遇到错误提示:以前的某个程序安装已在安装计算机上创建挂起的文件操作.运行安装程序之前必须重新启动计算机.如下图: 解决办法: 1.在开始->运行中输入regedi ...

  7. 《Microsoft SQL Server入门教程》第02篇 SQL Server 下载与安装

    文章目录 安装 SQL Server 安装 SQL Server Management Studio 连接 SQL Server 本篇我们介绍如何下载和安装 SQL Server 2019 开发者版本 ...

  8. SQL 2005安装时报已经安装了同名实例的问题解决。(无法正确卸载干净时最管用)

    最近重装SQL2005,卸载后报" SQL 2005此计算机上已经安装了同名实例".说明原来的安装没有卸载干净.需要按照如下办法. 1.停止服务 停止所有与SQL Server相关 ...

  9. SQL Server的彻底卸载与再次安装

    SQL Server的彻底卸载与再次安装 可能大家已经有深刻体会,SQL Server的卸载十分繁琐.最让人头疼的是,出了问题的SQL Server未卸载完全就再次安装将会频频出错.我当时也是深受其扰 ...

最新文章

  1. AIR720串口2收发数据问题
  2. stata主成分分析_主成分分析在STATA中的实现
  3. 会议交流 | IJCKG 2021:Keynotes released!欢迎注册参会
  4. python随机猜数字游戏_Python小游戏——猜数字教程(random库教程)
  5. 哟西,CLOUDSTACK第一步,搞定
  6. PDE7 wave equation: intuition
  7. 以代码为实例讲解sizeof函数易混淆的用法
  8. Summarize 2014 Look Ahead 2015
  9. 分享一个好看的邮件html模板
  10. AWS云上混沌工程实践之启动篇
  11. 小孔子内容管理系统V2.0测试
  12. 图片降噪Topaz DeNoise AI 安装小技巧
  13. 李福攀:Kata安全容器在蚂蚁集团的应用实践
  14. 为什么反向传播更加高效
  15. 质安码区块链直推新零售通过线上线下资源整合,实现信息传递的最大化
  16. 【U8+】用友U8数据卸出提示“更改卸载业务单据关闭日期删除后处理出错,错误描述,存储过程没有任何参数”
  17. grafana+alertmanager 微信报警发送给不同告警人
  18. 【用JS自制表格软件玩数据】9. 自制三维 K线图 蜡烛图
  19. 阿里云证书资源包申请免费SSL流程(图文教程)
  20. JVM性能调优1_享学课堂

热门文章

  1. Ibatis.net + Npgsql +PostgreSql 多线程“Timeout while getting a connection from pool.”
  2. NAACL 2022 | 机器翻译SOTA模型的蒸馏
  3. 【美团秋招笔试】美团第一次笔试 2022-8-20
  4. Vlan 单线复用之复式二层住宅网络改造实操案例(一)
  5. 外贸人常用的几种客户开发渠道
  6. 【Matlab数理统计知识点合集】新手入门第十三天
  7. 服务器安装jkd1.8运行jar以及一系列的操作
  8. 树莓派3B入门开发之(一)--简介
  9. 动力节点 mysql 郭鑫 34道经典的面试题三
  10. STM32单片机学习笔记