MySQL

  • 1、初识MySQL
    • 1.1为什么学数据库
    • 1.2什么是数据库
    • 1.3数据库分类
    • 1.4MySQL简介
    • 1.5连接数据库
  • 2、操作数据库
    • 2.1操作数据库
    • 2.2数据库的列类型
    • 2.3数据库的字段类型(重点)
    • 2.4创建数据库
    • 2.5数据表的类型
    • 2.6修改删除表
  • 3.MYSQL数据管理
  • 4.DQL查询数据(最重点)
  • 6.事务
  • 7.索引
    • 7.1索引的分类
    • 7.2 测试索引
    • 7.索引的原则
  • 8.权限管理和备份
  • 9.规范数据库设计
  • 10.JDBC(重点)

1、初识MySQL

JavaEE:企业级Java开发 Web

前端(页面:展示:数据)

后台 (连接点:连接数据库JDBC,连接前端(控制视图跳转,给前端传递数据))

数据库(存数据,Txt,Excel,Word)

只会写代码,学好数据库,

操作系统,数据结构与算法,–>不错的程序员

离散数学,数字电路,体系结构,编译原理+实战经验,高级程序猿

1.1为什么学数据库

  1. 岗位需求

  2. 现在的世界,大数据时代,得数据者得天下

  3. 被迫需求:存数据

  4. 数据库是所有软件体系中最核心的存在 DBA

1.2什么是数据库

数据库:(DB,DataBase)

概念:数据仓库,软件,安装在操作系统之(windows,Linux。mac)上的!SQL,可以存储大量的数据,500万!

作用:存储数据,管理数据 Excel

1.3数据库分类

关系型数据库:(SQL)

  • MySQL, Oracle, sql Server, DB2, SQLite
  • 通过表和表之间,行和列之间的关系进行数据的存储

非关系型数据库:(NoSQL) Not Only SQL

  • Redis, MongDB
  • 非关系型数据库,对象存储,通过对象自身的属性来决定。

DBMS(数据库管理系统)

数据库的管理软件,科学有效的管理我们的数据,维护和获取
MySQL ,数据管理系统!

1.4MySQL简介

MySQL是一个关系型数据库管理系统

前世: 瑞典MySQL AB 公司

今身: 属于Oracle 旗下产品

MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

开源的数据库软件

体积小,速度快,总体拥有成本低,招人成本比较低。

中小型网站,或者大型网站,集群
官网: https://www.mysql.com/

1.5连接数据库

命令行连接!

mysql -u root -p123456 --连接数据库update mysql.user set authentication_string=password('123456') where user='root' and Host='localhost';  --修改密码flush privileges;--刷新权限
--------------------------------------------------
--所有语句使用;结尾--show databases;--查看所有的数据库mysql> use school--切换数据库, use 数据库名
Database changed--show tables;--查看数据库中所有的表
describe student;--显示数据库中所有的表的信息
create database westos;--创建一个数据库exit;--退出连接--单行注释(sql本来注释)
/*
多行注释
*/

2、操作数据库

操作数据库》操作数据库中的表》操作数据库中表的数据

2.1操作数据库

  1. 创建数据库
CREATE DATABASE IF NOT EXISTS westos;

2.删除数据库

DROP DATABASE IF EXISTS westos;

3.使用数据库

-- ``,如果你的表名或者字段名是一个特殊字符,需要带``USE 'school'

4.查看数据库

SHOW DATABASES--查看所有数据库

2.2数据库的列类型

数值

  • tinyint 十分小的数据 1个字节
  • smallint 较小的数据 2个字节
  • mediumint 中等大小 3个字节
  • int 标准的整数 4个字节(常用)
  • bigint 较大的数据 8个字节
  • float 浮点数 4个字节
  • double 浮点数 8个字节 (精度问题)
  • decimal 字符串形式的浮点数,金融计算的时候,一般用

字符串

  • char 字符串固定大小 0-255
  • varchar 可变字符串 0-65535(常用)
  • tinytext 微型文本 2^8-1
  • text 文本串 2^16-1 (保存大文本)

时间日期

