MySQL(单表)知识点

文章目录

  • 1.数据库的概念
  • 2.下载并配置MySQL
    • 2.1初始化MySQL的数据
    • 2.2注册MYSQL服务
    • 2.3启动MYSQL服务
    • 2.4修改账户默认密码
    • 2.5登录MYSQL
    • 2.6卸载MYSQL
  • 3.MYSQL数据模型
    • 3.1连接数据库
  • 4.SQL简介
    • 4.1SQL的通用语法
    • 4.2SQL语句的分类
    • 4.3DDL语句
      • 4.3.1数据库
      • 4.3.2表(创建,查询,修改,删除)
      • 4.3.3对数据库中约束的详细说明
      • 4.3.4DDL语句中的数据类型
    • 4.4使用IDEA连接数据库
    • 4.4.1在IDEA中对数据库进行操作
    • 4.5DML语句
      • 4.5.1添加数据(INSERT)
      • 4.5.2修改数据(UPDATE)
      • 4.5.3 删除数据(DELETE)
    • 4.6DQL语句
      • 4.6.1DQL语法
      • 4.6.2基本查询
      • 4.6.3条件查询
      • 4.6.4分组查询
      • 4.6.5排序查询
      • 4.6.6分页查询
  • 5.综合案例
    • 5.1案例
    • 5.2if条件表达式
    • 5.3case表达式

1.数据库的概念

数据库:DataBase(DB),是村粗和管理数据的仓库
数据库管理系统:DataBase Management System(DBMS),操纵和管理数据库的大型软件
SQL:Structured Query Language(结构化查询语言),操作关系型数据库的变成语言,定义了一套操作关系型数据库的统一标准

2.下载并配置MySQL

MySQL的官网:MySQL :: Download MySQL Community Server

  1. 下载安装包并解压

  2. 配置环境变量
    ![[Pasted image 20250227215121.png]]

  3. 检验环境变量是否配置成功
    在命令行中输入mysql
    出现下面错误信息为配置成功
    ![[Pasted image 20250227215307.png]]

2.1初始化MySQL的数据

在管理员身份的命令行中输入

mysqld --initialize-insecure

![[Pasted image 20250227215923.png]]

2.2注册MYSQL服务

在管理员身份的命令行中执行下面的指令

mysqld -install

![[Pasted image 20250228084804.png]]

![[Pasted image 20250228085040.png]]

MYSQL成功注册成系统服务并在开机时自动启动

2.3启动MYSQL服务

在命令行下输入下面的指令,分别为启动MYSQL服务和停止MYSQL服务

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

![[Pasted image 20250228091423.png]]

2.4修改账户默认密码

mysqladmin -u root password 1234

1234为修改后的密码-可以任意修改自己喜欢的(我的密码与校园圈密码相同)

2.5登录MYSQL

mysql -uroot -p1234(1234部分修改成自己的密码)//登录
exit//退出
或
quit//退出

-u+用户名 -p+密码

使用更安全的方法登录MYSQL
先输入

mysql -uroot -p

再输入密码
![[Pasted image 20250228092507.png]]

2.6卸载MYSQL

以管理员身份执行命令行,输入

net stop mysql+回车
mysqld -remove mysql+回车

最后删除相关的目录及环境变量
语法

mysql -u用户名 -p密码[-h数据库服务器IP地址(不指定时为0.0.1) -p端口号(不指定端口号时使用默认端口号3306)]

3.MYSQL数据模型

  • 关系型数据库(RDBMS):建立在关系模型的基础上,由多张相互连接的二维表组成的数据库

3.1连接数据库

创建一个新的数据库
登录后使用命令

CREATE DATABASE 数据库名字;

![[Pasted image 20250228112819.png]]

一个数据库服务器中可以创建多个数据库,而且数据库之间是相互独立,互不影响的

4.SQL简介

SQL:一门操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准

