MySQL数据库详解 二:数据库的高级语句(高级查询语句)

news2025/1/9 2:28:50

文章目录

  • 1. 克隆表 ---- 将数据表的数据记录生成到新的表中
    • 1.1 方式一:先创建新表,再导入数据
    • 1.2 方式二:创建的时候同时导入
  • 2. 清空表 ---- 删除表内的所有数据
    • 2.1 delete删除
    • 2.2 truncate删除(重新记录)
    • 2.3 创建临时表(退出数据库自动删除)
  • 3. 创建外键约束 ---- 保证数据的完整性和一致性
    • 3.1 MySQL约束特性
  • 4. SQL进阶查询语句
    • 4.1 添加示例表格
    • 4.2 selecte ----- 显示表格中一个或数个字段的所有数据记录
    • 4.3 distinct ---- 不显示重复的数据记录
    • 4.4 where ---- 对源语句进行条件查询
    • 4.5 and | or ---- 且 | 或
    • 4.6 in ---- 显示已知的值的数据记录
    • 4.7 between ---- 显示两个值范围内的数据记录
    • 4.8 通配符
    • 4.9 like ---- 模糊匹配
    • 4.10 order by ---- 按关键字排序
    • 4.11 group by ---- 汇总分组
    • 4.12 having ---- 进行条件筛选
    • 4.13 别名 ---- 字段別名 表格別名
    • 4.14 子查询语句 ---- 连接表格
    • 4.15 exists
  • 5. MySQL数据库函数
    • 5.1 数学函数
      • 5.1.1 示例
    • 5.2 聚合函数
      • 5.2.1 示例
    • 5.3 字符串函数
      • 5.3.1 示例
  • 6. 连接查询
    • 6.1 表连接
    • 6.2 union语句 ---- 联集
    • 6.3 多表查询 --- 求交集值
      • 6.3.1 示例
    • 6.4 多表查询 ---- 求无交集值
      • 6.4.1 示例
  • 7. SQL语句的执行先后

1. 克隆表 ---- 将数据表的数据记录生成到新的表中

1.1 方式一:先创建新表,再导入数据

create table 新表 like 旧表;			
insert into 新表 select * from 旧表;
#这种方式可以完全复制表内容和表结构		
 
#示例
create table test1 like st;		#通过 LIKE 方法,复制 info 表结构生成 test01 表
insert into test1 select * from st;			#导入数据

在这里插入图片描述
在这里插入图片描述

1.2 方式二:创建的时候同时导入

create table test2 (select * from st);
#创建内容来自st表的test2表
#这种方式不能克隆表结构,只能克隆表内容

在这里插入图片描述
在这里插入图片描述

2. 清空表 ---- 删除表内的所有数据

2.1 delete删除

DELETE清空表后,返回的结果内有删除的记录条目;DELETE工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETE FROM 删除所有记录后,再次新添加的记录会从原来最大的记录 ID 后面继续自增写入记录。

delete from 表名;

delete from students;

在这里插入图片描述

2.2 truncate删除(重新记录)

TRUNCATE 清空表后,没有返回被删除的条目;TRUNCATE 工作时是将表结构按原样重新建立,因此在速度上 TRUNCATE 会比 DELETE 清空表快;使用 TRUNCATE TABLE 清空表内数据后,ID 会从 1 开始重新记录。

truncate table 表名;
 
#示例
truncate table students;

在这里插入图片描述

2.3 创建临时表(退出数据库自动删除)

临时表创建成功之后,使用SHOW TABLES命令是看不到创建的临时表的,临时表会在连接退出后被销毁。 如果在退出连接之前,也可以可执行增删改查等操作,比如使用 DROP TABLE 语句手动直接删除临时表。

create temporary table 表名 (字段1 数据类型,字段2 数据类型[,...][,primary key (主键名)]);

##添加临时表test
create temporary table test (
id int(4) zerofill primary key auto_increment,
name varchar(10) not null,
cardid int(18) not null unique key,
hobby varchar(50));
 
show tables;					## 查看当前库中所有表

在这里插入图片描述

insert into test values(1,'张三',123456789);		##在临时表中添加数据
select * from test;			##查看当前表中所有数据