java.util.Date

  • date YYYY-MM-DD,日期
  • time HH:mm:ss 时间格式
  • datetime YYYY-MM-DD HH:mm:ss 最常用的时间格式
  • timestamp 时间戳 1970.1.1到现在的毫秒数
  • year 年份表示

nulll

  • 没有值,未知
  • 注意,不要使用null进行运算,结果为null

2.3数据库的字段类型(重点)

unsigened:

  • 无符号的整数
  • 声明该列不能声明负数

zerofill:

  • 0填充的
  • 10的长度 1 – 0000000001 不足位数用0 填充

自增:

  • 通常理解为自增,自动在上一条记录的基础上+1
  • 通常用来设计唯一的主键 index,必须是整数类似
  • 可以自定义设置主键自增的起始值和步长

非空 NULL not Null

  • 假设设置为 not null,如何不给他赋值,就会报错
  • NULL 如果不填写,默认为NULL

默认:

  • 设置默认的值!

2.4创建数据库

--目标:创建一个schoo1数据库--创建学生表(列,字段)使用SQL 创建--学号int 登录密码varchar(20)姓名,性别varchar(2),出生日期(datatime),家庭住址,emai1--注意点,使用英文(),表的名称和字段尽量使用括起来-- AUTO_ INCREMENT 自增--字符串使用单引号括起来!--所有的语句后面加,(英文的),最后一个不用加-- PRIMARY KEY 主键,一般- 一个表只有一个唯一 -的主键!
CREATE DATABASE school
CREATE TABLE IF NOT EXISTS `student1` (
`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

格式

CREATE TABLE [IF NOT EXISTS] `表名`(
`字段名` 列类型[属性][索引][注释],
`字段名` 列类型[属性][索引][注释],
...
`字段名` 列类型[属性][索引][注释]
)[表类型][表的字符集设置][注释]

常用命令

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

2.5数据表的类型

-- 关于数据库引擎
/*
INNODB 默认使用
MYISAM 早些年使用*/
MYISAM INNODB
事务支持 不支持 支持
数据行锁定 不支持 支持
外键约束 不支持 支持
全文索引 支持 不支持
表空间的大小 较小 较大,约为MYISAM的两倍

常规使用操作:

  • MYISAM 节约空间,速度较快,
  • INNODB 安全性高,事务处理,多表多用户操作

在物理空间存在的位置

  • 所有的数据库文件都存在data目录下,一个文件夹就对应一个数据库
  • 本质还是文件的存储

MySQL 引擎在物理文件上的区别

  • innoDB 在数据库表中,只有一个*.frm文件,以及上级目录下的ibdata1文件
  • MYISAM 对应的文件
    • *.frm - 表结构的定义文件
    • *. MYD -数据文件
    • *.MYI 索引文件

设置数据库字符集编码

CHARTSET=UTF8

不设置的话,会是mysql默认的字符集编码-(不支持中文)

可以在my.ini中配置默认的编码

character-set-server=utf8

2.6修改删除表

修改

-- 修改表名 ALTER TABLE 旧表面 AS 新表名
ALTER TABLE student RENAME  AS student1
-- 增加表的字段 ALTER TABLE 表名 ADD 字段名 列属性
ALTER TABLE student1 ADD age INT(11)
-- 修改表的字段(重命名,修改约束)
ALTER TABLE student1 MODIFY age VARCHAR(11)  -- 修改约束
ALTER TABLE student1 CHANGE age age1 INT(1)  -- 字段重命名-- 删除表的字段
ALTER TABLE student1 DROP age1

删除

-- 删除表
DROP TABLE IF EXISTS student1

所有的创建和删除操作尽量加上判断,以免报错

注意点:

  • `` 字段名,使用这个 飘
  • 注释 - - /**/
  • sql 关键字大小写不敏感,建议写小写
  • 所有的符号全部用英文

3.MYSQL数据管理

4.DQL查询数据(最重点)

6.事务

7.索引

MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。

7.1索引的分类

在一个表中,主键索引只能有一个,唯一索引可以有多个

  • 主键索引 (PRIMARY KEY)

    • 唯一的标识,主键不可重复,只能有一个列作为主键
  • 唯一索引 (UNIQUE KEY)
    • 避免重复的列出现,唯一索引可以重复,多个列都可以标识唯一索引
  • 常规索引(KEY/INDEX)
    • 默认的,index,key关键字来设置
  • 全文索引(FULLTEXT)
    • 在特点的数据库引擎下才有,MyISAM
    • 快速定位数据
-- 索引的使用
-- 1.在创建表的时候给字段增加索引
-- 2.创建完毕后,增加索引-- 显示所有的索引信息
SHOW INDEX FROM 表-- 增加一个索引
ALTER TABLE 表 ADD FULLTEXT INDEX 索引名(字段名)-- EXPLAIN 分析sql执行状况
EXPLAIN SELECT * FROM student -- 非全文索引

7.2 测试索引

CREATE TABLE `app_user` (
`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) DEFAULT '',
`email` VARCHAR(50) NOT NULL,
`phone` VARCHAR(20) DEFAULT '',
`gender` TINYINT(4) UNSIGNED DEFAULT '0',
`password` VARCHAR(100) NOT NULL DEFAULT '',
`age` TINYINT(4) DEFAULT NULL,
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8-- 插入100万数据
DELIMITER $$ --  写函数之前必写
CREATE FUNCTION mock_data()
RETURNS INT
BEGIN
DECLARE num INT DEFAULT 1000000;
DECLARE i INT DEFAULT 0;WHILE i<num DO
-- 插入语句
INSERT INTO app_user(`name`,`email`,`phone`,`gender`,`password`,`age`)
VALUE(CONCAT('用户',i),'534240118@qq.com',FLOOR (CONCAT('18',RAND()*9999999)),FLOOR (RAND()*2),
UUID(),FLOOR (RAND()*100));SET i = i+1;
END WHILE;
RETURN i;END;INSERT INTO app_user(`name`,`email`,`phone`,`gender`,`password`,`age`)
VALUE(CONCAT('用户',i),'534240118@qq.com',FLOOR (CONCAT('18',RAND()*9999999)),FLOOR (RAND()*2),
UUID(),FLOOR (RAND()*100))SELECT mock_data();SELECT * FROM app_user WHERE `name`='用户9999' -- 接近1秒EXPLAIN SELECT * FROM app_user WHERE `name`='用户9999'  -- 查询99999条记录-- id _ 表名_字段名
-- create index on 字段
CREATE INDEX id_app_user_name ON app_user(`name`); -- 0.001 s
EXPLAIN SELECT * FROM app_user WHERE `name`='用户9999'  -- 查询一条记录