4.1SQL的通用语法

  1. SQL语句可以单行或多行书写,以分号结尾
  2. SQL语句可以使用空格/缩进来增强语句的可读性
  3. MSQL数据库的SQL语句不区分大小写
  4. 注释
  1. 单行注释:--注释内容或#注释内容(MYSQL特有)
  2. 多行注释:/*注释内容*/

4.2SQL语句的分类

  1. DDL:(Data Definition Language)-数据定义语言,用来定义数据库对象(数据库,表,字段)
  2. DML:(Data manipulation Language)-数据操作语言,用来对数据库中的数据进行增删改
  3. DQL:(Data Query Language)-数据查询语言,用来查询数据库中表的记录
  4. DCL:(Data Control Language)-数据控制语言,用来创建数据库用户,控制数据库的访问权限

4.3DDL语句

DDL:(Data Definition Language)-数据定义语言,用来定义数据库对象(数据库,表,字段)

4.3.1数据库

  1. 查询
  • 查询所有数据库
show databases;
  • 查询当前数据库
select databases();
  1. 使用
  • 使用数据库
use 数据库名;
  1. 创建
  • 创建数据库
create database[if not exists] 数据库名;
  1. 删除
  • 删除数据库
drop database[if exists] 数据库名;

注意:上述语法中的database也可以替换成schema

4.3.2表(创建,查询,修改,删除)

  1. 表结构的创建
    语法:
creat table 表名(
      字段1 字段类型[约束][comment 字段1注释],
      ......
      字段n 字段类型[约束][comme nt 字段n注释]
)[comment 表注释];

==注意:==语法中[]的内容是可选的,可以加也可以不加
例:创建下图表结构
![[Pasted image 20250303115039.png]]

create table tb_user(  
    id int comment 'ID,唯一标识',  
    username varchar(20) comment'用户名',  
    name varchar(10) comment'姓名',  
    age int comment '年龄',  
    gender char(1) comment'性别'  
)comment '用户表';  
-- varchar相当于java中的字符串类型 varchar(20)表示该字符串长度最长为20\  
-- comment后面为字段的注释

![[Pasted image 20250303115306.png]]

  1. 表结构的查询
  • 查询当前数据库的所有表
show tables;
  • 查询表结构
desc 表名;
  • 查询建表语句
show create table 表名;
  1. 修改表结构
-- 添加字段
alter table 表名 add 字段名 类型(长度)[comment 注释][约束]
-- 修改字段类型
alter table 表名 modify 旧字段名 新字段名 类型(长度)[comment 注释][约束]
-- 修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度)[comment 注释][约束]
-- 删除字段
alter table表名 drop column字段名
-- 修改表名
rename table 表名 to 新表名
  1. 删除表结构
drop table[if eists]表名;

4.3.3对数据库中约束的详细说明

概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据
目的:保证数据库中数据的正确性,有效性和完整性

  1. 非空约束:限制字段值不能为空,not null
  2. 唯一约束:保证字段的所有数据都是唯一的,不重复的,unique
  3. 主键约束:主键是一行数据的唯一标识,要求非空且唯一,primary key(auto_increment自增)
    auto_increment:自动从1往上增长
  4. 默认约束:保存数据时,如果未指定该字段值,则采用默认值,default(default要加默认值)
  5. 外键约束:让两张表的数据建立连接,保证数据的一致性和完整性,foreign key

例:在创建的数据库表示中添加约束
![[Pasted image 20250303161559.png]]

-- 创建:基本语法(约束)  
create table tb_user(  
    id int unique auto_increment comment'ID,唯一标识',  
    username varchar(20) primary key comment '用户名',  
    name varchar(10) not null comment'姓名',  
    age int comment '年龄',  
    gender char(1) default'男' comment'性别'  
)comment '用户表';

4.3.4DDL语句中的数据类型

