当前位置: 首页 > news >正文

MySQL中常用的操作语句已汇总

目录

一、库语句

1.查询现有数据库

2.创建数据库

3.选中数据库

​编辑

4.删除数据库

二、初阶表操作

1.查看数据库现有表

2.查看表结构

3.创建表

4.删除表

5.全列查询

6.删除表2

7.修改操作

三、插入操作

1.全列插入

2.指定列插入

3.一次插入多组数据

4.插入操作的细节

四、数据库的约束

1.not null

2.unique

3.default

4.primary key

5.foreign key

6.check

五、一阶查询

1.指定列查询

2.表达式查询

3.去重查询

4.排序查询

5.条件查询(*)

6.分页查询

六、二阶查询

1.新增插入查询

2.聚合查询

3.分组查询 group by

 having:

七、三阶查询/多表查询

1.多表查询及步骤

2.多表查询join on

3.外连接

4.自连接

5.子查询

6.合并查询


一、库语句

1.查询现有数据库

(1)语法:show databases;

(2)示例 

表示当前有五个数据库 

2.创建数据库

(1)语法:create database 库名

(2)创建失败示例:忘记加关键字database

(3)创建成功示例

(4)细节

数据库的名字也不能使用mysql中的关键字

除非:加上`的符号,例如:`关键字`

(5)指定字符集(*)

语法:charset 字符集名 

在创建数据库时,在名字后面加上 charset utf8

如:create database 数据库名 charset utf8

一般mysql默认字符集是GBK,这样是无法使用汉字字符的,需要指定utf8才可。我们是推荐都在创建数据库的后面加上,否则后续只能重新建数据库 

3.选中数据库

(1)语法:use 数据库名

(2)示例

(3)作用:只有选中数据库,才能进行后续的表操作 

4.删除数据库

(1)语法:drop database 数据库名字

(2)示例:

(3)后果:删除数据库后,对应所有的表也会消失,所以这个是一个很危险的操作

二、初阶表操作

在选中数据库之后才能进行的表操作,同一个数据库中,表名不能重复;不同库则可以

1.查看数据库现有表

(1)语法:show tables;

(2)示例:


 

2.查看表结构

(1)语法:desc 表名

(2)示例:可以查询表的结构,有多少列,分别对应什么名字和类型

3.创建表

(1)语法:create table 表名(变量名字 类型,变量名字 类型,……);

(2)示例:

(3)注意:名字在前,类型在后;类型就决定了后续插入数据的类型

4.删除表

(1)语法:drop table 表名

(2)示例:

(3)注意:删表是比删库还危险的操作,慎重!

5.全列查询

 (1)语法:select * from 表名

(2)作用:查询这个表的所有列和已有的数据

(3)示例:该表中只有一个数据

(4)注意:这种操作只适合在前期学习的时候使用,当数据量庞大的时候,不推荐

6.删除表2

(1)语法:delete from 表名 where 条件;

删除的维度都是一行,也需要添加合适的条件;不添加任何条件,就是删除这个表的所有

(2)与drop的区别

drop是删除整个表,表和内容都没了。

delete删除是把表的内容都删完了,但是表格还在。

(3)示例

7.修改操作

(1)语法:update 表名 set 列名 = 值 where 条件;

如果不加限制条件,会将一列所有的元素全部修改。这种会影响硬盘上面存储的数据

(2)示例:修改单个列

(3)示例:修改多个列

注意事项:

修改时,不能超出类型本身的限制,否则就是修改失败。

为了防止被修改的数据太多,我们建议一条一条的修改,也就是在后面加上limit 1的限制

三、插入操作

进行插入操作时,最好是清楚表的结构,否则容易出现错误

1.全列插入

(1)语法:insert into 表名 valuse(值,值,值,值…);

(2)作用:这样的操作是对所有的列都插入操作,值必须刚好对应上所有的列

(3)示例:关键字into是可以省略的

2.指定列插入

(1)语法:insert into 表名 (列名,列名……) values(值,值……);

(2)注意:每个值要对应的相应的列;两个列名的顺序可以换,但是相应的值顺序也要换

(3)示例:这里只插入了name、age,未插入的列默认为null值

3.一次插入多组数据

(1)一次性全列插入多组数据

做法:只需要多加几个括号即可

(2)一次性指定列插入多组数据

4.插入操作的细节

(1)基本数据类型

(1)表示整数:int

(2)表示小数:double

(3)表示字符串:varchar    使用时在后面指定长度

(4)表示时间日期:datetime

(5)decimal(a,b):表示小数,a表示这个数的长度,b表示小数的位数

(2)插入字符串

字符串例如:汉字,字符、字符串;需要在两头加上单引号或者双引号(英文)

(3)插入时间

插入时间例如:2018-3-28 也需要加上单引号或者双引号,如:"2018-3-28"

四、数据库的约束

这是在建表的时候加上的约束,约束也是对表起的效果

1.not null

(1)作用:用来限制某一列不能为空

(2)正常无约束时

(3)加上约束后

(4)插入数据失败

(5)成功插入数据

2.unique

(1)作用:限制这一列的值不能有重复的

(2)没有约束时

(3)加约束

(4)插入数据失败

3.default

(1)作用:设置默认值。当没有对这列数据赋值时,默认是default。没有加该约束时,默认是NULL

(2)正常无约束时

(3)未加约束时的默认展示

(4)加了约束后

(5)添加数据后

4.primary key

(1)作用:主键,用来标记某一列,作为身份的唯一标识。类似身份证的作用

外键的两个要求:

(1)不能为null

(2)不能重复

(2) 未设置主键时

(3)加了主键后

(4)当被主键约束且为空时

(5)当重复时

(6)not null和unique配合也可以承当主键

(7)主键的使用推荐

1.一个表只能有一个主键

2.一个主键不一定只针对一个列(很少用)

3.主键一般设置在整数类型

(8)自增主键

写法:在设置主键时,跟在主键后面。关键字:auto_increment

添加后:

作用:

当插入数据的这一列不赋值时,系统自动赋值为:当前最大值+1

插入数据:

各种情况:

3-99的值如果需要用,需要手动指定

5.foreign key

(1)作用:外键约束,用于两张表的约束。设置外键的列在父表中也是唯一的(被主键约束或者被unique约束)

(2)语法格式:子表的列名不一定要和父表名字一样

 列名 类型,foreign key (子表的列名) references 主表(父表的列)

(3)未设置外键时

他们的列名相同,按理来说student的classId必须遵循class表中的classId,也就是如果class表中没有的id,student中是不能有的。但是这两个表当前并没有任何关系,也就是没有被约束,所以可以随便填

(4)重新设置外键

外键设置的表称为子表,表示受限于父表

此时,class称为父表,student称为子表。student中的classId值在class表中要必须存在

(5)当值不存在时

正常添加:

(6)不能随便删和修改除父表的值

如何删除父表呢?:加一个标记字段

1.在父表中增加一个字段(可以约定这个值为1时,表示有效数据;当为0是,表示无效数据)

2.在想要删除的时候,不能直接delete,而是可以把这个字段改成0

3.后续在查询的时候,只能返回有效数据,因此相当于删除了

4.这种做法在计算机很多方面都有使用,称为逻辑删除

6.check

用来规定填入的某个数据只能是某个值,如:男或女

语法格式:sex varchar(2),check (sex = '男' or sex = '女')

这种用法很少,且新版本才支持,所以用的很少很少

五、一阶查询

前面提到过,全列查询是一个危险操作,所以下面学习其他方式的查询操作  

1.指定列查询

 (1)语法:select 列名,列名 from 表名

(2)示例:

2.表达式查询

(1)语法:select 表达式(由列组成) from 表名;

(2)示例:

(3)表达式可以起别名,语法:as 别名

不仅表达式可以起别名,后续的很多情况也可以起别名

3.去重查询

(1)语法:select distinct 列名 from 表名;

(2)作用:查询的所有列中,会将重复的两行合并成一行

(3)示例:第一个是未查重的,第二个是查重操作

合并失败:所有的列并不重复,只有部分重复

 

4.排序查询

(1)语法:select * from 表名  order by 列名/表达式  默认排升序

(2)排降序语法:select * from 表名  order by 列名/表达式 desc

(3)未排序:

按照math排升序

 按照math排降序

(4)细节

1.NULL在order by 的时候,视为最小值

2.如果存在多个NULL,他们的顺序是不确定的

3.select 列名 from oeder by 列名,order by后面的列名不一定要在select后面的列名中出现

4.在SQL中,对操作数进行算数运算时,只要有一个NULL,最终结果就是NULL

(5)可以排序多个列:如果第一个列名相同,则会继续比较第二个

 

5.条件查询(*)

(1)语法:select */列名/表达式/去重……  from  表名  where 条件(条件就是一些一些符号表达式,可以有多个)

(2)表达式(用来表示条件)这里不推荐使用别名

(3)示例展示

1)>,>=,<,<= 

 

2)=、<=>、!=、<>

用来判断null,一般使用<=>和<>

3)between and  前闭后闭

4)in  匹配离散集合

5)like

两个通配符

(1)%:表示可以匹配任意多个(包括0)任意字符

(2)_:表示任意一个字符

 查询孙某

like模糊匹配的缺点:开销很大,性能非常低

6)is NULL、is not null

用来查询非空/空的行

7)and、or、not   一般and的优先级高于or

逻辑符号,相当于java中的&&、||和!

(4)作用:使用好可以配合后面的操作,更细腻的查询精准的信息

6.分页查询

(1)语法:

(1)limit+数字:限制每次查询最多返回的记录个数。如:limit 3只能查询到前3条记录

(2)offset:偏移量。如:limit 3 offset 3:偏移了前3条记录,从第4条开始向后查询3条。不写offset时默认是0

(3)limit 6,3;这里的6代表offset,3代表查询的最大条数

(2)作用:配合排序操作,可以查询第几条消息

(3)示例

查询总成绩前三的同学:

六、二阶查询

 这里的查询操作,可以把多个行进行合并

1.新增插入查询

(1)语法:insert into 表1 select * from 表2;

(2)作用:在查询表1的时候,可以同时把查询到的数据插入到表2中

(3)全列查询插入

(4)指定列查询插入

2.聚合查询

通过聚合函数将多个行合并 

(1)语法:select 聚合函数(列名)  from 表名;

(2)聚合函数

函数说明
count返回查询到的数据的数量
sum返回查询到的数据总和,不是数字没有意义
avg

返回查询道德数据的平均值,不是数字没有意义

max返回查询到的数据的最大值,不是数字没有意义
min返回查询到的数据的最小值,不是数字没有意义

(3)count

 返回查询到的数据的数量(行数)。

步骤:先查询结果,再进行聚合

 求总行数:NULL也会计算在内

求个别列:NULL不会计算

(4)sum

求总和,不是数字没有意义

sum不能进行*查询,只能指定列

(5)avg

求平均值,不是数字没有意义

(6)max

求最大值,不是数字没有意义

(7)min

求最小值,不是数字没有意义

3.分组查询 group by

 (1)定义: 

对指定列进行分组操作:指定某个列,针对这个类,把值相同的行,分到一组中,可以针对每个组,分别进行聚合查询。

(2)注意事项:

1.select指定的列必须是分组依据字段,否则就会像下面的一样,有的数据不会显示。

2.非group by的列,不应该直接写在select查询的列中,但是搭配聚合函数是可以的。

会有这些问题:

(3)group by结合聚合查询进行:

查询每个岗位有多少人:

步骤

第一:先执行select role,id from emp(先将指定表中的这些列查询出来)

第二:再根据group by role,按照role这个列的值和上面查询的结果进行分组

第三:根据每个组,进行count聚合操作

id和role都进行了聚合,就不会发生数据丢失

但是这样子不可以,必须配合聚合操作

(4)求每个岗位的平均的薪水(分组依据:岗位)

错误:非group byd的列role应该使用聚合函数

修改 :待考证

 having:

给聚合查询指定条件。在group by分组之后,不能使用where语句,而是需要having

where可以在分组前使用(聚合之前的条件),也就是在平均工资里面,没有计算张三

查询每个岗位的平均工资,但是刨除平均工资超过2w的数据(条件是在聚合之后执行的,只能用having)

上面两种条件结合:

七、三阶查询/多表查询

联合查询又称多表查询,一次性可以查询多个表。

基本语法1:select * from 表名,表名 where 条件 

基本语法2:select * from 表名 join 表名 on 条件

1.多表查询及步骤

(1)同时查询两个表就行将两个表中的行分别进行全排列,也就称为笛卡儿积

 实践多表查询:

通过下面的查询:这样不设置条件直接查询,会得出很多无效的数据

加上条件:

(2)总结步骤

下面有四张表:

1:班级表

2:学生表

3:课程表

4:分数表

汇总:

总结步骤:

(1)先确定要查询的信息,来自哪些表

(2)针对这两个表进行笛卡儿积

(3)加上连接条件,去掉无效条件

(4)再根据题目要求,补充其他条件

(3)按照步骤进行查询

查询许仙同学的成绩:

 1)确定信息来自哪些表

2)对这两个表进行笛卡儿积

3)加上连接条件,去掉无效条件

4)接着补充条件

优化:

2.多表查询join on

语法:表1 join 表2  on  条件

(1)使用join on查询许仙同学的成绩 

(2)查询所有同学的总成绩,及同学的个人信息

第一步:表来自student、score

第二步:加入连接条件

第三步:优化

(3)查询所有同学的成绩,及同学的个人信息

第一步:列出相关的表:学生表、课程(所有的成绩,需要知道对应的科目)、分数表

第二步:三个表笛卡儿积

第三步:设置连接条件

第四步:精简

 一般多个表之间笛卡儿积的话,每两个表之间都会有联系的,否则是不好笛卡儿积的,数据量太庞大。

以上的写法属于内连接

3.外连接

 内连接和外连接都是基于笛卡儿积进行计算的,但是对于空值/不存在的值处理方式是不一样的。内连接只能得到两张表中都存在的数据,而外连接不一样

外连接:只能使用join on 的方式写,可以在join前头加上left/right的关键字,称为左连接/右连接。加上后表明left/right表的数据会全部输入

student  join score,此时,在join的左边student就是左侧表,右侧就是右侧板。

加了left左边的表会保证每个数据都会存在,不存在部分会有null补充

4.自连接

自连接就是同一张表对自己进行笛卡儿积

(1)查询所有同学的“计算机原理”成绩比“Java”成绩高的成绩信息

所有成绩: 

对应的课程:

题目要求就是找到课程号3的成绩大于课程和1的,也就是3>1。两个成绩都在一张表上,比较的话就是行与行之间的比较,不好实现。这个时候借助笛卡儿积就可以就两个表放在一起,这就是自连接。

直接笛卡儿积:

做法:自连接时,给两张表都起别名。下面圈起来的就是满足条件的

加上优化条件:对应同一个人

加上:左边是计算机原理课程,右边是Java课程

加上:分数对应大小关系,3>1

自连接的优缺: 

优:可以把行之间的关系转换成列之间的关系

缺:产生的很多结果是没有必要的

5.子查询

 这种查询方式将简单问题复杂化,例如直接将一个函数的返回值作为另一个函数的参数,直接写在了一行上面(复杂化)

概念: 把多个sql嵌套成了一个sql,在实际中不推荐使用。返回一行记录的子查询

(1)查询与“不想毕业”同学的同伴同学

步骤:要想知道他的同班同学,需要知道是什么班;通过名字可以查询到他们是什么班级

正常查询:

先查询“不想毕业”同学的班级号:

通过班级号可以查询到他们班:

使用子查询:

(2)多行子查询

使用in()的条件查询,在in中可以有多个参数

查询“语文”或“英语”课程的成绩信息 

需要知道课对应程号,通过课程号可以查到这科的成绩

正常的查询:

多行子查询:

6.合并查询

 可以同时查询多个表,最后把结果合并到一张表上并输出。使用关键字:union

正常查询:查询id小于3,或者名字为“英语”的课程。

使用or

使用合并查询:

这样使用union不是多此一举吗?不是的,union可以查询不同的表,而or只能针对一张表。

要求:每个表查询的结果集合列中的类型和个数都要匹配,才能合并,并且可以自动去重

两个不同的表:

合并查询:

相关文章:

MySQL中常用的操作语句已汇总

目录 一、库语句 1.查询现有数据库 2.创建数据库 3.选中数据库 ​编辑 4.删除数据库 二、初阶表操作 1.查看数据库现有表 2.查看表结构 3.创建表 4.删除表 5.全列查询 6.删除表2 7.修改操作 三、插入操作 1.全列插入 2.指定列插入 3.一次插入多组数据 4.插入…...

linux设置nginx systemctl启动

生成nginx.pid文件 #验证nginx的配置&#xff0c;并生成nginx.pid文件 /usr/local/nginx/sbin/nginx -t #pid文件目录在 /usr/local/nginx/run/nginx.pid 设置systemctl启动nginx #添加之前需要先关闭启动状态的nginx&#xff0c;让nginx是未启动状态 #关闭nginx /usr/local…...

stable diffusion faceswaplab换脸插件报错解决

错误提示&#xff1a; ERROR - Failed to swap face in postprocess method : apply_overlay() takes 3 positional arguments but 4 were given 打开插件对应目录&#xff1a; \sd-webui-aki-v4.6.1\extensions\sd-webui-faceswaplab\scripts\faceswaplab_utils中 imgutil…...

Kap - macOS 开源录屏工具

文章目录 关于 Kap 关于 Kap Kap 是一个使用web技术的开源的屏幕录制工具 官网&#xff1a;https://getkap.cogithub : https://github.com/wulkano/Kap 目前只支持 macOS 12 以上&#xff0c;支持 Intel 和 Apple silicon 你可以前往官网&#xff0c;右上方下载 你也可以使…...

Linux/Ubuntu/Debian基本命令:光标移动命令

Linux系统真的超级好用&#xff0c;免费&#xff0c;有很多开源且功能强大的软件。尤其是Ubuntu&#xff0c;真的可以拯救十年前的老电脑。从今天开始我将做一个Linux的推广者&#xff0c;推广普及Linux基础。 光标移动命令对于在终端&#xff08;Terminal&#xff09;内有效导…...

nvm下载,nodejs下载

进入nvm中文网&#xff0c;按照它的教程来&#xff0c;很简单&#xff01;&#xff01;&#xff01; 往下翻...

大数据开发(Hadoop面试真题-卷七)

大数据开发&#xff08;Hadoop面试真题&#xff09; 1、Map的分片有多大&#xff1f;2、MapReduce的map进程和reducer进程的ivm垃圾回收器怎么选择可以提高吞吐量&#xff1f;3、MapReduce作业执行的过程中&#xff0c;中间的数据会存在什么地方&#xff1f;不会存在内存中吗&a…...

计算机网络(基础篇)复习笔记——体系结构/协议基础(持续更新中......)

目录 1 计算机网络基础相关技术Rip 路由更新操作 2 体系结构(OSI 7层, TCP/IP4层)应用层运输层网络层IPv4无分类域间路由选择 CIDRIPV6 数据链路层循环冗余校验CRC协议设备 物理层传输媒体信道复用技术宽带接入技术数据通信 3 网络局域网(以太网Ethernet) 4 通信过程编码:信道极…...

怎么做加密文件二维码?分享文件更安全

怎么做一个加密文件二维码&#xff1f;在日常的工作和生活中&#xff0c;通过扫描二维码来查看或者下载文件的方式&#xff0c;被越来越多的人所使用&#xff0c;一方面是二维码的成本低&#xff0c;另一方面有利于提升便捷性和用户体验。 为了保证内容的隐私性和安全性&#…...

手机中常用的传感器

文章目录 重力传感器 Gravity sensor三维坐标 加速度传感器 Accelerometer三维坐标 陀螺仪 Gyroscope三维坐标 磁力传感器 Magnetometer三维坐标 光线传感器 Light Sensor接近传感器 Proximity Sensor其他传感器协同工作相机自动调整 传感器有唤醒和非唤醒属性 关于重力传感器和…...

电脑工作电压是多少你要看看光驱电源上面标的输入电压范围

要确定电脑的工作电压&#xff0c;必须查看电源上标注的输入电压范围。 国内法规规定民用220V电压范围为10%-15%&#xff0c;也就是说通信220V电压正常范围为187--242V&#xff0c;供电设备一般为180V。 --250V电压范围&#xff0c;即正常情况下电脑电源电压不低于187V即可工作…...

自动驾驶---Motion Planning之Speed Boundary

1 背景 在上篇博客《自动驾驶---Motion Planning之Path Boundary》中,笔者主要介绍了path boundary的一些内容,通过将道路中感兴趣区域的动静态障碍物投影到车道坐标系中,用于确定L或者S的边界,并利用道路信息再确定Speed的边界,最后结合粗糙的速度曲线和路径曲线,即可使…...

php文件操作

一、文件读取的5种方法 1&#xff0c;file_get_contents: 将整个文件读入一个字符串 file_get_contents( string $filename, bool $use_include_path false, ?resource $context null, int $offset 0, ?int $length null ): string|false 可以读取本地的文件也可以用来打…...

计算机设计大赛 目标检测-行人车辆检测流量计数

文章目录 前言1\. 目标检测概况1.1 什么是目标检测&#xff1f;1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 行人车辆目标检测计数系统 …...

Java二叉树 (2)

&#x1f435;本篇文章将对二叉树的一些基础操作进行梳理和讲解 一、操作简述 int size(Node root); // 获取树中节点的个数int getLeafNodeCount(Node root); // 获取叶子节点的个数int getKLevelNodeCount(Node root,int k); // 获取第K层节点的个数int getHeight(Node r…...

R语言数学建模(三)—— 模型工作流

R语言数学建模&#xff08;三&#xff09;—— 模型工作流 文章目录 R语言数学建模&#xff08;三&#xff09;—— 模型工作流前言一、模型工作流1.1 模型的起点和终点在哪里&#xff1f;1.2 Workflow基础1.3 将原始变量添加到workflow()1.4 workflow()如何使用formula基于树的…...

Android谈谈ArrayList和LinkedList的区别?

Android中的ArrayList和LinkedList都是Java集合框架中的List接口的实现&#xff0c;但它们在内部数据结构和性能特性上有所不同&#xff1a; 1. **内部数据结构**&#xff1a; - ArrayList是基于动态数组&#xff08;可调整大小的数组&#xff09;实现的。它在内存中是连续…...

Appcms存储型XSS漏洞复现

君衍. 一、环境介绍二、环境部署三、测试回显四、多次注入1、第一条评论2、第二条评论3、管理员登录查看 五、编写脚本获取cookie 一、环境介绍 这里需要注意&#xff0c;我没有找到原有的该环境源码包&#xff0c;因为这个是很久前的漏洞了&#xff0c;在XSS学习中可以查看下…...

springcloud-alibaba Sentinel入门

Releases alibaba/Sentinel GitHubSentinel下载官方 在cmd 里面运行 启动命令 java -jar sentinel-dashboard-1.8.6.jar 启动成功前提 java环境 &#xff0c;已经注册到服务注册中心&#xff0c;8080端口没有被占用 启动后访问地址为 qhttp://localhost:8080http://lo…...

Linux系统——web服务拓展练习

目录 一、实验环境搭建 1. Centos 7-5——Client 2. Centos 7-1——网关服务器 3. Centos 7-2——Web1 4. Centos 7-3——Web2 5. Centos 7-4——Nginx 二、在Nginx服务器上搭建LNMP服务&#xff0c;并且能够对外提供Discuz论坛服务&#xff1b;在Web1、Web2服务器上搭建…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...