100万条数据不加索引


加了索引之后:


总结:索引在小数据的时候,用处不大,但是在大数据的时候,区别十分明显

7.索引的原则

  • 索引不是越多越好
  • 不要对经常变动的数据加索引
  • 小数据量的表不需要加索引
  • 索引一般加在常用来查询的字段上

索引的数据结构

Hash 类型的索引

Btree: 默认innodb 的数据结构

阅读: http://blog.codinglabs.org/articles/theory-of-mysql-index.html

面试题:索引的优缺点:

  • 索引的优点:

    • 大大加快数据的检索速度

    • 创建唯一性索引,保证数据库表中的每一行数据的唯一性

    • 加速表和表之间的连接

    • 在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间

  • 索引的缺点:
    • 索引文件本身要消耗空间,
    • 同时索引会加重插入、删除和修改记录时的负担,另外 MySQL在运行时也要消耗资源维护索引,因此索引并不是越多越好

不建议用索引:
1、以2000作为分界线。
2、索引的选择性较低

SELECT count(DISTINCT(title))/count(*) AS Selectivity FROM employees.titles;
+-------------+
| Selectivity |
+-------------+
|      0.0000 |
+-------------+

title的选择性不足0.0001(精确值为0.00001579),所以实在没有什么必要为其单独建索引。

InnoDB使用聚集索引,数据记录本身被存于主索引(一颗B+ Tree)的叶子节点上。
这就要求同一个叶子节点内(大小为一个内存页或磁盘页)的各条数据记录按主键顺序存放,因此每当有一条新的记录插入时,MySQL会根据其主键将其插入适当的节点和位置,如果页面达到装载因子(InnoDB默认为15/16),则开辟一个新的页(节点)。