MySQL中的数据类型有很多,主要分为三类:数值类型,字符串类型,日期时间类型

  1. 数值类型
    以tinyint为例,如果仅使用tinyint作为数据类型则默认为有符号范围,使用无符号范围需要用tinyint unsigned
    ![[Pasted image 20250303162156.png]]

  2. 字符串类型
    char(10):最多只能存10个字符,不足时10个字符,也会占用10个字符的空间,
    varchar(10):最多只能存10个字符,不足10个字符时,按照实际长度进行空间占用
    char不需要判断字符存储的空间,相较于varchar来说性能较高,而varchar需要判断字符空间,相较与char性能较低
    ![[Pasted image 20250303162254.png]]

  3. 日期时间类型
    ![[Pasted image 20250303162315.png]]

4.4使用IDEA连接数据库

在IDEA中创建一个空项目
![[Pasted image 20250303105325.png]]

![[Pasted image 20250303112318.png]]

4.4.1在IDEA中对数据库进行操作

除使用SQL语句对数据库进行增删改查外的方法对数据库进行管理
![[Pasted image 20250303113143.png]]

快速找到consel控制台界面
![[Pasted image 20250303113635.png]]

在创建的表格中添加数据
![[Pasted image 20250303153959.png]]

4.5DML语句

==DML:==DML的英文全称是Data Manipulate Language(数据操作语言),用于对数据库中表的记录进行增删改操作

4.5.1添加数据(INSERT)

  • 指定字段添加数据:insert into 表名(字段名1,字段名2) values(值1,值2)
  • 全部字段添加数据:insert into 表名 values(值1,值2…)
  • 批量添加数据(指定字段):insert into 表名(字段名1,字段名2) values(值1,值2)(值1,值2)
  • 批量添加数据(全部字段):insert into 表名 values(值1,值2…)(值1,值2…)
-- DML:数据操作语言  
-- DML:插入数据:insert  
-- 1.为tb_staff表中的username,name,gender字段插入值  
-- 使用now()函数把当前时间赋值给创建时间和更新时间  
insert into tb_staff(username,name,gender,create_time,` update_time`)  
values ('liangmou2121','梁某',1,now(),now());  
  
-- 2.为tb_staff表中的所有字段插入值  
insert into  tb_staff  
      values(null,'limou3434','123','李某',1,'1.jpg',2,'2004-09-23',now(),now());  
  
-- 3.批量为tb_staff表中的username,name,gender字段插入数据  
insert into tb_staff(username,name,gender,create_time,` update_time`)  
values ('zhangsan','张三',1,now(),now()),('lisi','李四',2,now(),now());

注意:
1)插入数据时,指定的字段顺序需要与值的顺序是一一对应的
2)字符串和日期型数据应该包含在引导中
3)插入的数据大小,应该在字段的规定范围内

4.5.2修改数据(UPDATE)

  • 修改数据:update 表名 set 字段名1=值1,字段名2=值2,…[where 条件]
-- DML:更新数据  
-- 1.将tb_staff表中id为1员工的姓名name字段更新为张三  
-- 更新时间也需要修改  
update tb_staff set name ='张三' ,` update_time` = now() where id = 1;  
  
-- 2.将tb_staff表的所有员工的入职日期更新为'2010-01-01'  
update tb_staff set entrydate = '2010-01-01',` update_time` = now();

注意:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的数据

4.5.3 删除数据(DELETE)

  • 删除数据:delete from 表名[where 条件]
-- DML:删除数据-delete  
-- 1.删除tb_staff表中id为1的员工  
delete from tb_staff where id = 1;  
  
-- 2.删除tb_staff表中的所有员工  
delete from tb_staff;

注意:1)DELETE语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据
2)DELETE语句不能删除某一个字段的值,如果要操作可以使用UPDATE,将该字段的值置为NULL

4.6DQL语句

DQL:DQL英文全称是Data Query Language(数据查询语言),用来查询数据库表中的记录
关键字:SELETE

4.6.1DQL语法

  1. 基本查询
  • select:字段列表
  • from:表名列表
  1. 条件查询
  • where:条件列表
  1. 分组查询
  • group by:分组字段列表
  • having:分组后条件列表
  1. 排序查询
  • order by:排序字段列表
  1. 分页查询
  • limit:分页参数

4.6.2基本查询