在这里插入图片描述

quit							##退出数据库
 
mysql -u root -p				##重新登录后进行查看	
		
select * from test;			##查看之前创建的临时表中所有数据,发现已经被自动销毁

在这里插入图片描述

3. 创建外键约束 ---- 保证数据的完整性和一致性

如果同一个属性字段X在表一中是主键,而在表二中不是主键,则字段X称为表二的外键

主键表和外键表的区别
(1)以公共关键字作主键的表为主键表(父表、主表)
(2)以公共关键字作外键的表为外键表(从表、外表)

注:与外键关联的主表的字段必须设置为主键。要求从表不能是临时表,主从表的字段具备相同的数据类型、字符长度和约束。

#基本格式
外键约束
主键表: alter table 表名 add primary key (主键字段);
外键表: alter table 表名 add foreign key (外键字段) references 主键表名 (主键字段);
        插入新数据时,需要先在主键表插入数据再在外键表插入对应数据;删除数据时,需要先在外键表删除数据再在主键表删除对应数据
#示例
#创建主表 profession
create table profession (id int(4),proname varchar(50));

#创建从表 student
create table student (id int(4) primary key auto_increment,name varchar(10),age int(3),proid int(4));
#创建一个以id为外键并自增长的表student

在这里插入图片描述

#为主表 profession 添加一个主键约束。主键名以“PK_”开头。
alter table profession add constraint PK_id primary key (id);

#为从表 student 表添加外键,并将 student 表的 proid 字段和 profession 表的 pid 字段建立外键关联。外键名以“FK_”开头。
alter table student add constraint FK_pro foreign key (proid) references profession (id);

desc student;

在这里插入图片描述

**#插入新的数据记录时,要先主表再从表
insert into profession values(1,'云计算');
insert into profession values(2,'大数据');
insert into student values(1,'张三',18,1);
insert into student values(2,'李四',19,1);
insert into student values(3,'王五',20,2);

在这里插入图片描述

#删数据记录时,要先从表再主表,也就是说删除主键表的记录时必须先删除其他与之关联的表中的记录。
delete from student where proid=1;
delete from profession where id=1;
#查看和删除外键约束
show create table student;     #以sql语句方式显示表结构
desc student;
alter table student drop foreign key FK_pro;
alter table student drop key FK_pro;

在这里插入图片描述

3.1 MySQL约束特性

约束名功能
primary key主键约束 字段的值不能重复,且不能为null,一个自建的表只能有一个主键
unique key唯一性约束 字段的值不能重复,能为null,一个表可以有多个唯一键
not null非空约束 字段的值不能为null
default默认值约束 字段的值如果没有设置则使用默认值自动填充
auto_increment自增约束 字段的值如果没有设置默认会从1开始每次自动递增1,要求自增字段必须设置主键
foreign key外键约束 保证相关联的表数据的完整性和一致性
int(N) zerofill零填充 表示若数值不满4位数,则前面用“0”填充,例0001

4. SQL进阶查询语句

4.1 添加示例表格

create database scj;
use scj;
create table location (Region char(20),Store_Name char(20));
#创建地域表

insert into location values('East','Boston');
insert into location values('East','New York');
insert into location values('West','Los Angeles');
insert into location values('West','Houston');

在这里插入图片描述

create table store_info (Store_Name char(20),Sales int(10),Date char(10));

insert into store_info values('Los Angeles','1500','2020-12-05');
insert into store_info values('Houston','250','2020-12-07');
insert into store_info values('Los Angeles','300','2020-12-08');
insert into store_info values('Boston','700','2020-12-08');

在这里插入图片描述

4.2 selecte ----- 显示表格中一个或数个字段的所有数据记录

显示表格中一个或数个字段的所有数据记录

#基本语法
select  "字段" from "表名";

#示例
select date,store_name,sales from store_info;
#按照date,store_name,sales的顺序显示store_info表内容

在这里插入图片描述

select store_name,sales from store_info;
#也可以只显示特定字段

在这里插入图片描述

4.3 distinct ---- 不显示重复的数据记录

#基本语法
select distinct "字段" from "表名";