如果表使用自增主键,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页。如下图所示:

尽量在InnoDB上采用自增字段做主键

面试题2·给一个sql从哪些方面考虑优化查询效率

第一方面:30种mysql优化sql语句查询的方法

  1. 查询进行优化,应尽量避免全表扫描,首先应考虑在 whereorder by涉及的列上建立索引

  2. 应尽量避免在 where 子句中使用 !=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。

3.应尽量避免在 where 子句中对字段进行== null 值 判断==,否则将导致引擎放弃使用索引而进行全表扫描,如:

select id from t where num is null

可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:

select id from t where num=0

4.应尽量避免在 where 子句中使用== or== 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:

select id from t where num=10 or num=20

可以这样查询:

select id from t where num=10

union all

select id from t where num=20

5.下面的查询也将导致全表扫描:

select id from t where name like ‘%abc%’

对于 like ‘…%’ (不以 % 开头),可以应用 colunm上的index

http://6.in 和 not in 也要慎用,否则会导致全表扫描,如:

select id from t where num in(1,2,3)

对于连续的数值,能用 between 就不要用 in 了:

select id from t where num between 1 and 3

7.如果在== where 子句中使用参数==,也会导致全表扫描。因为SQL只有在运行时才会解析局部变量,但优化程序不能将访问计划的选择推迟到运行时;它必须在编译时进行选择。然而,如果在编译时建立访问计划,变量的值还是未知的,因而无法作为索引选择的输入项。如下面语句将进行全表扫描:

select id from t where num=@num

可以改为强制查询使用索引:

select id from t with(index(索引名)) where num=@num

8.应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。如:

select id from t where num/2=100

应改为:

select id from t where num=100*2

9.应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描。如:

select id from t where substring(name,1,3)=‘abc’–name以abc开头的id

select id from t where datediff(day,createdate,‘2005-11-30’)=0–'2005-11-30’生成的id

应改为:

select id from t where name like ‘abc%’

select id from t where createdate>=‘2005-11-30’ and createdate<‘2005-12-1’

10.不要在 where 子句中的==“=”【左边】进行函数、算术运算或其他表达式运算==,否则系统将可能无法正确使用索引。

11.在使用索引字段作为条件时,如果该索引是【复合索引】,那么必须使用到该索引中的【第一个字段】作为条件时才能保证系统使用该索引,否则该索引将不会被使用。并且应【尽可能】的让字段顺序与索引顺序相一致。(字段顺序也可以不与索引顺序一致,但是一定要包含【第一个字段】。)

12.不要写一些没有意义的查询,如需要生成一个空表结构:

select col1,col2 into #t from t where 1=0

这类代码不会返回任何结果集,但是会消耗系统资源的,应改成这样:

create table #t(…)

13.很多时候用 exists 代替 in 是一个好的选择:

select num from a where num in(select num from b)

用下面的语句替换:

select num from a where exists(select 1 from b where num=a.num)

14. 并不是所有索引对查询都有效,SQL是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL查询可能不会去利用索引,如一表中有字段sex,male、female几乎各一半,那么即使在sex上建了索引也对查询效率起不了作用。

15.索引并不是越多越好,索引固然可以提高相应的 select 的效率==,但同时也降低了 insert 及 update 的效率,因为 insert 或 update 时有可能会重建索引,所以怎样建索引需要慎重考虑,视具体情况而定。一个表的索引数最好不要超过6个,若太多则应考虑一些不常使用到的列上建的索引是否有必要。

16.应尽可能的避免更新 clustered 索引数据列,因为 clustered 索引数据列的顺序就是表记录的物理存储顺序,一旦该列值改变将导致整个表记录的顺序的调整,会耗费相当大的资源。若应用系统需要频繁更新 clustered 索引数据列,那么需要考虑是否应将该索引建为 clustered 索引。

17.尽量使用数字型字段,若只含数值信息的字段尽量不要设计为字符型,这会降低查询和连接的性能,并会增加存储开销。这是因为引擎在处理查询和连接时会逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了。