基本查询的语法:

  • 查询多个字段:select 字段1,字段2,字段3 from 表名;
  • 查询所有字段(通配符):select * from 表名;
  • 设置别名:select 字段1[as 别名1],字段2[as 别名2] from 表名;
  • 去除重复记录:select distinct 字段列表 from 表名;
-- DQL:基本查询  
-- 1.查询指定字段 name,entrydate 并返回  
select name,entrydate from tb_emp;  
  
-- 2.查询并返回所有字段  
-- 1)第一种方式-推荐  
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;-- 省略as  
-- 如果别名中有特殊符号如空格或下划线,需要对别名添加上单引号或者双引号  
-- 例;select name '姓 名',entrydate '入职_日期' from tb_emp;  
  
-- 4.查询已有员工关联了哪几种职位(不要重复)  
select distinct job from tb_emp;

注意:1)*代表所有字段,在实际开发中尽量少用(不直观,影响效率)
2)as关键字可以省略

4.6.3条件查询

条件查询的语法:

  • 条件查询:select 字段列表 from 表名 where 条件列表;
    比较运算符
  1. >-大于
  2. >=-大于等于
  3. >-小于
  4. <=-小于等于
  5. =-等于
  6. <>或者!=-不等于
  7. between...and-在某个范围之内(含最小,最大值)
  8. in(...)-在in之后的列表中的值,多选一
  9. like 占位符-模糊匹配(_匹配单个字符,%匹配任意个字符)
  10. is null-是null
  11. and或&&-并且(多个条件同时成立)
  12. or或||-或者(多个条件任意一个成立)
  13. not或!-非,不是
-- 分组查询  
-- 1.查询姓名为杨逍的员工 where后面写要查询的条件-从数据库的所有表中查询姓名为杨逍的信息  
select * from tb_emp where name = '杨逍';  
  
-- 2.查询id小于等于5的员工信息  
select * from tb_emp where id <= 5;  
  
-- 3.查询没有分配职位的员工信息-查询job为null的员工  
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 <='2010-01-01';  
-- 或  
select * from tb_emp where entrydate between'2000-01-01' and '2010-01-01';  
-- 7.查询入职日期在'2000-01-01(包含)到'2010-01-01'(包含)之间且性别为女的员工信息  
select  * from tb_emp where entrydate between '2000-01-01' and '2010-01-01' and gender = 2;  
-- 或  
select  * from tb_emp where entrydate between '2000-01-01' and '2010-01-01' && 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 = 2 || job = 3 || 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'张%';

4.6.4分组查询

聚合函数:将一列数据作为一个整体,进行纵向计算
语法1:select 聚合函数(字段列表) from 表名;

  1. count:统计数量
  2. max:最大值
  3. min:最小值
  4. avg:平均值
  5. sum:求和
-- DQL:分组查询  
-- 聚合函数-不对null值进行计算  
-- 1.统计该企业员工数量  
-- A.count(字段)-使用字段统计时,要选择非空字段  
select count(id) from tb_emp;  
-- B.count(常量)  
select count(1) from tb_emp;  
-- C.count(*)-统计表的总数据量-推荐使用  
select count(*) from tb_emp;  
  
-- 2.统计该企业最早入职的员工-最早(小)的入职日期-min  
select min(entrydate) from tb_emp;  
  
-- 3.统计该企业最迟入职的员工-最晚(大)的入职日期-min  
select max(entrydate) from tb_emp;  
  
-- 4.统计该企业员工ID的平均值-avg  
select  avg(id) from tb_emp;  
  
-- 5.统计该企业员工的ID之和-sum  
select  sum(id) from tb_emp;

注意:

  • null值不参与所有聚合函数运算
  • 统计数量可以使用:count(*),count(字段),count(常量),推荐使用count(*)

语法2:分组查询 select 字段列表 from 表名[where 条件] group by 分组字段名 [having 分组后过滤条件]

- 分组  
-- 1.根据性别分组,统计男性和女性员工的数量  
-- select后返回的结果有两类,一类是分组字段,一类是聚合函数  
select gender,count(*) from tb_emp group by gender;  
  
