[JavaWeb]【七】web后端开发-MYSQL

news2025/1/19 23:11:42

前言:MySQL是一种流行的关系型数据库管理系统,它的作用是存储和管理数据。在Web开发中,MySQL是必备的数据库技能之一,因为它可以帮助Web开发人员处理大量的数据,并且提供了强大的数据查询和管理功能。

一 数据库介绍

1.1 什么是数据库

 1.2 数据库产品

二 MySQL概述

2.1 下载

点开下面的链接:https://dev.mysql.com/downloads/mysql/

点击Download 就可以下载对应的安装包了, 安装包如下:

2.2 解压

下载完成后我们得到的是一个压缩包,将其解压,我们就可以得到MySQL 8.0.31 的软件本体了(就是一个文件夹),我们可以把它放在你想安装的位置 。

2.3 配置

2.3.1. 添加环境变量

环境变量里面有很多选项,这里我们只用到Path这个参数。为什么在初始化的开始要添加环境变量呢?

在黑框(即CMD)中输入一个可执行程序的名字,Windows会先在环境变量中的Path所指的路径中寻找一遍,如果找到了就直接执行,没找到就在当前工作目录找,如果还没找到,就报错。我们添加环境变量的目的就是能够在任意一个黑框直接调用MySQL中的相关程序而不用总是修改工作目录,大大简化了操作。

右键此电脑属性,点击高级系统设置

点击环境变量

系统变量中新建MYSQL_HOME

系统变量中找到并双击Path

点击新建

 最后点击确定。

如何验证是否添加成功?

右键开始菜单(就是屏幕左下角),选择命令提示符(管理员),打开黑框,敲入mysql,回车。

如果提示Can't connect to MySQL server on 'localhost'则证明添加成功;

如果提示mysql不是内部或外部命令,也不是可运行的程序或批处理文件则表示添加添加失败,请重新检查步骤并重试。

2.3.2. 初始化MySQL

==以管理员身份,运行命令行窗口:==

在刚才的命令行中,输入如下的指令:

mysqld --initialize-insecure

稍微等待一会,如果出现没有出现报错信息,则证明data目录初始化没有问题,此时再查看MySQL目录下已经有data目录生成。

tips:如果出现如下错误

是由于权限不足导致的,以管理员方式运行 cmd

2.3.3. 注册MySQL服务

命令行(注意必须以管理员身份启动)中,输入如下的指令,回车执行:

mysqld -install

现在你的计算机上已经安装好了MySQL服务了。

2.3.4. 启动MySQL服务

在黑框里敲入net start mysql,回车。

net start mysql  // 启动mysql服务
    
net stop mysql  // 停止mysql服务

 2.3.5. 修改默认账户密码

在黑框里敲入mysqladmin -u root password 1234,这里的1234就是指默认管理员(即root账户)的密码,可以自行修改成你喜欢的。

mysqladmin -u root password 1234

2.4 登录MySQL

右键开始菜单,选择命令提示符,打开黑框。 在黑框中输入,mysql -uroot -p1234,回车,出现下图且左下角为mysql>,则登录成功。

mysql -uroot -p1234

到这里你就可以开始你的MySQL之旅了!

退出mysql:

exit
quit

登陆参数:

mysql -u用户名 -p密码 -h要连接的mysql服务器的ip地址(默认127.0.0.1) -P端口号(默认3306)

2.5卸载MySQL

如果你想卸载MySQL,也很简单。

点击开始菜单,输入cmd,选择 "命令提示符",选择右侧的 "以管理员身份运行"。

敲入net stop mysql,回车。

net stop mysql

再敲入mysqld -remove mysql,回车。

mysqld -remove mysql

最后删除MySQL目录及相关的环境变量。

至此,MySQL卸载完成!

2.2 数据模型

 

2.3 SQL简介

 

 

三 数据库设计-DDL

3.1 数据库操作

3.2 MySQL客户端工具

IDEA

 

 

3.2 数据类型 

3.2.1 数值类型