#示例
select distinct store_name from store_info;
#显示store_info表并去重

在这里插入图片描述

4.4 where ---- 对源语句进行条件查询

#基本格式
select "字段" from "表名" where "条件";

#示例
select store_name date from store_info where sales > 1000;

在这里插入图片描述

4.5 and | or ---- 且 | 或

#基本语法
select "字段" from "表名" where "条件1" {[and|or] "条件2"}+ ;

#示例
select store_name from store_info where salves >=1000 or (slave < 300 and salve >200 );

在这里插入图片描述

4.6 in ---- 显示已知的值的数据记录

#基本语法
select "字段" from "表名" where "字段" in ('值1', '值2', ...);

#示例
select sales from store_info where store_name in ('houston', 'boston'); 

在这里插入图片描述

4.7 between ---- 显示两个值范围内的数据记录

#基本语法
select "字段" from "表名" where "字段" between '值1' and '值2';

select * from store_info where date between '2020-12-06' and '2020-12-10';

在这里插入图片描述

4.8 通配符

% :百分号表示零个、一个或多个字符
_ :下划线表示单个字符

'A_Z':所有以 'A' 起头,另一个任何值的字符,且以 'Z' 为结尾的字符串。例如,'ABZ''A2Z' 都符合这一个模式,而 'AKKZ' 并不符合 (因为在 A 和 Z 之间有两个字符,而不是一个字符)'ABC%': 所有以 'ABC' 起头的字符串。例如,'ABCD''ABCABC' 都符合这个模式。
'%XYZ': 所有以 'XYZ' 结尾的字符串。例如,'WXYZ''ZZXYZ' 都符合这个模式。
'%AN%': 所有含有 'AN'这个模式的字符串。例如,'LOS ANGELES''SAN FRANCISCO' 都符合这个模式。
'_AN%':所有第二个字母为 'A' 和第三个字母为 'N' 的字符串。例如,'SAN FRANCISCO' 符合这个模式,而 'LOS ANGELES' 则不符合这个模式。

4.9 like ---- 模糊匹配

一般和通配符配合使用。

模糊匹配默认扫描全表索引不生效

#基本语法
select "字段" from "表名" where "字段" like {模式};

#示例
select * from store_info where store_name like '_os%';

在这里插入图片描述

4.10 order by ---- 按关键字排序

#基本语法
select "字段" from "表名" [where "条件"] order by "字段" [asc, desc];
#asc  是按照升序进行排序的,是默认的排序方式。
#desc 是按降序方式进行排序。

select store_name,sales,date from store_info order by sales;
select store_name,sales,date from store_info order by sales desc;

在这里插入图片描述

4.11 group by ---- 汇总分组

对 group by 后面的字段的查询结果进行汇总分组,通常是结合聚合函数一起使用的

group by 有一个原则,凡是在 group by 后面出现的字段,必须在 select 后面出现
凡是在 select 后面出现的、且未在聚合函数中出现的字段,必须出现在 group by 后面

#基本语法
select "字段1", sum("字段2") from "表名" group by "字段1";

#sum(x)	 返回指定列的所有值之和

#示例
select store_name, sum(sales) from store_info group by store_name order by sales ;

在这里插入图片描述

select store_name,count(store_name) from store_info group by store_name desc;

#count()				返回指定列中非 NULL 值的个数

在这里插入图片描述

4.12 having ---- 进行条件筛选

用来过滤由 group by 语句返回的记录集,通常与 group by 语句联合使用.

having 语句的存在弥补了 where 关键字不能与聚合函数联合使用的不足。

#基本语法
select "字段1", sum("字段2") from "表格名" group by "字段1" having (函数条件);

select store_name, sum(sales) from store_info group by store_name having sum(sales) <= 700;

在这里插入图片描述

4.13 别名 ---- 字段別名 表格別名

as可省略,仅在当前SQL语句生效。

#基本语法
select "表格別名"."字段1" [as] "字段別名" from "表格名" [as] "表格別名";

#示例
select a.store_name store, sum(a.sales) as "total sales" from store_info as a group by a.store_name;

在这里插入图片描述