-- 2.先查询入职时间在'2015-01-01'(包含)以前的员工,并对结果根据职位分组,获取员工数量大于等于2的职位  
select job,count(*) from tb_emp where entrydate <= '2015-01-01' group by job having count(*) >= 2;  
-- 先使用where条件进行约束-入职时间在2015-01-01(包括)以前  
-- select * from tb_emp where entrydate <= '2015-01-01' ;  
-- 再根据职位进行分组,返回聚合函数和分组字段-count聚合函数用于统计数量  
select job,count(*) from tb_emp where entrydate <= '2015-01-01' group by job;  
-- 最后只呈现员工数量大于等于2的职位  
-- select job,count(*) from tb_emp where entrydate <= '2015-01-01' group by job having count(*) >= 2;

注意:where和having的区别

  1. 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组,而having是分组之后对结果进行过滤
  2. 判断条件不同,where不能对聚合函数进行判断,而having可以
  3. 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义
  4. 执行顺序:where>聚合函数>having

4.6.5排序查询

条件查询:select 字段列表 from 表名[where 条件列表]``[group by 分组字段]order by 字段1 排序方式1,字段2,排序方式2…;
排序方式:

  • ASC:升序(默认值)
  • DESC:降序
-- 排序查询  
-- 1.根据入职时间,对员工进行升序排序-asc  
-- 如果需要升序排序,可以省略asc 在系统中排序是默认为升序的  
# select * from tb_emp order by entrydate asc;  
select * from tb_emp order by entrydate;  
  
-- 2.根据入职时间,对员工进行降序排序-desc  
select * from tb_emp order by entrydate desc;  
  
-- 3.根据入职时间对公司的员工进行升序排序,入职时间相同,再按照更新时间进行升序排序  
select * from tb_emp order by entrydate desc,update_time desc;

注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序

4.6.6分页查询

分页查询:select 字段列表 from 表名 limit 起始索引,查询记录数;
起始索引:从哪一条记录往后进行查询(从0开始)
起始索引 = (页码 - 1) * 每页展示的记录数
查询记录数:每一页需要展示多少条数据

-- 分页查询  
-- 1.从起始索引0开始查询员工数量,每页展示五条记录  
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页员工数据,每页展示五条记录  
select * from tb_emp limit 10 , 5 ;

注意:

  • 起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数
  • 分页查询时数据库的方言,不同的数据库有不同的实现,在MySQL中是LIMIT
  • 如果查询的是第一页的数据,起始索引可以省略,直接简写为limit 查询记录数
    例: 查询第一页的五条记录
select * from tb_emp limit 5;

5.综合案例

5.1案例

  1. 案例1:
-- 案例1:按需求完成员工管理系统分页查询-根据输入条件,查询第一页数据,每页展示10条记录  
-- 输入条件:  
-- 姓名:张  
-- 性别:男  
-- 入职时间:2000-01-01到2015-12-31  
-- 对最后查询的结果根据修改时间进行倒序排序  
-- 对语句进行格式化代码 ctrl + alt + lselect *  
from tb_emp  
where entrydate between '2000-01-01' and '2015-12-31' && name like '%张%' && gender = 1  
order by update_time desc  
limit 0,10;
  1. 案例2:
-- 案例2-1:根据需求,完成员工性别信息的统计count(*)  
-- 统计男性员工和女性员工分别有多少人  
-- 使用if表达式将性别从1,2转换成真实值  
-- if(条件表达式,true取值,false取值)  
# select gender,count(*) from tb_emp group by gender;  
select if(gender = 1,'男性员工','女性员工')性别,count(*) from tb_emp group by gender;

5.2if条件表达式

if条件表达式的语法:if(条件表达式,true取值,false取值)[别名]
![[Pasted image 20250308204522.png]]

5.3case表达式

case表达式语法:case表达式 when 值1 then 结果1 when 值2 结果2…else…end
case语法用于有多种情况需要从数字转换成具体值