3.2.2 字符串类型

3.2.3 日期时间类型

  

3.2.4 案例

  

create table tb_emp
(
    id          int auto_increment comment 'ID 主键'
        primary key,
    username    varchar(20)                  not null comment '用户名',
    password    varchar(32) default '123456' not null comment '密码',
    name        varchar(10)                  not null comment '姓名',
    gender      tinyint unsigned             not null comment '性别(1男  2 女)',
    image       varchar(300)                 null comment '图形url',
    job         tinyint unsigned             null comment '职位(1、班主任 2 讲师 3 学生主管 4 教研主管)',
    entrydate   date                         null comment '入职日期',
    create_time datetime                     not null comment '创建时间',
    update_time datetime                     not null comment '修改时间'
)
    comment '员工表';

3.3 表(创建、查询、修改、删除)

3.3.1 创建表

 


create table tb_user(
    id int primary key auto_increment comment 'id,唯一标识',
    username varchar(20) not null unique comment '用户名',
    name varchar(10) not null comment '姓名',
    age int comment '年龄',
    gender char(1) default '男' comment '性别'
) comment '用户表';

 3.3.2 查询

 

 3.3.3 修改

 

3.3.4 删除

 

四 数据库操作-DML

 4.1 添加数据 - insert

4.2 修改数据 - update

4.3 删除数据 - delete

 

 

 4.4 总结

 

五 数据库操作-DQL

 

 

5.1 创建db02数据库,并执行脚本

-- 员工管理(带约束)
create table tb_emp (
                        id int unsigned primary key auto_increment comment 'ID',
                        username varchar(20) not null unique comment '用户名',
                        password varchar(32) default '123456' comment '密码',
                        name varchar(10) not null comment '姓名',
                        gender tinyint unsigned not null comment '性别, 说明: 1 男, 2 女',
                        image varchar(300) comment '图像',
                        job tinyint unsigned comment '职位, 说明: 1 班主任,2 讲师, 3 学工主管, 4 教研主管',
                        entrydate date comment '入职时间',
                        create_time datetime not null comment '创建时间',
                        update_time datetime not null comment '修改时间'
) comment '员工表';