18.尽可能的使用 varchar/nvarchar 代替 char/nchar ,因为首先变长字段存储空间小,可以节省存储空间,其次对于查询来说,在一个相对较小的字段内搜索效率显然要高些。

19.任何地方不要使用 select * from t,**用具体的字段列表代替“*”,**不要返回用不到的任何字段。

20.尽量使用表变量来代替临时表。如果表变量包含大量数据,请注意索引非常有限(只有主键索引)。

21.避免频繁创建和删除临时表,以减少系统表资源的消耗。

22.临时表并不是不可使用,适当地使用它们可以使某些例程更有效,例如,当需要重复引用大型表或常用表中的某个数据集时。但是,对于一次性事件,最好使用导出表。

23.在新建临时表时,如果一次性插入数据量很大,那么可以使用 select into 代替 create table,避免造成大量 log ,以提高速度;如果数据量不大,为了缓和系统表的资源,应先create table,然后insert。

24.如果使用到了临时表,在存储过程的最后务必将所有的临时表显式删除,先 truncate table ,然后 drop table ,这样可以避免系统表的较长时间锁定。

25.尽量避免使用游标,因为游标的效率较差,如果游标操作的数据超过1万行,那么就应该考虑改写。

26.使用基于游标的方法或临时表方法之前,应先寻找基于集的解决方案来解决问题,基于集的方法通常更有效。

27.与临时表一样,游标并不是不可使用。对小型数据集使用 FAST_FORWARD 游标通常要优于其他逐行处理方法,尤其是在必须引用几个表才能获得所需的数据时。在结果集中包括“合计”的例程通常要比使用游标执行的速度快。如果开发时间允许,基于游标的方法和基于集的方法都可以尝试一下,看哪一种方法的效果更好。

28.在所有的存储过程和触发器的开始处设置 SET NOCOUNT ON ,在结束时设置 SET NOCOUNT OFF 。无需在执行存储过程和触发器的每个语句后向客户端发送 DONE_IN_PROC 消息。

29.尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理。

30.尽量避免大事务操作,提高系统并发能力。

上面有几句写的有问题。

第二方面:

select Count (*)和Select Count(1)以及Select Count(column)区别

  • 一般情况下,Select Count (*)和Select Count(1)两着返回结果是一样的

  • 假如表沒有主键(Primary key), 那么**count(1)比count()快*,

  • 如果有主键的話,那主键作为count的条件时候*count(主键)*最快

  • 如果你的表只有一个字段的话那**count(*)**就是最快的

  • count(*) 跟 count(1) 的结果一样,都包括对NULL的统计

  • count(column)不包括NULL的统计

第三方面:

索引列上计算引起的索引失效优化措施以及注意事项

创建索引、优化查询以便达到更好的查询优化效果
但实际上,MySQL有时并不按我们设计的那样执行查询。
MySQL是根据统计信息来生成执行计划的,这就涉及索引及索引的刷选率表数据量,还有一些额外的因素

当MYSQL认为符合条件的记录在30%以上,它就不会再使用索引,因为mysql认为走索引的代价比不用索引代价大,所以优化器选择了自己认为代价最小的方式。事实也的确如此

是MYSQL认为记录是30%以上,而不是实际MYSQL去查完再决定的。都查完了,还用什么索引啊?!

MYSQL会先估算,然后决定是否使用索引。

8.权限管理和备份

9.规范数据库设计

10.JDBC(重点)