-- 案例2-2:根据需求,完成员工职位信息的统计  
-- 使用case语法表达式 case表达式 when 值1 then 结果1 when 值2 then 结果2...else...end  
-- 下列sql语句中job为表达式  
select  
    (case job when 1 then '班主任' when 2 then '讲师'  
    when 3 then'学生主管' when 4 then '教研主管'  
    else '未分配职位' end)职位, count(*)  
from tb_emp  
group by job;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

同为科技智能PDU在数据中心场景的应用与解决方案

数据中心当前处于一个快速发展和技术变革的特殊时期&#xff0c;全新的人工智能应用正在重塑整个世界&#xff0c;为社会带来便捷的同时&#xff0c;也为数据中心的发展带来了新的机遇和挑战。智能算例的爆发式增长&#xff0c;对数据中心提出了大算力、高性能的新需求&#xf…

基于Asp.net的零食购物商城网站

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

Redis|Springboot集成Redis

文章目录 总体概述本地Java连接Redis常见问题集成Jedis集成lettuce集成RedisTemplate——推荐使用连接单机连接集群 总体概述 jedis-lettuce-RedisTemplate三者的联系 jedis第一代lettuce承上启下redistemplate着重使用 本地Java连接Redis常见问题 bind配置请注释掉保护模式…

【编译器】VSCODE编译C语言

【编译器】VSCODE编译C语言 文章目录 [TOC](文章目录) 前言一、下载配置二、代码1.main.c2.lanuch3.task 三、编译运行——方法一&#xff1a;编译器运行1.编译&#xff1a;终端-运行生成任务&#xff08;ctrlshiftB&#xff09;2.运行&#xff1a;运行-启动调试&#xff08;F5…

信息安全访问控制、抗攻击技术、安全体系和评估(高软42)

系列文章目录 信息安全访问控制、抗攻击技术、安全体系和评估 文章目录 系列文章目录前言一、信息安全技术1.访问控制2.抗攻击技术 二、欺骗技术1.ARP欺骗2.DNS欺骗3.IP欺骗 三、抗攻击技术1.端口扫描2.强化TCP/IP堆栈 四、保证体系和评估1.保证体系2.安全风险管理 五、真题在…

1 、六气概念-六气内涵

复泰中医体系里&#xff0c;木火土金水&#xff0c;属于传统中医理论的5分法。 有六气&#xff1a;厥阴风木、少阴君火、少阳相火、太阴湿土、阳明燥金、太阳寒水&#xff0c;属于6分法。 五行的体系用在补虚的体系里。 六气的体系用于泻实的体系里。 一、六气概念 天有六气&a…

svn删除所有隐藏.svn文件,文件夹脱离svn控制

新建一个文件&#xff0c;取名remove-svn-folders.reg&#xff0c;输入如下内容&#xff1a; Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN] "Delete SVN Folders" [HKEY_LOCAL_MACHINE\SOFTWARE\Class…

【Python 数据结构 10.二叉树】

目录 一、二叉树的基本概念 1.二叉树的定义 2.二叉树的特点 3.特殊的二叉树 Ⅰ、斜树 Ⅱ、满二叉树 Ⅲ、完全二叉树 Ⅳ、完全二叉树和满二叉树的区别 4.二叉树的性质 5.二叉树的顺序存储 Ⅰ、完全二叉树 Ⅱ、非完全二叉树 Ⅲ、稀疏二叉树 6.二叉树的链式存储 7.二叉树的遍历概念…

Windsuf 连接失败问题:[unavailable] unavailable: dial tcp...

问题描述 3月6日&#xff0c;在使用Windsuf 时&#xff0c;遇到以下网络连接错误&#xff1a; [unavailable] unavailable: dial tcp 35.223.238.178:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of…

Hadoop八股

Hadoop八股 HadoopMapReduce考点MR on Yarn 分布式工作原理shuffle&#xff1a;MapTask 和 ReduceTask的处理流程MR中的MapTask 和 ReduceTask 的数量决定MR和Spark两者Shuffle的区别简单讲一下map- reduce 原理**MapReduce 的核心概念****MapReduce 的工作流程****MapReduce 的…