4.14 子查询语句 ---- 连接表格

在 where 子句或 having 子句中插入另一个 SQL 语句

#基本语法
select "字段1" from "表格1" where "字段2" [比较运算符] (select "字段1" from "表格2" where "条件");

#外查询	(#内查询)
#内查询的结果,作为外查询的参数

[比较运算符]
#可以是符号的运算符,例如 =、>、<、>=、<= 
#也可以是文字的运算符,例如 like、in、between
select sum(sales) from store_info where store_name in (select store_name from location where region = 'West');

在这里插入图片描述

4.15 exists

用来测试内查询有没有产生任何结果

如果有,系统就会执行外查询中的sql语句;

如果没有,那整个 SQL语句就不会产生任何结果。

#基本语法
select "字段1" from "表格1" where exists (select * from "表格2" where "条件";

select sum(sales) from store_info where exists (select store_name from location where region = 'West');

select sum(sales) from store_info where exists (select store_name from location where region = 'Westt');

在这里插入图片描述

5. MySQL数据库函数

5.1 数学函数

函数名功能
abs(x)返回 x 的绝对值
rand()返回 0 到 1 的随机数
mod(x,y)返回 x 除以 y 以后的余数
power(x,y)返回 x 的 y 次方
round(x)返回离 x 最近的整数
round(x,y)保留 x 的 y 位小数四舍五入后的值
sqrt(x)返回 x 的平方根
truncate(x,y)返回数字 x 截断为 y 位小数的值
ceil(x)返回大于或等于 x 的最小整数
floor(x)返回小于或等于 x 的最大整数
greatest(x1,x2…)返回集合中最大的值,也可以返回多个字段的最大的值
least(x1,x2…)返回集合中最小的值,也可以返回多个字段的最小的值

5.1.1 示例

select abs(-5), rand(), mod(11,3), power(3,3), round(1.5);

在这里插入图片描述

select round(1.8915,2), truncate(1.235,2), ceil(5.2), floor(2.1), least(1.1,3,6.1,2.1);

在这里插入图片描述

5.2 聚合函数

函数名功能
avg()返回指定列的平均值
count( 字段 )返回指定列中非 NULL 值的个数(行数)
count(*)返回指定列中所有行数,不忽略NULL值
min( )返回指定列的最小值
max( )返回指定列的最大值
sum(x)返回指定列的所有值之和

5.2.1 示例

avg

select avg(store_info.sales) from store_info;

在这里插入图片描述

count

select count(store_name) from store_info;

在这里插入图片描述

select count(distinct store_name) from store_info;

在这里插入图片描述

max 和 min

select max(sales) from store_info;

在这里插入图片描述

select min(sales) from store_info;

在这里插入图片描述

sum

select sum(sales) from store_info;

在这里插入图片描述

5.3 字符串函数

字符串函数功能
trim()返回去除指定格式的值
concat(x,y)将提供的参数 x 和 y 拼接成一个字符串
substr(x,y)获取从字符串 x 中的第 y 个位置开始的字符串,跟substring()函数作用相同
substr(x,y,z)获取从字符串 x 中的第 y 个位置开始长度为 z 的字符串
length(x)返回字符串 x 的长度
replace(x,y,z)替换,将字符串 z 替代字符串 x 中的字符串 y
upper(x)将字符串 x 的所有字母变成大写字母
lower(x)将字符串 x 的所有字母变成小写字母
left(x,y)返回字符串 x 的前 y 个字符
right(x,y)返回字符串 x 的后 y 个字符
repeat(x,y)将字符串 x 重复 y 次
space(x)返回 x 个空格
strcmp(x,y)比较 x 和 y,返回的值可以为-1,0,1
reverse(x)将字符串 x 反转

5.3.1 示例

trim

#基本语法
select trim([ [位置] [要移除的字符串] from ] 字符串);
#[位置]:的值可以为 leading (起头), trailing (结尾), both (起头及结尾)。 
#[要移除的字符串]:从字串的起头、结尾,或起头及结尾移除的字符串。缺省时为空格。

select trim(leading 'Los' from (select store_name from location where store_name='Los Angeles'))

在这里插入图片描述

select trim(trailing 'Nork' from (select store_name from location where store_name='New Nork'));

在这里插入图片描述

concat

字段名 不要加 ' '

字符串 要加' '

select concat (region || store_name) from location;

在这里插入图片描述

select concat (region, ' ' , store_name) from location;

在这里插入图片描述

substr

select substr(store_name,4) from location where store_name ='Los Angeles';

在这里插入图片描述

select substr(store_name,5,6) from location where store_name ='Los Angeles';

在这里插入图片描述

length

select store_name,length(store_name) from location;

在这里插入图片描述

replace

select replace (region,'st','str') from location;

在这里插入图片描述

upper

select upper (region) from location;

在这里插入图片描述

6. 连接查询

6.1 表连接

表连接概述
inner join内连接 只返回两个表中联结字段相等的行记录
left join左连接 返回包括左表中的所有记录和右表中联结字段相等的记录,不相等的部分返回NULL
right join右连接 返回包括右表中的所有记录和左表中联结字段相等的记录,不相等的部分返回NULL
union联集 将两个select查询语句的结果合并,并去重
union all联集 将两个select查询语句的结果合并,不去重

6.2 union语句 ---- 联集

联集,将两个sql语句的结果合并起来,两个sql语句所产生的字段需要是同样的数据记录种类。

union :生成结果的数据记录值将没有重复,且按照字段的顺序进行排序

#基本语法
[select 语句 1] union [select 语句 2];
select store_name from location union select store_name from store_info;

在这里插入图片描述

union all 将生成结果的数据记录值全部都列出来,但不去重

select store_name from location union all select store_name from store_info;

在这里插入图片描述

6.3 多表查询 — 求交集值

#基本语法格式
select A.字段 from 左表 A inner join 右表 B on A.字段 = B.字段;
select A.字段 from 左表 A inner join 右表 B using(同名字段);

select A.字段 from 左表 A, 右表 B where A.字段 = B.字段;

select A.字段 from 左表 A where A.字段 in (select B.字段 from 右表 B);

select A.字段 from 左表 A left join 右表 B on A.字段 = B.字段 where B.字段 is not null;
select B.字段 from 左表 A right join 右表 B on A.字段 = B.字段 where A.字段 is not null;

6.3.1 示例

#求交集
#方式一
select A.store_name from location A inner join store_info B on A.store_name = B.store_name;

在这里插入图片描述

select A.store_name from location A inner join store_info B using (store_name);

在这里插入图片描述

6.4 多表查询 ---- 求无交集值

显示第一个SQL语句的结果,且与第二个SQL语句没有交集的结果,且没有重复。

求左表无交集
select A.字段 from 左表 A left join 右表 B on A.字段 = B.字段 where B.字段 is null;

select 字段 from 左表 where 字段 not in (select 字段 from 右表);

求右表无交集
select B.字段 from 左表 A right join 右表 B on A.字段 = B.字段 where A.字段 is null;

select 字段 from 右表 where 字段 not in (select 字段 from 左表);

求多表的无交集
select A.字段 from (select distinct 字段 from 左表 union all select distinct 字段 from 右表) A group by A.字段 having count(A.字段)=1;

6.4.1 示例

select distinct store_name from location where (store_name) not in ( select store_name from store_info);

#子查询`select store_name from store_info`从"store_info"表中选择所有的店铺名称。
#主查询`select distinct store_name from location`从"location"表中选择所有不重复的店铺名称。
#使用`where (store_name) not in`条件将主查询中的店铺名称过滤掉那些在子查询结果中出现的店铺名称。

在这里插入图片描述

select A.store_name from location A left join store_info B on A.store_name = B.store_name where B.store_name is null;

#使用‘left join’ 将“location标记为左表A”,"store_info表标记为右表B"
#使用`where B.store_name is NULL`条件过滤掉在连接结果中,店铺名称在"location"表中出现但在"store_info"表中没有匹配的记录。

在这里插入图片描述

7. SQL语句的执行先后

FROM
<left table>

ON
<join_condition>
<join_type>

JOIN
<right_table>

WHERE
<where condition>

GROUP BY
<group_by_list>

HAVING
<having_condition>

SELECT

DISTINCT
<select list>

ORDER BY
<order_by_condition>

LIMIT
<limit number>

########################################################################################################SQL中,一般而言,SQL查询语句的执行顺序如下:

1. FROM:指定要查询的数据表或视图。
2. JOIN:根据指定的条件连接多个表。
3. WHERE:基于指定的条件筛选出符合要求的行。
4. GROUP BY:按照指定的列进行分组。
5. HAVING:对分组后的结果进行条件筛选。
6. SELECT:选择要返回的列。
7. DISTINCT:去除重复的行。
8. ORDER BY:按照指定的列进行排序。
9. LIMIT/OFFSET:限制返回的结果数量和起始位置。

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

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

相关文章

别着急,解决不了的问题,就请交给时间吧

转眼间我走出社会已过去四年之久&#xff0c;但很多事依旧历历在目&#xff0c;就好像昨天发生的一样。 我小时候&#xff0c;因为一场医学事故患有先天性白内障&#xff0c;真的是连黑板的看不清&#xff0c;当时自己也不太懂事&#xff0c;上课对我来说就是画画以及一切能够消…

保姆级 Keras 实现 Faster R-CNN 十三 (训练)

保姆级 Keras 实现 Faster R-CNN 十三 训练 一. 将 Faster R-CNN 包装成一个类二. 修改模型结构1. 修改 input_reader 函数2. 增加 RoiLabelLayer 层 三. 损失函数1. 自定义损失函数2. 自定义精度评价函数 四. 模型编译五. 模型训练六. 预训练模型七. 保存模型与参数八. 代码下…

更新、修改

MySQL从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129334507?spm1001.2014.3001.5502 语法: update 表名 列名该列新值, 列名该列新值, ... where 记录匹配条件; 说明&#xff1a;update 更新、修改 set 设置 …

通讯网关软件011——利用CommGate X2ODBC实现DDE数据转入ODBC

本文介绍利用CommGate X2ODBC实将DDE数据源中的数据转入到ODBC数据源。CommGate X2ODBC是宁波科安网信开发的网关软件&#xff0c;软件可以登录到网信智汇(http://wangxinzhihui.com)下载。 【案例】如下图所示&#xff0c;将DDE数据源&#xff08;如Excel&#xff09;的数据写…

【软件设计师-从小白到大牛】下午题基础篇:第一章 数据流图(DFD)

文章目录 前言章节提要一、数据流图基本概念二、数据流图的分层&#xff08;DFD&#xff09;三、数据字典四、数据流图平衡原则五、答题技巧问题一问题二问题三问题四 六、案例分析1、案例12、案例2 前言 ​ 本系列文章为观看b站视频以及b站up主zst_2001系列视频所做的笔记&…

DAZ To UMA⭐一.DAZ简单使用教程

文章目录 &#x1f7e5; DAZ快捷键&#x1f7e7; DAZ界面介绍 &#x1f7e5; DAZ快捷键 移动物体:ctrlalt鼠标左键 旋转物体:ctrlalt鼠标右键 导入模型:双击左侧模型UI &#x1f7e7; DAZ界面介绍 Files:显示全部文件 Products:显示全部产品 Figures:安装的全部人物 Wardrobe…

Floyd算法基础

弗洛伊德算法(Floyd) 之前介绍了迪杰斯特拉算法(Dijkstra)。具体请看&#xff1a;最短路径算法——简单明了的迪杰斯特拉算法(Dijkstra)。Dijkstra适用于非负权图&#xff0c;并且一次只能从网络中找源点到任何一个节点的最短路径&#xff0c;而Floyd算法的应用更加广泛&#…

基于vue的黑马前端项目小兔鲜

目录 项目学习 初始化项目 建立项目 引入elementplus elementPlus主题设置 配置axios 路由 引入静态资源 自动导入scss变量 Layout页 组件结构快速搭建 字体图标渲染 一级导航渲染 吸顶导航交互实现 Pinia优化重复请求 Home页 分类实现 banner轮播图 …

vue变量赋值中文,但是输出为乱码,解决办法

很奇怪&#xff0c;展示出来为乱码 来看代码输出 控制台的输出也是乱码 这是因为文件编码问题&#xff0c;可以看到我使用的编码不对 更改一下编码 要选择UTF-8 保存之后重新运行&#xff0c;就可以看到正确显示啦&#xff01;

JavaScript学习笔记05

JavaScript笔记05 操作 BOM 对象&#xff08;重点&#xff09; 什么是 BOM BOM&#xff08;Browser Object Model&#xff09;是指浏览器对象模型&#xff0c;是用于描述这种对象与对象之间层次关系的模型。浏览器对象模型&#xff08;BOM&#xff09;提供了独立于内容的、可…

分享一个java+springboot+vue校园电动车租赁系统(源码、调试、开题、lw)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人七年开发经验&#xff0c;擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等&#xff0c;大家有这一块的问题可以一起交流&#xff01; &#x1f495;&…

UE5学习笔记(2)——打包第一个安卓demo(附碰到的问题)

这里是目录 0. 安装Android Studio我的解决方案 1. 调试安卓设备2. 创建游戏项目问题记录 3. 配置APK4. UE&#xff0c;启动&#xff01;很不辛&#xff0c;闪退了编译完&#xff0c;部署到设备&#xff1a;部署失败&#xff01;原因再试一次&#xff01; 5. 打包安卓包UE&…

【企业级SpringBoot单体项目模板 】—— 一些开发规范

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;SpringBoot项目模版、企业级☀️每日 一言&#xff1a;种一棵树最好的时间是十年前&#xff0c;其次是现在&#xff01; 上一回我们已经搭建了一个单体SpringBoot项目并且做了一些全局的配置、比…

C语言自定义类型(上)

大家好&#xff0c;我们又见面了&#xff0c;这一次我们来学习一些C语言有关于自定义类型的结构。 目录 1.结构体 2位段 1.结构体 前面我们已经学习了一些有关于结构体的知识&#xff0c;现在我们进行深入的学习有关于它的知识。 结构是一些值的集合&#xff0c;这些值称为…

.Net6与Framework不同方式获取文件哈希值的性能对比

算法&#xff1a;MD5、SHA1、SHA256、SHA384、SHA512文件数&#xff1a;200平台对比&#xff1a;.NET 6 vs .NET Framework 4.7.2 关键代码 // 读取文件夹&#xff0c;获取MD5值 var hashs new HashAlgorithm[] { MD5.Create(), SHA1.Create(), SHA256.Create(), SHA384.Cre…

【C++】C++ 类中的 this 指针用法 ( C++ 类中的 this 指针引入 | this 指针用法 | 代码示例 )

文章目录 一、C 类中的 this 指针1、C 类中的 this 指针引入2、C 类中的 this 指针用法3、完整代码示例 一、C 类中的 this 指针 1、C 类中的 this 指针引入 在 C 类中 , this 指针 是一个特殊的指针 , 由系统自动生成 , 不需要手动声明定义 , 在类中的每个 非静态成员函数 中 …

【机器学习】期望最大算法(EM算法)解析:Expectation Maximization Algorithm

【机器学习】期望最大算法&#xff08;EM算法&#xff09;&#xff1a;Expectation Maximization Algorithm 文章目录 【机器学习】期望最大算法&#xff08;EM算法&#xff09;&#xff1a;Expectation Maximization Algorithm1. 介绍2. EM算法数学描述3. EM算法流程4. 两个问…

C++核心编程——P25-拷贝构造函数调用时机

拷贝构造函数调用时机 C中拷贝构造函数调用时机通常有三种情况 使用一个已经创建完毕的对象来初始化一个新对象值传递的方式给函数参数传值以值方式返回局部对象 #include<iostream> using namespace std; class Person { public:Person(){cout << "Person…

深入理解Linux中信号处理过程

&#x1f525;&#x1f525; 欢迎来到小林的博客&#xff01;&#xff01;       &#x1f6f0;️博客主页&#xff1a;✈️林 子       &#x1f6f0;️博客专栏&#xff1a;✈️ Linux       &#x1f6f0;️社区 :✈️ 进步学堂       &#x1f6f0…