MySQL笔记之MySQL简单介绍及DQL语言
MySQL介绍
MySQL服务的启动和停止:
方式一:通过命令行
net start 服务名
net stop 服务名
MySQL服务的登录和退出:
登录:mysql [ -h 主机名 -p 端口号 ]-u 用户名 -p密码
退出:exit 或者 Ctrl+C
方式二: 计算机--右击--管理--服务
DQL语言
基础查询
语法:
select 查询列表 from 表名;
特点:
1查询列表可以是字段,常量,表达式,函数,也可以是多个
2.查询的结果是一个虚拟的表
示例:
1.查询单个字段
select 字段名 from 表名;
2.查询多个字段名
select 字段名,字段名 from 表名;
3.查询所有字段名
select * from 表名;
4.查询常量
select 常量值;
注意:字符型和日期型的常量值必须用单引号引起来,数值型不需要
5.查询函数
select 函数名(实参列表);
6.查询表达式
select 100/1234;
7.起别名
(1)as
(2)空格
8.去重
select distinct 字段名 from 表名;
9.+
作用:做加法运算
select 数值+数组;直接运算
select 字符+数值; 字符转换成数值,转换成功,则继续运算,否则转换成0,继续运算
select null+数组;结果都为null
10.[补充] concat函数
功能:拼接字符
select concat(字符1,字符2,...);
11.[补充]ifnull函数
功能:判断某字段或表达式是否为空,如果为空则返回指定的值,否则返回原本的值
select ifnull(commission_pct,0) from employees;
12.[补充]isnull函数
功能:判断某字段或表达式是否为空,如果为空则返回1,否则返回0。
条件查询
语法:
select 查询列表 from 表名 where 筛选条件;
执行顺序:先找表,再找满足条件的行,再找列表。
分类:
1.按照条件表达式筛选:简单条件运算符 > < != <> >= <=
2.按逻辑表达式筛选: 逻辑运算符 && || ! and or not
3.模糊查询: like 特点:(1) 一般和通配符搭配使用,通配符有%(任意多个字符,包括0个字符),_(任意单个字符)
between and (1) 可以提高语句的简洁度。(2) 包含临界值。(3) 两个临界值不要调换顺序
in 含义:判断某字段的值是都属于in列表中的某一项 特点:提高语句的简洁度,in列表的值得类型必须一致或兼容
is null is not null
安全等于<=> : is null 等价于 <=> null
is null pk <=> :is null仅仅可以判断null,可读性较高,建议使用。<=>既可以判断null,也可以判断普通的数值,可读性较低
案例:
案列1:查询员工名中包含有字符a的员工信息
select * from employees where last_name like '%a%';
查询的结果默认包括了大小写a。
案例2:查询员工名中第二个字符为_的员工名
select last_name from emplyees where last_name like '_\_%';
或者select last_name from emplyees where last_name like '_$_%' escape '$';
案例3:查询员工编号在100到120之间的员工信息
select * from emplyees where employee_id between 100 and 120;
案例3:查询员工的工种编号是 IT_PROG、AD_VP、AD_PRES中的一个的员工名和工种号
select last_name,job_id from emplyees where job_id in ('IT_PRO','AD_VP','AD_PRES');
练习:
查询员工号为176的员工的姓名和部门号和年薪
select last_name,department_id,salary*12*(1+IFNULL(commission_pct,0)) as 年薪 from employees;
测试:
一、查询没有奖金,且工资小于18000的salary,last_name
select salary,last_name from employees where commission_pct is null and salary<18000;
二、查询employees表中,job_id不为'IT',或者工资为12000的员工信息。
select * from employees where job_id <> 'IT' or salary =12000;
三、展示部门表的结构:
desc departments;
select distinct location_id from departments;#用distinct去重
五、经典面试题:
试问select * from employees;和select * from employees where commission_pct like '%%' and last_name like '%%';结果是否一样?并说明理由。
不一样,如果判断的字段有null值
排序查询
语法:
select 查询列表 from 表名 [where 筛选条件] order by 排序列表 [asc|desc];
特点:
1.不写默认升序ASC
2.order by 的子句可以支持单个字段,多个字段,表达式,函数,别名
3.order by子句一般放在查询语句的最后面,limit语句除外
案例:
案例1:查询员工信息,要求工资从高到低排序
select * from employees order by salary desc;
案例2.查询部门编号>=90的员工信息,按照入职时间的先后进行排序【添加筛选条件】
select * from employees where department_id>=90 order by hiredate asc;
案例3.按照年薪的高低显示员工的信息和年薪【按照表达式排序】
select *, salary*12*(1+ifnull(commission_pct,0)) 年薪 from employees order by salary*12*(1+ifnull(commission_pct,0)) desc;
案例4.按照年薪的高低显示员工的信息和年薪【按照别名排序】
select *, salary*12*(1+ifnull(commission_pct,0)) 年薪 from employees order by 年薪 desc;
案例5.按姓名的长度显示员工的姓名和工资【按照函数排序】
select LENGTH(last_name) 字节长度,last_name,salary from employees order by LENGTH(last_name) desc;
案例6.查询员工信息,要求先按工资升序,再按员工编号降序【按多个字段排序】
select * from employees order by salary asc,employee_id desc;
常见函数
概念:
类似于java的方法,将一组逻辑语句封装在方法体中,对外暴露方法名
好处:
1.隐藏了实现细节
2.提高代码的重用性
调用:
select 函数名(参数列表) [from 表];
特点:
1.叫什么(函数名)
2.干什么(函数功能)
分类:
1.单行函数 如:concat、length、ifnull等
2.分组函数 功能:做统计使用,又称统计函数、聚合函数、组函数
字符函数:
1.length:获取参数值得字节个数
select length('john'); 4
select length('张三丰hahaha'); 15
2.concat拼接字符串
select concat(last_name,'_',first_name) 姓名 from employees;
3.upper、lower
select upper('john');
select lower('JOHN');
4.substr、substring
注意:索引是从1开始的
截取从指定索引处后面的所有字符
select substr('李莫愁爱上了陆展元',7) out_put;
截取从索引处指定字符长度的字符
select substr('李莫愁爱上了陆展元',1,3) out_put;
5.instr 返回子串第一次出现的索引,如果找不到则返回0
select instr('杨不悔爱上了殷六侠','殷六侠') as out_put;
6.trim
select length(trim(' 张翠山 ')) as out_put;
select length(trim('a' from 'aaaaaaaaaaaaaaaaa张翠山aaaaaaaaaaaa')) as out_put;
7.lpad用指定的字符实现左填充指定长度
select lapd('殷素素',10,'*'); 如果10换成2,那么输出的就是殷素,截断了
8.rpad用指定的字符实现右填充指定长度
select rapd('殷素素',10,'ad');
9.replace 替换
select replace('周芷若爱上了张无忌','周芷若','赵敏');
10.rand 获取随机数,返回0-1之间的小数
数学函数
1.round 四舍五入
select round(-1.45); -2
select round(1.567,2); 1.57小数点后保留两位
2.ceil 向上取整,返回>=改参数的最小整数
select ceil(1.52); 2
select ceil(-1.02); -1
3.floor 向下取整 返回<=改参数的最小整数
select floor(9.99); 9
select floor(-9.9); -10
4.truncate 截断
select truncate(1.65,1); 1.6
5.mod 取余
select mod(10,3);
等价于 select 10%3;
日期函数
1.now 返回当前系统日期+时间
select now();
2.curdate 返回当前系统日期,不包括时间
SELECT CURDATE();
3.curtime 返回当前系统时间,不包括日期
SELECT CURTIME();
4.可以获取指定的年,月,日,小时,分钟,秒
select year(now()) 年;
select year('1997-6-7');
select month(now()) 月;
select monthname(now()) 月;
5.str_to_date 将字符通过指定格式转换成日期
select str_to_date('1997-6-7','%Y-%c-%d') as out_put;
6.date_format 将日期转换成字符
select date_format(NOW(),'%y年 %c月 %d日') as 日期;
其他函数
1.version 当前数据库服务器的版本
select version();
2.database 当前打开的数据库
select database();
3.user 当前用户
select user();
4.password('字符') 返回该字符的密码形式,相当于加密
5.MD5('字符') 返回该字符的MD5加密形式
流程控制函数
1.if函数:
if else 的效果
if(条件表达式,表达式1,表达式2) :如果条件表达式成立,返回表达式1,否则返回表达式2
select if(10>5,'大','小');
2.case函数的使用一: switch case 的效果
java中:
switch(变量或表达式){
case 常量1 : 语句1; break;
......
default:语句n ; break;
}
case 要判断的字段或表达式
when 常量1 then 要显示的值1或者语句1;
when 常量1 then 要显示的值2或者语句2;
...
else 要显示的值n或者语句n;
end
案例:查询员工的工资,要求部门号为30,显示的工资为1.1倍,部门号为40,显示的工资为1.2倍,部门号为50,显示的工资为1.3倍,其他部门,显示的工资为原工资。
select salary 原始工资,department_id ,
case department_id
when 30 then salary*1.1
when 40 then salary*1.2
when 50 then salary*1.3
else salary
end as 新工资
from employees;
3.case函数的使用二:类似于多重if
case
when 条件1 then 要显示的值1或者语句1;
when 条件2 then 要显示的值2或者语句2;
...
else 要显示的值n或者语句n;
end
案例:查询员工的工资情况,如果工资>20000,显示A级别,如果工资>15000,显示B级别,如果工资>10000,显示C级别,否则显示D级别。
select salary,
case
when salary>20000 then 'A'
when salary>15000 then 'B'
when salary>10000 then 'C'
else 'D'
end as 工作级别
from emoloyees;
分组函数
功能:
用作统计使用,又称为聚合函数或者统计函数或者组函数
分类:
sum 求和、avg 平均值、max最大值、min最小值、count统计个数
特点:
1.sum、avg一般用于处理数值型,max、min、count可以处理任何类型
2.以上分组函数都忽略null值
3.可以和distinct搭配实现去重
4.count函数介绍
一般用*统计行数
select count(*) from employees;
select count(1) from employees;
效率:MYISAM存储引擎下,count(*)的效率最高,INNODB存储引擎下,count(*)和count(1)的效率差不多,比count(字段)要高一些
5.和分组函数一同查询的字段要求是group by 后的字段
案例:查询员工表中的最大入职时间和最小入职时间的相差天数(DIFFERENCE)
select DATEDIFF(max(hiredate),min(hiredate)) DIFFERENCE from employees;
分组查询
语法:
select 分组函数,列(要求出现在group by 的后面)
from 表名
【where 筛选条件】
group by 分组的列表
【order by 子句】
注意:查询列表比较特殊,要求是分组函数个group by后出现的字段
特点:
1.分组查询中的筛选条件分为两类
数据源 | 位置 | 关键字 | |
分组前筛选 | 原始表 | group by子句的前面 | where |
分组后筛选 | 分组后的结果集 | group by子句的后面 | having |
分组函数做条件肯定放在having子句中
能用分组前筛选的就优先放在分组前筛选
2.group by 子句支持单个字段分组,多个字段分组(多个字段之间用逗号隔开,没有顺序要求),表达式或函数(用的较少)
3.也可以添加排序(排序放在整个分组查询的最后)
案例:
案例1:查询每个工种的最高工资
select max(salary),job_id from employees group by job_id;
案例2.查询哪个部门员工数>2
(1)查询每个部门的员工数
select count(*),department_id from employees group by department_id;
(2)根据(1)的结果进行筛选,查询哪个部门的员工数>2
select count(*),department_id from employees group by department_id having count(*)>2;
案例3.查询每个工种有奖金的员工的最高工资>12000的工种编号和最高工资
select max(salary), job_id
from employees
where commission_pct is not null
group by job_id
having max(salary)>12000;
案例3.查询领导编号>102的每个领导手下的最低工资>5000的领导编号是哪个,以及其最低工资
select min(salary),manger_id
from employees
where manger_id>102
group by manger_id
having min(salary)>5000;
连接查询
含义:
又称为多表查询,当查询的字段来自多个表时,就会用到连接查询
笛卡尔乘积:
表1有m行,表2有n行,结果=m*n行。发生原因:没有有效的连接条件。 如何避免:添加有效的连接条件。
后面会用到的两个表
分类
按照年代分:sql92标准 仅仅支持内连接,也支持一部分外连接(用于Oracle,SqlServer,MySQL不支持)
sql99标准 推荐,支持内连接,外连接(左外和右外)+交叉连接
按照功能分:内连接:等值连接,非等值连接,自连接
外连接:左外连接,右外链接,全外连接(MySQL也不支持)
交叉连接
sql92标准
1.等值连接
语法:
select 查询列表
from 表1 别名,表2 别名
where 表1.key = 表2.key
【and 筛选条件】
【group by 分组字段】
【having 分组后的筛选】
【order by 排序字段】;
特点:
(1)多表的连接结果为多表的交集部分
(2)n表连接,至少需要n-1个连接条件
(3)多表的顺序没有要求
(4)一般需要为表起别名
(5)可以搭配前面介绍的所有子句使用,比如排序,分组,筛选
案例:
案例1.查询女神名对应的男神名
select name,boyname from boys,beauty where beauty.'boyfriend_id' = boys.'id';
案例2.查询有奖金的每个部门的部门名和部门的领导编号和该部门的最低工资
select department_id, d.manager_id,min(salary)
from departments d,employees e
where d.'department_id' =e.'department_id'
and commission_pct is not null
group by department_id,d.manager_id;
2.非等值连接
语法:
select 查询列表
from 表1 别名,表2 别名
where 非等值的连接条件
【and 筛选条件】
【group by 分组字段】
【having 分组后的筛选】
【order by 排序字段】;
案例:
案例1.查询员工的工资和工资级别
select salary,grade_level
from employees e, job_geades g
where salary between g.'lowest_sal' and g.'highest_sal';
3.自连接
语法:
select 查询列表
from 表 别名1,表 别名2
where 等值的连接条件
【and 筛选条件】
【group by 分组字段】
【having 分组后的筛选】
【order by 排序字段】;
案例
案例:查询员工名和上级的名称
select e.employee_id,e.last_name,m.employee_id,m.last_name
from employees e,employees m
where e.'manager_id' = m.'employee_id';
sql99语法
语法:
select 查询列表
from 表1 别名 【连接类型】
join 表2 别名
on 连接条件
where 筛选条件
【group by 分组】
【having 筛选条件】
【order by 排序列表】
分类:
内连接: (inner)
外连接: 左外(left 【outer】) 右外(right 【outer】) 全外(full 【outer】)交叉连接 (cross)
1.内连接
语法:
select 查询列表
from 表1 别名
inner join 表2 别名
on 连接条件;
分类:
等值、非等值、自连接
特点:
1.inner可以省略,表的顺序可以调换
2.筛选条件放在where的后面,连接条件放在on后面,提高分离性,便于阅读
3.inner join连接和sql92语法中的等值连接效果是一样的,都是查询多表的交集
案例:
案例1:查询员工名、部门名
select last_name,department_name
from employees e
inner join departments d
on e.'department_id'=d.'department_id';
案例2.查询员工名、部门名、工种名、并按部门名降序
select last_name,department_name,job_title
from employees e
inner join departments d on e.'department_id' = d.'department_id'
inner join jobs j on e.'job_id' = j.'job_id'
order by department_name desc;
非等值连接
案例:查询员工工资几级别
select salary ,grade_level
from employees e
join job_grades g
on e.'salary' between g.'lowest_sal' and g.'highest_sal';
自连接
案例:查询员工的名字、上级的名字
select e.last_name,m.last_name
from employees e
join employees m
on e.'manager_id' = m.'employee_id';
外连接:
应用场景:用于查询一个表中有,另一个表中没有的记录
特点:
1.外连接的查询结果为主表中的所有记录
如果从表中有和它匹配的,则显示匹配的值
如果从表中没有和它匹配的,则显示null
外连接查询结果=内连接结果+主表中有而从表中没有的记录
2.左外连接,left join左边的是主表,右外连接,right join右边的是主表
3.全外连接=内连接的结果+表1中有但表2中没有的+表2中有但表1中没有的
引入:查询没有男朋友的女神名
select b.name
from beauty b
left outer join boys bo
on b.'boyfriend_id' = bo.'id'
where bo.'id' is null;
交叉连接(就是一个笛卡尔乘积)
select b.*,bo.*
from beauty b
cross join boys bo;
测试
1.查询编号>3的女神的男朋友信息,如果有,列出详细信息,如果没有,用null填充
select bo.*
from beauty b
left outer join boys bo
on b.'boyfriend_id' = bo.'id'
where b.'id'>3;
2.查询哪个城市没有部门
select city
from locations l
left outer join departments d
on l.'location_id'=d.'location_id'
where d.'department_id' is null;
3.查询部门名为SAL或IT的员工信息
select e.*,department_id
from departments d
left outer join employees e
on e.'department_id' = d.'department_id'
where d.'department_name' in('SAL','IT');
子查询
含义:
出现在其他语句中的select语句,称为子查询或内查询
外部查询的语句,称为主查询或内查询
分类:
按子查询出现的位置:
select后面:仅仅支持标量子查询
from后面:支持表子查询
where后面或having后面:标量子查询、列子查询、行子查询
exists后面(相关子查询) 表子查询
按结果集的行列数不同:
标量子查询(结果集只有一行一列)
列子查询(结果集只有一列多行)
行子查询(结果集有一行多列)
表子查询(结果一般为多行多列)
一、where后面或having后面:
1.标量子查询(单行子查询)
2.列子查询(多行子查询)
3.行子查询(多行多列)
特点:
(1)子查询放在小括号内
(2)子查询一般放在条件的右侧
(3)标量子查询,一般搭配着单行操作符> < >= <= = <>
列子查询 一般搭配多行操作符使用 IN、any/some、all
(4)子查询的执行优于主查询的执行,主查询的条件用到了子查询的结果
1.标量子查询
案例1.谁的工资比Abel高?
select last_name
from employees
where salary>(
select salary
from employees
where last_name='Abel'
);
案例2.查询最低工资大于50号部门最低工资的部门id和其最低工资
select department_id,min(salary)
from employees
group by department_id
having min(salary)>(
select min(salary)
from employees
where departmen_id=50
);
2.列子查询(一列多行)
案例1.返回location_id是1400或1700的部门中所有员工姓名
select last_name
from employees
where department_id in (
select distinct department_id
from departments
where location_id in (1400,1700)
);
3.行子查询
案例1.查询员工编号最小并且工资最高的员工信息
select *
from employees
where (employee_id,salary)=(
select min(employee_id),max(salary)
from employees
); 这种很少用
select *
from employees
where employee_id = (
select min(employee_id)
from employees
) and salary = (
select max(salary)
from employees
);
二、select后面(仅仅支持标量子查询)
案例1.查询每个部门的员工数
select d.*,(
select count(*)
from employees e
where e.department_id= d.department_id
) 个数
from departments d;
三、from后面
将子查询的结果当成一张表,必须起别名
案例:查询每个部门的平均工资的工资等级
select ag_dep.*,g.'grade_level'
from (
select avg(salary) ag,department_id
from employees
group by department_id
) ag_dep
inner join job_grades g
on ag_dep.ag between lowest_sal and highest_sal;
四、exists后面(相关子查询)
exists(完整的查询语句,结果只有1和0)
select exists(select employee_id from employees); 1
案例1:查询有员工的部门名
select department_name
from departments d
where exists(
select *
from employees e
where d.'department_id'=e.'department_id'
);
测试:
1.查询各部门中工资比本部门平均工资高的员工的员工号、姓名和工资
select employee_id,last_name,salary,e.department_id
from employees e
inner join (
select avg(salary) ag,department_id
from employees
group by department_id
) ag_dep
on e.'department_id' = ag_dep.'department_id'
where salary>ag_dep.ag;
分页查询
应用场景:
当要显示的数据一页显示不全,需要分页提交sql 请求
语法:
select 查询列表
from 表
【join type join 表2
on 连接条件
where 筛选条件
group by 分组字段
having 分组后筛选
order by 排序的字段】
limit offset,size;
offset要显示条目的起始索引(起始索引从0开始)
size 要显示的条目个数
特点:
(1)limit放在查询语句的最后
(2)公式
要显示的页数page,每页的条目数size
select 查询列表
from 表
limit (page-1)*size,size;
案例:
案例1.查询前五条员工信息
select * from employees limit 0,5;
案例2.查询第11条到第25条员工信息
select * from employees limit 10,15;
测试:
一、查询所有学员的邮箱用户名(注:邮箱中@前面的字符)
select substr(email,1,instr(email,'@')-1) 用户名 from stuinfo;
二、查询男生和女生的个数
select count(*) 个数,sex
from stuinfo
gruop by sex;
三、查询年龄大于18的所有学生的姓名和年级名称
select name,gradeName
from stuinfo s
inner join grade g
on s.'gradeId' = g.'id'
where age>18;
四、查询哪个年级的学生最小年龄>20岁
select min(age), gradeId
from stuinfo
group by gradeId
having min(age)>20;
五、试说出查询语句中涉及到的所有关键字,以及执行先后顺序
select 查询列表 7
from 表 1
连接类型 join 表2 2
on 连接条件 3
where 筛选条件 4
group by 分组字段 5
having 分组后筛选 6
order by 排序的字段 8
limit 偏移,条目数; 9
联合查询
union 联合 合并:将多条查询语句的结果合并成一个结果
语法:
查询语句1
union
查询语句2
union
......
应用场景:
要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时
特点:
1.要求多条语句的查询列数是一致的
2.要求多条查询语句的查询的每一列的类型和顺序最好一致
3.使用union默认是去重的,如果使用union all可以包含重复项
引入的案例:查询部门编号>90或邮箱包含a的员工信息
select * from employees where email like '%a%' or department_id>90;
select * from employees where email like '%a%'
union
select * from employees where department_id>90;
MySQL笔记之MySQL简单介绍及DQL语言相关推荐
- MySQL 笔记2 -- MySQL 基础
MySQL 笔记2 – MySQL 基础 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 一.MySQL 简介 ...
- 徐无忌MySQL笔记:MySQL数据库锁有几种?实现原理是什么?
徐无忌MySQL笔记:MySQL数据库锁有几种?实现原理是什么? 完成:第一遍 1.数据库并发控制通过什么实现? 当多个事务并发方法对同一个数据进行操作 通过数据库锁实现对数据库的并发控制. 2.锁类 ...
- 涂抹mysql 完整_涂抹mysql笔记-管理mysql服务
$ /mysql/scripts/mysql_install_db --datadir=/mysql/data --basedir=/mysql support-files/mysql.server脚 ...
- 【python MySQL 笔记】MySQL 查询
[python MySQL 笔记]MySQL 查询 目录 1.数据准备和基本查询 1.1. 数据准备 1.2.基本查询 2. 条件查询 2.1. 比较运算符 2.2. 逻辑运算符 2.3. 模糊查询 ...
- mysql binlog update_mysql binlog 简单介绍与基于binlog数据恢复
mysql binlog 简单介绍与基于binlog数据恢复 通过备份文件恢复 binlog(本节重点) binlog 二进制日志文件 show variables like 'log_bin'; 二 ...
- MySQL笔记01: MySQL入门_1.2 MySQL下载安装与配置
2.2 MySQL下载安装与配置 2.2.1 MySQL下载 MySQL中文官网:MySQL MySQL英文官网:MySQL MySQL官网下载地址:MySQL :: MySQL Downloads ...
- mysql笔记 SQL语句简单的增删改查
文章目录 mysql来源 navicat快捷键 mysql数据库语言分类 DQL 简单查询 条件查询 模糊查询 分组查询 使用limit字句 多表查询 在增删改句子中使用子查询 排序 显示当前使用数据 ...
- MySQL分库分表简单介绍
分库.分表 一.前言 二.分片(类似分库) 三.Scale Out/Scale Up 和 垂直切分/水平拆分 四.分表和分区 五.分表与分库 六.分区与分片区别 一.前言 数据库的数据量达到一定程度之 ...
- mysql 去掉日期.0_简单介绍MySQL数据库中日期中包含零值的问题
下面小编就为大家带来一篇浅谈MySQL数据库中日期中包含零值的问题.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 默认情况下MySQL是可以接受在日期中插入0值,对于现 ...
最新文章
- 请给出一个算法,使之对于给定的介于0到k之间的n个整数进行预处理,并能在O(1)时间内,回答出输入的整数中有多少个落在区间[a..b]内,你给出的算法上预处理时间应是O(n+k)。...
- TED:如何掌控你的自由时间以及让自己变得更好,这样就能看到爱情应有的样子...
- Oracle 原理: 过程和函数
- 详解SQL中drop、delete和truncate的异同
- 下载 嵌入式qt实战教程pdf_Qt之JSON教程-实战篇
- Nginx handler模块
- Windows域控 设置全域的密码策略 【全域策略生效】
- TreeMap、HashMap、LinkedHashMap的区别
- 拓端tecdat|R语言使用倾向评分提高RCT(随机对照试验)的效率
- 大喇叭疫情防控广播解决方案
- linux mkdir命令用法,常用Linux运维命令 - mkdir命令用法详解
- 瑞昱网卡linux通用驱动下载,Realtek网卡驱动Win10-Realtek瑞昱通用网卡驱动Win10版下载 v10.003.0728.2015官方版--pc6下载站...
- 易飞ERP--电子表单派班中心异常Illegal EasyFlow Account !-resak001
- win7 计算机不显示收藏夹,win7系统下收藏夹无法使用的原因及解决方法
- 2019,flutter推流
- 静电放电防护设计规范和指南
- MongoDB命令 日期查询
- 蓝牙技术|蓝牙智能笔方案简介
- 我花了一天,做了一款和「百度」比肩的 OCR 图片识字工具 iText
- Git clone 提示“Could not resolve hostname”解决