Android15请求动态申请存储权限完整示例

效果: 1.修改AndroidManifest.xml增加如下内容: <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-perm

10.RabbitMQ集群

十、集群与高可用 RabbitMQ 的集群分两种模式,一种是默认集群模式,一种是镜像集群模式&#xff1b; 在RabbitMQ集群中所有的节点(一个节点就是一个RabbitMQ的broker服务器) 被归为两类:一类是磁盘节点,一类是内存节点&#xff1b; 磁盘节点会把集群的所有信息(比如交换机、绑…

ajax之生成一个ajax的demo示例

目录 一. node.js和express ​二. 使用express创建后端服务 三. 创建前端 一. node.js和express ajax是前端在不刷新的情况下访问后端的技术&#xff0c;所以首先需要配置一个后端服务&#xff0c;可以使用node.js和express。 首先生成一个空项目&#xff0c;新建main目录…

unity学习64,第3个小游戏:一个2D跑酷游戏

目录 学习参考 素材资源导入 1 创建项目 1.1 创建1个2D项目 1.2 导入素材 2 背景图bg 2.0 bg素材 2.1 创建背景 2.2 修改素材&#xff0c;且修改摄像机等 2.2.1 修改导入的原始prefab素材 2.2.2 对应调整摄像机 2.2.3 弄好背景 2.3 背景相关脚本实现 2.3.1 错误…

PyTorch系列教程:编写高效模型训练流程

当使用PyTorch开发机器学习模型时&#xff0c;建立一个有效的训练循环是至关重要的。这个过程包括组织和执行对数据、参数和计算资源的操作序列。让我们深入了解关键组件&#xff0c;并演示如何构建一个精细的训练循环流程&#xff0c;有效地处理数据处理&#xff0c;向前和向后…

PX4中的DroneCAN的实现库Libuavcan及基础功能示例

简介 Libuavcan是一个用C编写的可移植的跨平台库&#xff0c;对C标准库的依赖小。它可以由几乎任何符合标准的C编译器编译&#xff0c;并且可以在几乎任何体系结构/OS上使用。 在 DroneCAN 中&#xff0c;Libuavcan 有一个 DSDL 编译器&#xff0c;将 DSDL 文件转换为 hpp 头…

计算机网络(1) 网络通信基础,协议介绍,通信框架

网络结构模式 C/S-----客户端和服务器 B/S -----浏览器服务器 MAC地址 每一个网卡都拥有独一无二的48位串行号&#xff0c;也即MAC地址&#xff0c;也叫做物理地址、硬件地址或者是局域网地址 MAC地址表示为12个16进制数 如00-16-EA-AE-3C-40 &#xff08;每一个数可以用四个…

PCA(主成分分析)核心原理

一、PCA&#xff08;主成分分析&#xff09;核心原理 即主成分分析技术&#xff0c;又称主分量分析技术&#xff0c;旨在利用降维的思想&#xff0c;把多指标转化为少数几个综合指标。在统计学中&#xff0c;主成分分析PCA是一种简化数据集的技术。它是一个线性变换。这个变换…

SpringBoot-模拟SSE对话交互

SpringBoot-模拟SSE对话交互 后端使用SSE进行会话&#xff0c;前端使用Html模拟大模型的问答交互->【前端】【后端】 1-学习目的 本项目代码仓库&#xff1a;https://gitee.com/enzoism/springboot_sse 1-核心知识点 1&#xff09;什么是SSE协议->客户端发起一次请求&am…

2025DNS二级域名分发PHP网站源码

安装教程 1.程序必须使用PHP8.1 2.将扩展ixed.8.1.lin放入/www/server/php/81/lib/php/extensions/no-debug-non-zts-20210902 3.打开宝塔→软件商店→PHP8.1→配置文件 4.放入&#xff1a;extensionixed.8.1.lin 5.重启PHP8.1 6.新建站点&#xff08;mysql5.6-5.7andPHP8.1&a…