-- 准备测试数据
INSERT INTO tb_emp (id, username, password, name, gender, image, job, entrydate, create_time, update_time) VALUES
                                                                                                               (1, 'jinyong', '123456', '金庸', 1, '1.jpg', 4, '2000-01-01', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
                                                                                                               (2, 'zhangwuji', '123456', '张无忌', 1, '2.jpg', 2, '2015-01-01', '2022-10-27 16:35:33', '2022-10-27 16:35:37'),
                                                                                                               (3, 'yangxiao', '123456', '杨逍', 1, '3.jpg', 2, '2008-05-01', '2022-10-27 16:35:33', '2022-10-27 16:35:39'),
                                                                                                               (4, 'weiyixiao', '123456', '韦一笑', 1, '4.jpg', 2, '2007-01-01', '2022-10-27 16:35:33', '2022-10-27 16:35:41'),
                                                                                                               (5, 'changyuchun', '123456', '常遇春', 1, '5.jpg', 2, '2012-12-05', '2022-10-27 16:35:33', '2022-10-27 16:35:43'),
                                                                                                               (6, 'xiaozhao', '123456', '小昭', 2, '6.jpg', 3, '2013-09-05', '2022-10-27 16:35:33', '2022-10-27 16:35:45'),
                                                                                                               (7, 'jixiaofu', '123456', '纪晓芙', 2, '7.jpg', 1, '2005-08-01', '2022-10-27 16:35:33', '2022-10-27 16:35:47'),
                                                                                                               (8, 'zhouzhiruo', '123456', '周芷若', 2, '8.jpg', 1, '2014-11-09', '2022-10-27 16:35:33', '2022-10-27 16:35:49'),
                                                                                                               (9, 'dingminjun', '123456', '丁敏君', 2, '9.jpg', 1, '2011-03-11', '2022-10-27 16:35:33', '2022-10-27 16:35:51'),
                                                                                                               (10, 'zhaomin', '123456', '赵敏', 2, '10.jpg', 1, '2013-09-05', '2022-10-27 16:35:33', '2022-10-27 16:35:53'),
                                                                                                               (11, 'luzhangke', '123456', '鹿杖客', 1, '11.jpg', 2, '2007-02-01', '2022-10-27 16:35:33', '2022-10-27 16:35:55'),
                                                                                                               (12, 'hebiweng', '123456', '鹤笔翁', 1, '12.jpg', 2, '2008-08-18', '2022-10-27 16:35:33', '2022-10-27 16:35:57'),
                                                                                                               (13, 'fangdongbai', '123456', '方东白', 1, '13.jpg', 1, '2012-11-01', '2022-10-27 16:35:33', '2022-10-27 16:35:59'),
                                                                                                               (14, 'zhangsanfeng', '123456', '张三丰', 1, '14.jpg', 2, '2002-08-01', '2022-10-27 16:35:33', '2022-10-27 16:36:01'),
                                                                                                               (15, 'yulianzhou', '123456', '俞莲舟', 1, '15.jpg', 2, '2011-05-01', '2022-10-27 16:35:33', '2022-10-27 16:36:03'),
                                                                                                               (16, 'songyuanqiao', '123456', '宋远桥', 1, '16.jpg', 2, '2010-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:05'),
                                                                                                               (17, 'chenyouliang', '12345678', '陈友谅', 1, '17.jpg', null, '2015-03-21', '2022-10-27 16:35:33', '2022-10-27 16:36:07'),
                                                                                                               (18, 'zhang1', '123456', '张一', 1, '2.jpg', 2, '2015-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:09'),
                                                                                                               (19, 'zhang2', '123456', '张二', 1, '2.jpg', 2, '2012-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:11'),
                                                                                                               (20, 'zhang3', '123456', '张三', 1, '2.jpg', 2, '2018-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:13'),
                                                                                                               (21, 'zhang4', '123456', '张四', 1, '2.jpg', 2, '2015-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:15'),
                                                                                                               (22, 'zhang5', '123456', '张五', 1, '2.jpg', 2, '2016-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:17'),
                                                                                                               (23, 'zhang6', '123456', '张六', 1, '2.jpg', 2, '2012-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:19'),
                                                                                                               (24, 'zhang7', '123456', '张七', 1, '2.jpg', 2, '2006-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:21'),
                                                                                                               (25, 'zhang8', '123456', '张八', 1, '2.jpg', 2, '2002-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:23'),
                                                                                                               (26, 'zhang9', '123456', '张九', 1, '2.jpg', 2, '2011-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:25'),
                                                                                                               (27, 'zhang10', '123456', '张十', 1, '2.jpg', 2, '2004-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:27'),
                                                                                                               (28, 'zhang11', '123456', '张十一', 1, '2.jpg', 2, '2007-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:29'),
                                                                                                               (29, 'zhang12', '123456', '张十二', 1, '2.jpg', 2, '2020-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:31');


 5.2 select语法-基本查询

 

--  =================== DQL: 基本查询 ======================
-- 1. 查询指定字段 name,entrydate 并返回
select name,entrydate from tb_emp;


-- 2. 查询返回所有字段
select id, username, password, name, gender, image, job, entrydate, create_time, update_time from tb_emp;
select * from tb_emp;

-- 3. 查询所有员工的 name,entrydate, 并起别名(姓名、入职日期)
select name as 姓名,entrydate as 入职日期 from tb_emp;
select name 姓名,entrydate 入职日期 from tb_emp;
select name '姓  名',entrydate 入职日期 from tb_emp;

-- 4. 查询已有的员工关联了哪几种职位(不要重复)
select distinct  job from tb_emp;


 5.3 select语法-条件查询

 

--  =================== DQL: 条件查询 ======================
-- 1. 查询 姓名 为 杨逍 的员工
select * from tb_emp where name='杨逍';

-- 2. 查询 id小于等于5 的员工信息
select * from tb_emp where id <= 5;

-- 3. 查询 没有分配职位 的员工信息
select * from tb_emp where job is null;

-- 4. 查询 有职位 的员工信息
select * from tb_emp where job is not null;

-- 5. 查询 密码不等于 '123456' 的员工信息
select * from tb_emp where password != '123456';
select * from tb_emp where password <> '123456';

-- 6. 查询 入职日期 在 '2000-01-01' (包含) 到 '2010-01-01'(包含) 之间的员工信息
select * from tb_emp where entrydate >='2000-01-01' and entrydate <='2100-01-01';
select * from tb_emp where entrydate between '2000-01-01' and '2100-01-01';
-- 7. 查询 入职时间 在 '2000-01-01' (包含) 到 '2010-01-01'(包含) 之间 且 性别为女 的员工信息
select * from tb_emp where entrydate between '2000-01-01' and '2100-01-01' and gender = 2;


-- 8. 查询 职位是 2 (讲师), 3 (学工主管), 4 (教研主管) 的员工信息
select * from tb_emp where job ='2'or job= '3' or job='4';
select * from tb_emp where job in(2, 3, 4);
-- 9. 查询 姓名 为两个字的员工信息
select * from tb_emp where name like '__';

-- 10. 查询 姓 '张' 的员工信息
select * from tb_emp where name like '张%';

 5.4 select语法-分组查询

 

 

 

--  =================== DQL: 分组查询 ======================
-- 聚合函数

-- 1. 统计该企业员工数量
-- A 字段
select count(id) from tb_emp;
-- B 常量
select count(1) from tb_emp;

-- C *
select count(*) from tb_emp;

-- 2. 统计该企业员工 ID 的平均值
select avg(id) from tb_emp;

-- 3. 统计该企业最早入职的员工
select min(entrydate) from tb_emp;

-- 4. 统计该企业最迟入职的员工
select max(entrydate) from tb_emp;

-- 5. 统计该企业员工的 ID 之和
select sum(id) from tb_emp;



-- 分组
-- 1. 根据性别分组 , 统计男性和女性员工的数量
select gender,count(*) from tb_emp group by gender;

-- 3. 先查询入职时间在 '2015-01-01' (包含) 以前的员工 , 并对结果根据职位分组 , 获取员工数量大于等于2的职位
select job,count(*) from tb_emp where entrydate <= '2015-01-01' group by job having count(*) >= 2 ;

5.5 select语法-排序查询

 

 

--  =================== 排序查询 ======================
-- 1. 根据入职时间, 对员工进行升序排序
select * from tb_emp order by entrydate;
select * from tb_emp order by entrydate asc;

-- 2. 根据入职时间, 对员工进行降序排序
select * from tb_emp order by entrydate desc ;

-- 3. 根据 入职时间 对公司的员工进行 升序排序 , 入职时间相同 , 再按照 更新时间 进行降序排序
select * from tb_emp order by entrydate,update_time desc ;

 5.6 select语法-分页查询

--  =================== 分页查询 ======================
-- 1. 从起始索引0开始查询员工数据, 每页展示5条记录
select * from tb_emp limit 0,5;

-- 2. 查询 第1页 员工数据, 每页展示5条记录
select * from tb_emp limit 0,5;

-- 3. 查询 第2页 员工数据, 每页展示5条记录
select * from tb_emp limit 5,5;

-- 4. 查询 第3页 员工数据, 每页展示5条记录
select * from tb_emp limit 10,5;

-- 5467 起始索引计算公式 = (页码- 1) * 每页展示记录数

select * from tb_emp limit 10,5;

 5.7 案例1

  

select *
from tb_emp
where name like '张%'
  and gender = 1
  and entrydate between '2000-01-01' and '2015-12-31'
order by update_time desc
limit 0, 10;

 5.8 案例2

 

-- 2.1
select if(gender=1,'男性员工','女性员工') 性别,count(*) from tb_emp group by gender;

-- 2-2
select (case job when 1 then '班主任' when 2 then '讲师' when 3 then '学生主管'  when 4 then '教研主管' else '未分配职位' end ) as 职位,count(*) from tb_emp group by job;

 5.9 总结

 

六 多表设计

 

6.1 一对多

 

 ​​​​​​​

 

 

-- 部门管理
create table tb_dept(
    id int unsigned primary key auto_increment comment '主键ID',
    name varchar(10) not null unique comment '部门名称',
    create_time datetime not null comment '创建时间',
    update_time datetime not null comment '修改时间'
) comment '部门表';


-- 员工管理(带约束)
create table tb_emp (
  id int unsigned primary key auto_increment comment 'ID',
  username varchar(20) not null unique comment '用户名',
  password varchar(32) default '123456' comment '密码',
  name varchar(10) not null comment '姓名',
  gender tinyint unsigned not null comment '性别, 说明: 1 男, 2 女',
  image varchar(300) comment '图像',
  job tinyint unsigned comment '职位, 说明: 1 班主任,2 讲师, 3 学工主管, 4 教研主管',
  entrydate date comment '入职时间',
  dept_id int unsigned comment '部门ID',
  create_time datetime not null comment '创建时间',
  update_time datetime not null comment '修改时间'
) comment '员工表';


insert into tb_dept (id, name, create_time, update_time) values
        (1,'学工部',now(),now()),(2,'教研部',now(),now()),(3,'咨询部',now(),now()),
        (4,'就业部',now(),now()),(5,'人事部',now(),now());

INSERT INTO tb_emp
	(id, username, password, name, gender, image, job, entrydate,dept_id, create_time, update_time) VALUES
	(1,'jinyong','123456','金庸',1,'1.jpg',4,'2000-01-01',2,now(),now()),
	(2,'zhangwuji','123456','张无忌',1,'2.jpg',2,'2015-01-01',2,now(),now()),
	(3,'yangxiao','123456','杨逍',1,'3.jpg',2,'2008-05-01',2,now(),now()),
	(4,'weiyixiao','123456','韦一笑',1,'4.jpg',2,'2007-01-01',2,now(),now()),
	(5,'changyuchun','123456','常遇春',1,'5.jpg',2,'2012-12-05',2,now(),now()),
	(6,'xiaozhao','123456','小昭',2,'6.jpg',3,'2013-09-05',1,now(),now()),
	(7,'jixiaofu','123456','纪晓芙',2,'7.jpg',1,'2005-08-01',1,now(),now()),
	(8,'zhouzhiruo','123456','周芷若',2,'8.jpg',1,'2014-11-09',1,now(),now()),
	(9,'dingminjun','123456','丁敏君',2,'9.jpg',1,'2011-03-11',1,now(),now()),
	(10,'zhaomin','123456','赵敏',2,'10.jpg',1,'2013-09-05',1,now(),now()),
	(11,'luzhangke','123456','鹿杖客',1,'11.jpg',1,'2007-02-01',1,now(),now()),
	(12,'hebiweng','123456','鹤笔翁',1,'12.jpg',1,'2008-08-18',1,now(),now()),
	(13,'fangdongbai','123456','方东白',1,'13.jpg',2,'2012-11-01',2,now(),now()),
	(14,'zhangsanfeng','123456','张三丰',1,'14.jpg',2,'2002-08-01',2,now(),now()),
	(15,'yulianzhou','123456','俞莲舟',1,'15.jpg',2,'2011-05-01',2,now(),now()),
	(16,'songyuanqiao','123456','宋远桥',1,'16.jpg',2,'2010-01-01',2,now(),now()),
	(17,'chenyouliang','123456','陈友谅',1,'17.jpg',NULL,'2015-03-21',NULL,now(),now());



  填空外键约束

 ​​​​​​​

 

 

6.2 一对一

6.3 多对多

七 事务

八 多表查询

九 索引

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/895863.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电煎锅出口欧洲CE认证标准

电煎锅是家庭烹饪中比较常见的电器&#xff0c;一般家庭在日常生活中都会使用&#xff0c;所以电煎锅具有广大的市场&#xff0c;尤其在欧洲市场更是日常烹饪离不开的家庭电器。欧洲是我国出口比例占比较大的地区&#xff0c;每年出口到欧洲的家庭电器占很大一部分。而根据欧盟…

3 Python的数据类型

概述 在上一节&#xff0c;我们介绍了Python的基础语法&#xff0c;包括&#xff1a;编码格式、标识符、关键字、注释、多行、空行、缩进、引号、输入输出、import、运算符、条件控制、循环等内容。Python是一种动态类型的编程语言&#xff0c;这意味着当你创建一个变量时&…

解决c/c++ Error: redefinition of ‘xxx’ 的问题

错误信息 两个类/文件同时引用定义ReplyInfo的头文件&#xff0c;会造成头文件中定义重复定义 如两个类/文件重复引用massage文件报错 message.h:36:16: error: redefinition of struct MSG_SERVOCTRL message.h:40:2: error: conflicting types for servoctrl解决 一般是目…

[SWPUCTF 2022 新生赛]ez_ez_php

这段代码是一个简单的PHP文件处理脚本。让我们逐行进行分析&#xff1a; error_reporting(0); - 这行代码设置了错误报告的级别为0&#xff0c;意味着不显示任何错误。 if (isset($_GET[file])) { - 这行代码检查是否存在一个名为"file"的GET参数。 if ( substr($_…

步步为赢:打造一个酷炫而吸引人的Hadoop HDFS分布式文件系统集群部署方案

文章目录 版权声明一 分布式存储缘起二 分布式的基础架构2.1 大数据架构模式2.2 主从模式 三 HDFS的基础架构HDFS的角色组成 四 HDFS集群环境部署4.1 安装包下载4.2 Hadoop安装包目录结构4.3 修改配置文件&#xff0c;应用自定义设置4.4 分发Hadoop文件夹4.5 配置环境变量4.6 授…

【论文笔记】基于指令回译的语言模型自对齐-MetaAI

MetaAI最近发布的Humpback&#xff0c;论文链接&#xff1a;https://arxiv.org/abs/2308.06259 解决什么问题&#xff1f; 大量高质量的指令微调数据集的生成。 思路 在这项工作中&#xff0c;我们通过开发迭代自训练算法来利用大量未标记的数据来创建高质量的指令调优数据集…

IC流程中 DFT 学习笔记(2)

引言 DFT是ASIC芯片设计流程中不可或缺的环节。其主要目的是在芯片前端设计验证完成后插入一些诸如寄存器链等可供测试的逻辑&#xff0c;算是IC后端设计的范畴&#xff0c;属于结构测试而非功能测试。主要是在ASIC芯片流片完成后&#xff0c;通过这些已插入的逻辑&#xff0c…

Rancher-RKE-install 部署k8s集群

一、为什么用Rancher-RKE-install 1.CNCF认证的k8s安装程序。 2.有中文文档。 二、安装步骤 1.下载Rancher-Rke的二进制包-下面是项目的地址 GitHub - rancher/rke: Rancher Kubernetes Engine (RKE), an extremely simple, lightning fast Kubernetes distrib…

javaScript:还有人不会js中的Math方法?

目录 一.前言 二.Math方法 1.Math.floor()向下取整&#xff08;重点&#xff09; 示例 注意 2.Math.ceil()向上取整 示例 3.Math.round() 四舍五入 示例 4.Math.random()随机数&#xff08;重点&#xff09; 范围 示例 m-n之间的随机整数数(重点) 示例 输出10个[2…

时序结构重要性加权图卷积网络用于时序知识图谱补全

目录 摘要部分 四元数 时间戳 时间信息对四元数的影响 知识图谱里的结构信息 时序注意模块 重要性加权的图卷积网络 引言部分 现有方法的不足 本文主要贡献 准备工作 问题定义 大部分方法的缺陷 本文方法 框架 时序注意模块 实体分类 带有注意力机制的双向长短…

Spring-MVC的数据响应-19

在访问服务端MVC的时候&#xff0c;这个controller层进行相应操作之后 他要做两件事&#xff1a;页面跳转和返回字符串&#xff0c;在做完这些操作之后&#xff0c;我们一般进行页面展示:排除页面展示之外&#xff0c;有些需求可能直接回写给我们一些数据&#xff1a; 页面跳…

实验一 Hbase的安装部署与基本操作

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目…

gcc语法解析如何解决dangling else的问题?

GCC上古版本&#xff08;3.4&#xff09;还有yacc&#xff0c;学习GCC如何实现if else 嵌套的问题。即&#xff1a; 问题 else后面的if到底是else if语义 if (xxx)a1 else if (xxx) a2还是 else (语法块中的if else)。 if (xxx)a1 else if (xxx) a 2 else a2;PostgreSQL的…

Codeforces Round 881 Div.3

文章目录 贪心&#xff1a;A. Sasha and Array Coloring结论&#xff1a;B. Long Long性质&#xff1a;C. Sum in Binary Treedfs求叶子数量&#xff1a;D. Apple Tree二分与前缀和&#xff1a;E. Tracking Segments 贪心&#xff1a;A. Sasha and Array Coloring Problem - A…

作为10年的测试人员给学习软件测试的几点建议

下面几点给做测试的朋友参考一下&#xff1a; 1、钱肯定少过开发人员&#xff0c;除非你工作3&#xff0c;4年才能拿年薪10W以上。 2、加班的现象可以说是很普遍&#xff0c;周一到周五随时加班是很正常的&#xff0c;周末肯定有一天要加班。 3、不管怎么样努力和用什么测试效…

ROS局部路径规划器插件teb_local_planner流程梳理(上)

在我之前的文章《ROS导航包Navigation中的 Movebase节点路径规划相关流程梳理》中已经介绍过Move_base节点调用局部路径规划器插件的接口函数是computeVelocityCommands&#xff0c;接下来&#xff0c;我们就从这个函数入手梳理一下teb_local_planner功能包的工作流程。 ☆注&a…

Vue使用Element的表格Table显示树形数据,多选框全选无法选中全部节点

使用Element的组件Table表格&#xff0c;当使用树形数据再配合上多选框&#xff0c;如下&#xff1a; 会出现一种问题&#xff0c;点击左上方全选&#xff0c;只能够选中一级树节点&#xff0c;子节点无法被选中&#xff0c;如图所示&#xff1a; 想要实现点击全选就选中所有的…

强强联手:Eyeshot 2023.2 集成 CAD Exchanger SDK 3.21 Crack

Lab 中的新绘图模式和网格抽取、Eyeshot 集成以及从 CAD Exchanger 3.21.0 中的 CATIA 导入图形 PMI 通过探索新的绘图模式和可调整的网格抽取&#xff0c;更深入地了解实验室&#xff0c;见证与 devDept Eyeshot 的无缝集成&#xff0c;并直接从 CATIA 导入图形 PMI。 今年 8…

阿里云100元预算可选的云服务器配置2核2G3M带宽

阿里云服务器100元可以买到哪些配置&#xff1f;如果是一年时长&#xff0c;轻量应用服务器2核2G3M带宽一年108元&#xff0c;系统盘为50GB高效云盘。以前阿里云服务器ECS卖过35元一年、69元、88元、89元和99元的都有过&#xff0c;但是现在整体费用上涨&#xff0c;入门级云服…

超实用的40道JAVA经典算法题(含答案)

作为一名Java程序员&#xff0c;想要拿到一份满意的offer&#xff0c;就必须做好充足的准备。众所周知&#xff0c;算法可以说是大厂面试Java程序员的必问题。好的算法可以让性能得到万倍提升&#xff0c;做到毫秒级处理千万数据的程度。因此&#xff0c;算法的重要性不言而喻&…