MySQL学习笔记(狂神说Java)相关推荐

  1. Java入门学习笔记[狂神说Java]

    写在前面: 本文根据B站狂神说Java 与菜鸟教程 整理而来,仅供个人学习使用,如有侵权,请联系删除. 文章目录 IDEA使用 Java基础01:注释 Java基础02:数据类型 Java基础03:类 ...

  2. spring学习笔记(狂神说Java笔记)

    一.IOC本质 控制反转loC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IoC的一-种方法,也有人认为DI只是IoC的另一种说法.没有IoC的程序中,我们使用 ...

  3. MySQL学习Day01(狂神说Java)

    文章目录 1.初识mysql 1.1 为什么学习数据库 1.2 什么是数据库 1.3 数据库分类 1.4 MYSQL简介 1.5 安装MySQL 1.6 安装SQLyog 1.7 连接数据库 1.初识 ...

  4. MySQL学习笔记8:权限管理、数据库备份与设计

    1.前言 学习视频源自:[狂神说Java]MySQL最新教程通俗易懂 B站视频链接:https://www.bilibili.com/video/BV1NJ411J79W [狂神说Java]MySQL ...

  5. MySQL学习笔记-恶补基础篇

    目录 概述 1.初识数据库 1.1.DataBase 1.2.数据库分类 1.3.DBMS(数据库管理系统) 1.4.命令行操作数据库 2.操作数据库 2.1.操作数据库 2.2.数据库列类型 2.3 ...

  6. MySQL学习笔记-基础篇1

    MySQL 学习笔记–基础篇1 目录 MySQL 学习笔记--基础篇1 1. 数据库概述与MySQL安装 1.1 数据库概述 1.1.1 为什么要使用数据库 1.2 数据库与数据库管理系统 1.2.1 ...

  7. 小白终是踏上了这条不归路----小文的mysql学习笔记(1)

    **这里真的是一个大佬云集的地方,作为刚刚学习的小白来这里向各位大佬取经,这是学习的时候做的笔记,有什么不对的地方还请兄弟们斧正.卑微小白终究是踏上了这条不归路阿,如果这篇笔记能给你带来帮助,还请大哥 ...

  8. 小白终是踏上了这条不归路----小文的mysql学习笔记(4)----常见的基本函数

    ** 小白终是踏上了这条不归路----小文的mysql学习笔记(1) 小白终是踏上了这条不归路----小文的mysql学习笔记(2)----条件查询 小白终是踏上了这条不归路----小文的mysql学 ...

  9. MySQL 学习笔记②

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 视频链接:https://www.bilibili.com/video/BV1Kr4y1i7ru 资料链接 ...

  10. 实用篇 | MySQL 学习笔记

    实用篇 | MySQL 学习笔记 MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management S ...

最新文章

  1. centos修改mysql密码_WAMP下修改MYSQL数据库密码
  2. 自动化运维工具Saltstack详细介绍
  3. 《黑天鹅》读书笔记(part3)--那些声称注重过程而非结果的人并没有完全讲真话
  4. 【蓝桥杯嵌入式】【STM32】5_IICEEPROM之软件模拟IIC
  5. Linux集中日志服务器rsyslog(亲测)
  6. 微信小程序开发资料汇总
  7. 谈谈数值分析中的插值(截断)误差,以牛顿法为例
  8. Javascript:通过服务器相对路径下载文件到本地
  9. pta 计算圆周率(C语言实现)
  10. html+上下标+遇乘号无效,html中的特殊符号
  11. Delphi开发工具的使用
  12. 计算机房等电位连接,《计算机房屏蔽及等电位防护措施原稿2021版》
  13. 分享一些免费的网站速度测试工具
  14. 11.1.5 线程与主线程UI界面交互(友元类)
  15. 免费天气api 真正可用
  16. 红米手机5 Plus启用root超级权限的步骤
  17. 【LabVIEW小技巧】LabVIEW自定义系统按钮时图片项设置说明
  18. Google退出Android有影响吗?
  19. 集群服务器上的jupyter配置
  20. 游客丽江住店被蚊子咬醒 前台:养的宠物 死1只赔100

热门文章

  1. CC2640之OAD固件升级实操(使用外部Flash)
  2. Python-飞机大战
  3. [UVA12108]Extraordinarily Tired Students(模拟+水题)
  4. 7-2 最大公约数和最小公倍数系列
  5. 【解决方案】汽车修理厂如何实现远程监控?EasyCVR视频结构化平台助力智能维修安防
  6. 如何重置或者去掉某个css属性值
  7. 美国fba海运清关基本流程
  8. 简单布隆过滤器设计方案
  9. 融合RGB与近红外“看清黑暗”,低照度成像方法:暗视觉网络(AAAI 2022)
  10. 编译阶段输出宏定义的值