day26_mysql

news2024/10/5 21:20:21

今日内容

零、 复习昨日
一、MySQL

一、引言


1.1 现有的数据存储方式有哪些?

  • Java程序存储数据(变量、对象、数组、集合),数据保存在内存中,属于瞬时状态存储。

  • 文件(File)存储数据,保存在硬盘上,属于持久状态存储。

1.2 以上存储方式存在哪些缺点?

  • 没有数据类型的区分。

  • 存储数据量级较小。

  • 没有访问安全限制。

  • 没有备份、恢复机制。

二、数据库


2.1 概念

​ 数据库是“按照数据结构来组织、存储和管理数据的仓库。是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。

2.2 数据库的分类

  • 网状结构数据库:美国通用电气公司IDS(Integrated Data Store),以节点形式存储和访问。
  • 层次结构数据库:IBM公司IMS(Information Management System)定向有序的树状结构实现存储和访问。
  • 关系结构数据库:Oracle、DB2、MySQL、SQL Server,以表格(Table)存储,多表间建立关联关系,通过分类、合并、连接、选取等运算实现访问。
  • 非关系型数据库:ElastecSearch、MongoDB、Redis,多数使用哈希表,表中以键值(key-value)的方式实现特定的键和一个指针指向的特定数据。

三、数据库管理系统


3.1 概念

​ 数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。


RDBMS 关系数据库管理系统(Relational DataBase Management System,RDBMS)

3.2 常见数据库管理系统

  • Oracle:被认为是业界目前比较成功的关系型数据库管理系统。Oracle数据库可以运行在UNIX、Windows等主流操作系统平台,完全支持所有的工业标准,并获得最高级别的ISO标准安全性认证。
  • DB2:IBM公司的产品,DB2数据库系统采用多进程多线索体系结构,其功能足以满足大中公司的需要,并可灵活地服务于中小型电子商务解决方案。
  • SQL Server:Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点。
  • SQLLite:应用在手机端的数据库。

四、MySQL


4.1 简介

​ MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS(Relational Database Management System,关系数据库管理系统) 应用软件之一。

4.2 访问与下载

官方网站:https://www.mysql.com/

下载地址:https://dev.mysql.com/downloads/mysql/

版本选择
image-20230314192923095
下载页面
image-20230314192930024

4.3 安装

两种安装方案,详见安装文档

4.4 使用

  • 启动mysql
    • 命令net start mysql
    • 任务管理器启动(ctrl+shift+esc)
  • 登录mysql
    • mysql -uroot -pxxxxx
  • 退出mysql
    • exit

五、SQL语言

​ SQL(Structured Query Language)结构化查询语言,用于存取数据、更新、查询和管理关系数据库系统的程序设计语言。

SQL语言有标准,ISO定制了SQL99标准

  • 经验:通常执行对数据库的“增删改查”,简称C(Create)R(Read)U(Update)D(Delete)。
  • DDL(Data Definition Language) 数据定义语言,定义数据库,表,列等
  • DML(Data Manipulation Language) 数据操作语言,操作内部数据(增,删除,修改)
  • DQL(Data Query Language) 数据查询语言,对数据的查询
  • DCL(Data Control Language) 数据控制语言,定义数据的访问控制和安全

六、DDL

mysql是RDBMS: 是关系型数据库管理系统,它管理很多个数据库

库: 一个项目一个数据库,数据库内有很多表

表: 一个分类一个表,表内有很多列

列:一个列代表一个特性(属性/字段)

行:一行代表一个具体实例

image-20230504165304438

6.1 数据库操作

查看MySQL中所有数据库

mysql> SHOW DATABASES; #显示当前MySQL中包含的所有数据库
数据库名称描述
information_schema信息数据库,其中保存着关于所有数据库的信息(元数据)。
元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。
mysql核心数据库,主要负责存储数据库的用户、权限设置、关键字等,
以及需要使用的控制和管理信息,不可以删除。
performance_schema性能优化的数据库,MySQL 5.5版本中新增的一个性能优化的引擎。
sys系统数据库,MySQL5.7版本中新增的可以快速的了解元数据信息的系统库
便于发现数据库的多样信息,解决性能瓶颈问题。

创建自定义数据库

mysql> CREATE DATABASE mydb1; #创建mydb数据库
mysql> CREATE DATABASE mydb2 CHARACTER SET gbk; #创建数据库并设置编码格式为gbk
mysql> CREATE DATABASE IF NOT EXISTS mydb4; #如果mydb4数据库不存在,则创建;如果存在,则不创建。

查看数据库创建信息

mysql> SHOW CREATE DATABASE mydb2; #查看创建数据库时的基本信息

修改数据库

mysql> ALTER DATABASE mydb2 CHARACTER SET gbk; #修改数据库的字符集

ps: 数据库一旦创建不能修改名字,只能修改编码格式,但是我们在安装mysql时已经确定了数据格式为UTF-8,所以不需要动!!

删除数据库

mysql> DROP DATABASE mydb1; #删除数据库mydb1

查看当前所使用的数据库

mysql> select database(); #查看当前使用的数据库

使用数据库

mysql> USE mydb1; #使用mydb1数据库

6.2 数据表操作

查询当前库下的所有表

mysql> show tables;

创建数据表[重点]


CREATE TABLE 表名(

​ 列名 数据类型 [约束],

​ 列名 数据类型 [约束],

​ …

​ 列名 数据类型 [约束] //最后一列的末尾不加逗号

)[charset=utf8] //可根据需要指定表的字符编码集

列名数据类型说明
subject_idINT课程编号
subject_nameVARCHAR(20)课程名称
subject_hoursINT课程时长
#依据上述表格创建数据表,并向表中插入 3 条测试语句
CREATE TABLE subject(
  subject_id INT,
  subject_name VARCHAR(20),
  subject_hours INT
)charset=utf8;
mysql> -- 创建表
mysql> -- 创建学生表(stu),列: id 数字类型,name 字符串类型,score 浮点型 ,birthday 日期类型
mysql> create table stu(  -- 创建表
    -> id int,  -- id是列名,int是数据类型,长度是11,默认可以不写
    -> name varchar(20), -- name是列名,varchar是可变长字符类型
    -> sex char(1), -- sex性别,char定长字符串
    -> score double(10,2),-- score 是列名,double浮点型,10是总长度,2其中小数点个数
    -> birthday date -- birthday是列名,date是日期类型,不需要长度
    -> );
idnamesexscorebirthday
数据类型解释长度
int整形11,固定,可以省略
double浮点型(x,y) 总长x位,其中包含y位小数
char定长字符0-255,声明(10)的字符,即使字符不够,也会占用10位
varchar可变长字符0-255,声明(10)的字符,会根据实际存储缩放
date日期没有长度
datatime日期时间没有长度
timestamp时间戳没有长度

查看表结构

# 查看表结构
desc stu;

向现有表中添加列

#在课程表基础上添加gradeId 列
ALTER TABLE subject ADD gradeId int;

删除表中的列

#删除课程表中 gradeId 列
ALTER TABLE subject DROP gradeId;
  • 注意:删除列时,每次只能删除一列

修改列名

#修改课程表中 subjectHours 列为 classHours
ALTER TABLE subject CHANGE subjectHours classHours int ;
  • 注意:修改列名时,在给定列新名称时,要指定列的类型和约束

修改表名

#修改课程表的subject 为 sub
ALTER TABLE subject rename sub;

删除学生表

#删除学生表
DROP TABLE subject;
-- 库操作
create database 名字;
show databases;
drop database 名字;
alter database 名字 xxxx
-- 表操作
show tables;
create table 名字 (列名 数据类型,列名 数据类型,...)
alter table 名字 xxx
drop table 名字

-- 以上命令,熟悉即可
-- 最重要的是 创建表 语句

七、客户端工具


7.1 Navicate

Navicat是一套快速、可靠并价格相宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。

7.2 SQLyog

MySQL可能是世界上最流行的开源数据库引擎,但是使用基于文本的工具和配置文件可能很难进行管理。SQLyog提供了完整的图形界面,即使初学者也可以轻松使用MySQL的强大功能。其拥有广泛的预定义工具和查询、友好的视觉界面、类似 Excel 的查询结果编辑界面等优点。

idea中可以安装插件操作数据库

Intelij公司 DataGrip

dbeaver工具

7.2.1 连接mysql

image-20230505092341999

7.2.2 创建数据库

image-20230505093635995

7.2.3 使用数据库,查看表

选中数据库和表展开即可

image-20230505093826083

7.2.4 创建表

image-20230505093923810

image-20230505094116712

image-20230505094142893

7.2.5 删除表

image-20230505094231423

7.2.6 编写sql语句

image-20230505094343105

八、DML[重点]

DML 数据操作语言,其实对表中的数据进行

8.1 插入

插入,就是向数据库表中插入数据,语法

insert into 表名 (字段1,字段2,...) values (1,2,...);

insert into 表名 values (1,2,...);
-- 注释
# 注释
/*
* 多行注释
*/
CREATE TABLE `stu` (
  `sid` int(11) DEFAULT NULL,
  `sname` varchar(10) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `score` double(5,2) DEFAULT NULL,
  `birthday` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ========= 插入 ===============
/*
语法:
insert into 表名 (列名1,列名2,...) values (值1,值2,...);
注意事项:
1. 字符串和日期使用单引号
2. 如果插入全部字段,字段可以省略直接写值,但是值要跟原表的个数,顺序,类型一致
*/
-- 插入学生表全部字段
insert into stu (sid,sname,age,score,birthday)
values (1,'小王',18,98.2,'2000-05-05');
-- 如果插入全部字段,可以简写为不写列直接写值
insert into stu values (2,'小李',19,88.2,'2001-05-05');
-- 可以指定插入某些列
insert into stu (sid,sname) values(3,'小黑');
-- 插入的列顺序没有必要和原表一致
insert into stu(age,sid,score) values (20,4,88.2);

8.2 更新

语法

update 表名 set 字段 =[, 字段2 =2, ... ] [where 字段 =];
-- [, 字段2 = 值2, ... ] 是指,可选的,可以同时修改多个列的值
-- [where 字段 = 值] 是指,可选的,加上是指过滤,只更新符合条件的数据
--                            不加,就是更新全表数据, 不推荐!!
/*
语法:
	update 表名 set 字段=值,字段2=值2,... [where 字段 = 值]
	建议是加上where语句,否则会更新全表全部数据
*/
-- 更新小黑年龄为21
update stu set age = 21 where sname = '小黑';
-- 更新学号为4的学生姓名为詹姆斯,年龄39
update stu set sname = '詹姆斯',age = 39 where sid = 4;
-- 修改学号为1的学生加1岁
update stu set age = age + 1 where sid = 1;
-- 如果不加where更新全表[慎用]
update stu set birthday = '2023-05-06';

8.3 删除

语法

delete from 表名;  -- 删除全表数据
delete from 表名 where 字段 =; -- 只删除符合条件的数据
/*
语法:
	delete from 表名 [where 字段 = 值];
	建议是加上where语句,按条件删除,否则删除全表
-------------------------------------------------
工作中其实很多时候我们看到的删除不是真的删除...
实际开发中一般是在表中定义一个状态state字段
state=1 正常
state=2 注销
在查询的时候只查询正常信息,删除时其实是执行的更新
*/
-- 删除id为5的学员信息
delete from stu where sid = 5;

-- 删除全表数据
delete from stu;

-- 删除全表数据
truncate table stu;

8.4 delete和truncate的区别[面试问]

-- 删除全部[慎用]
delete from stu;
-- 删除全表
truncate table stu;
deletetruncate
语句类型DMLDDL
原理逐条删除数据删除表结构和数据,重建表
空间删除数据在内存中有删除后碎片很干净,没有空间碎片
效率
恢复可以恢复数据不能恢复
自增不影响自增顺序影响,从1开始

九、约束

约束,即限制,就是通过设置约束,可以限制对数据表数据的插入,删除,更新


约束设置的语法,大部分是

create table 表名(
字段 数据类型(长度) 约束,
字段 数据类型(长度) 约束
);

9.1 数据类型

其实数据类型也是一种约束,例如设置id列为int类型,那就不能乱给id设置字符串或者日期等数据

9.2 主键约束

主键(primary key)约束非常重要,以后开发中基本上每张表都要有主键约束,作用是设置了主键约束的列,有以下效果

  • 不能为空
  • 不能重复

一般主键是给id设置的

设置主键方式有三种:

  • 在建表时给列直接指定
  • 在建表语句的最后指定某一列是主键
  • 给以建好的表修改设置主键
  • 图形化操作
--  =============== 主键约束 ===============
-- 主键约束: 该列数据不能为空,不能重复
-- 方案1: 建表时给定主键
create table tb_1(
id int primary key, -- 建表时设置id为主键
age int
);
insert into tb_1 (age) value (18); -- 报错,主键不能为空
insert into tb_1 (id) value (1);
insert into tb_1 (id) value (1); -- 报错,主键不能重复
-- 方案2: 建表时,在最后设置主键
create table tb_2(
id int,
age int,
primary key(id)
);
insert into tb_2 (age) value (18); -- 报错,主键不能为空
insert into tb_2 (id) value (1);
insert into tb_2 (id) value (1); -- 报错,主键不能重复
-- 这种设置主键的方式,一般适合用于设置联合主键
create table tb_3(
id int,
age int,
primary key(id,age) -- id和age是联合主键
);
insert into tb_3 (age) value (18); -- 报错,主键id不能为空
insert into tb_3 (id) value (1); -- 报错,主键age不能为空
insert into tb_3 (id,age) value (1,18); -- 可以
insert into tb_3 (id,age) value (2,18); -- 可以
insert into tb_3 (id,age) value (2,19); -- 可以
insert into tb_3 (id,age) value (1,18); -- 报错,联合主键重复
-- 方案3: 建表后再修改添加主键
create table tb_4(
id int,
age int
);

insert into tb_4 (age) value (18); 
insert into tb_4 (id) value (1);
-- 修改表,添加主键
alter table tb_4 add primary key(id);
-- 方案4:图形操作
insert into tb_5 (age) value (18); 
insert into tb_5 (id) value (1);

image-20230505151259894

image-20230505151344476

image-20230505151519011

image-20230505151431421

9.3 自增约束

自增(auto_increment)约束,主要是配合主键使用,防止主键为空,重复

--  =============== 主键自增约束 ===============
create table tb_6(
id int primary key auto_increment,
age int
);
insert into tb_6 (age) value (18);-- 没有给主键赋值,会从1开始递增
insert into tb_6 (age) value (18);-- 每次递增1
insert into tb_6 (id,age) value (4,18);-- 虽然有递增,也可以自己指定
insert into tb_6 (age) value (18);-- 在上一行数据基础上递增1
delete from tb_6 where id = 5; -- 删除数据不影响递增
insert into tb_6 (age) value (18);

image-20230505152517711

9.4 唯一约束

唯一(unique)约束,设置了唯一约束的列,的值不能重复

-- ================= 唯一约束 ================
create table t5(
 id int,
 name varchar(20) unique -- 唯一约束
);
insert into t5(name) values('aa');
-- 报错,name列的值重复, Duplicate entry 'aa' for key 'name'
insert into t5(name) values('aa');

9.5 非空约束

非空(not null)约束,设置了非空约束的列的值不能为空

-- ================= 非空约束 ================
create table t6(
 id int,
 name varchar(20) not null -- 非空约束
);
-- name不能没有值
insert into t6 (id) values (1);
-- 给name赋值
insert into t6 (id,name) values (1,'aaa');
-- 只是不能为空,可以重复
insert into t6 (id,name) values (2,'aaa');

image-20230505155959293

9.6 默认值

默认值(default),给列设置默认值约束后,如果该列在插入数据时没有给值,就自动赋值默认值

--  =============== 默认值约束 ===============
-- 默认的默认值是null
-- 也可以主动设置默认值
create table tb_9 (
id int,
name varchar(10) default '肖王巴',
age int default 1,
birthday date default '1970-01-01'
)
insert into tb_9 (id) values (1);-- 其他列没设置值,就会用默认值替代
insert into tb_9 (id,name,age,birthday) 
values (2,'小李',18,'2020-01-01');-- 给定有值,就不使用默认值

image-20230505160616175

9.7 外键约束[了解]

外键,是多表之间接的一种关联关系的一种限制.

语法

constraint 外键名 foreign key (当前表中的列名) references(主键);

设计订单表和商品表,订单表的数据要关联商品表数据

-- 商品表
create table tb_goods(
 gid int primary key,
 gname varchar(20),
 descr varchar(20)
);

-- 订单表 (订单表关联了商品表)
create table tb_order(
 oid int primary key,
 order_time datetime,
 gid int,
 -- 设置外键
 constraint fk_order_goods foreign key(gid) references tb_goods(gid)
);
/*
 被引用的表称为父表 parent , tb_goods
 引用别人的表称为子表 child , tb_order
*/
-- 给父表随便插入数据
insert into tb_goods values (2,'键盘','敲代码没有bug');
-- 给子表随便插入数据不行!! 这个数据得是父表中有的才行
insert into tb_order values (1,'2022-11-11',1);
-- 子表可以删除数据
delete from tb_order where oid = 1;

-- 父表被引用的数据不能删除
delete from tb_goods where gid = 2;
delete from tb_goods where gid = 1;

image-20230505165521214

image-20221117150248420

  • RESTRICT:如果想要删除父表的记录时,而在子表中有关联该父表的记录, 则不允许删除父表中的记录;
  • NO ACTION:同 RESTRICT,也是首先先检查外键;
  • CASCADE:父表 delete、update 的时候,子表会 delete、update 掉关联记录;
  • SET NULL:父表 delete、update 的时候,子表会将关联记录的外键字段所在 列设为 null,所以注意在设计子表时外键不能设为 not null;

9.8 练习

自己创建表,设计字段,把所有约束都试一遍

宠物(pet)表

id 整型 主键自增

昵称 字符串 唯一

体重 浮点型 不能为空

性别 默认值 公

create table pet(
    id int primary key auto_increment,
    nick varchar(10) unique,
    weight double(10,2) not null,
    sex char(1) default '公'
);

插入,更新测试

insert into pet (nick,weight) values ('小黑',5.2);

十、DQL

DQL 主要指查询语句,有查询单表数据,也有查多表数据表,今天主要学习单表查询

  • 基本查询
  • 条件查询
  • 模糊查询
  • 排序查询
  • 聚合查询
  • 去重查询
  • 分组查询
  • 限制查询

1.1 数据准备

将发的stu.sql导入到MySql中

image-20230314205804686

1.2 基本查询

select 字段1,字段2,… from 表名;


查询返回的是一张虚拟表,查询对原表数据没有任何影响,默认查询的全表数据

-- 基本查询
-- 查询所有列
select sid,sname,age,sex,score,cid groupLeaderId from stu;
-- 查询所有列,在测试,练习时可以使用*代替
select * from stu;
-- 查询指定 列
select sid,sname,sex from stu;

-- 年龄+1
select age+1 from stu;
算数运算符描述
+两列做加法运算
-两列做减法运算
*两列做乘法运算
/两列做除法运算

注意:%是占位符,而非模运算符。

1.3 条件查询

条件查询就是在基础查询基础上,再给sql设置条件,只查询部分符合条件的数据

条件语句 : select 字段1,字段2,… from 表名 where 字段 条件 值;

条件运算符

  • =
  • >
  • <
  • >=
  • <=
  • !=
  • and
  • or
  • in
  • not in
  • between…and
-- ============== 条件查询 ==============
-- 查询学号为1001的学生信息
select * from stu where sid = 1001;
-- 查询学生成绩大于60的学生id 姓名,成绩
select sid,sname,score from stu where score > 60;
-- 查询学生性别为女,并且年龄小于50的记录
select * from stu where sex = '女' and  age < 50;
-- 查询学生学号为1001,或者姓名为李四的记录
select * from stu where sid = 1001 or sname = '李四';
-- 查询学号为1001,1002,1003的记录
select * from stu where sid = 1001 or sid = 1002 or sid = 1003;
select * from stu where sid in (1001,1002,1003);
select * from stu where sid >= 1001 and sid <= 1003;
-- 查询学号不是1001,1002,1003的记录
select * from stu where sid not in (1001,1002,1003);
select * from stu where sid != 1001 and sid != 1002 and sid != 1003;
-- 查询学生年龄在20到40之间的学生记录
select * from stu where age >= 20 and age <= 40;
select * from stu where age between 20 and 40;
-- 查询性别非男的学生记录
select * from stu where sex != '男';
select * from stu where sex = '女';
--  查询性别为null的学生记录
update stu set sex = null where sid = 1009;
--  查询是不能=null运算
-- select * from stu where sex = null;
select * from stu where sex is null;
--  查询性别不为null的学生记录
select * from stu where sex is not null;

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

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

相关文章

多款智能骑行终端齐登场,移远通信闪亮第31届中国国际自行车展览会

近年来&#xff0c;自行车、电动车市场火爆&#xff0c;随着数字化、智能化的持续深入&#xff0c;更具科技感的骑行工具受到了越来越多年轻一代的青睐。5月5-8日&#xff0c;以" 更安全、更智能、更低碳 " 为主题的第 31 届中国国际自行车展览会在上海新国际博览中心…

Java连接顺丰开放平台

今天使用Java去访问顺丰的开放平台时&#xff0c;JSON转换一直不成功&#xff0c;最终发现是 可以看到这里是 "apiResultData": "{\"success\": .........它是以 " 开头的&#xff01;&#xff01;&#xff01;如果是对象的话&#xff0c;那么…

Zookeeper初识

序 Zookeeper是什么&#xff0c;Zookeeper有什么用&#xff1f;因为在研究Zookeeper源码之后&#xff0c;就要去研究Dubbo源码&#xff0c;而Dubbo必然用到了Zookeeper&#xff0c;而我在写这篇博客时&#xff0c;我也是一个Zookeeper小白&#xff0c;我也有7年开发经验了&…

将ROS1和ROS2安装到同一个ubuntu系统中,ROS2安装

1. 本文测试环境: ubuntu:20.04,虚拟机 ROS1:noetic ROS2:foxy 2. 先说结论 ROS1 与 ROS2 共存,需要考虑三个问题: 1) 不同Ubuntu版本,有不同版本的ROS1和ROS2推荐,尽量不要任性地乱装; 2)ROS1和ROS2安装过程中,是否会出现文件“删改”的问题?目前使用下来,并…

章节1:PHP反序列化渗透与防御

章节1&#xff1a;PHP反序列化渗透与防御 1.1-PHP类与对象 类Class 一个共享相同结构和行为的对象的集合。 对象Object 类的实例 1.2-PHP Magic函数 Magic Methods https://www.php.net/__sleep 函数作用 函数作用__construct当一个对象创建时被调用__destruct当一个对象…

Linux_红帽8学习笔记分享_10(SELinux管理与防火墙)

Linux_红帽8学习笔记分享_10(SELinux管理与防火墙) 文章目录 Linux_红帽8学习笔记分享_10(**SELinux管理与防火墙**)1.Linux系统的安全机制1.1 Filesystem1.2 Service1.3 Firewall1.4 SELinux 2.SElinux理论概述3.SElinux的配置文件3.1 SELINUX参数3.2 SELINUXTYPE参数 4.查看和…

网络安全行业职位解析:如何选择适合自己的职业发展路径?

前言 网络安全行业发展迅速&#xff0c;各种职位层出不穷&#xff0c;这给刚入门的小伙伴带来了很大的困惑&#xff1a;我应该选择哪个职位&#xff1f;如何才能在这个行业立足并获得高薪工作&#xff1f;如果你也有这些疑惑&#xff0c;那么恭喜你&#xff0c;来到了正确的地…

git push 上去的文件操作

先在git 创建一个仓库&#xff0c;仓库创建好后有一个快速上手的页面 注意第一个是你的登录账号和密码这个是账号和密码这个是你这个仓库的地址 接下来在你要上传的文件右键git bash here 进入 1. 先初始化进入 git init 2.再登录和输入你的密码登录好了&#xff0c;可以再初…

Java笔记_17(异常、File)

Java笔记_17 一、异常1.1、异常体系介绍1.2、编译时异常和运行时异常1.3、异常的作用1.4、异常的处理方式1.5、捕获异常的灵魂四问1.6、异常中的常见方法1.7、抛出处理1.8、异常-练习&#xff08;键盘录入数据&#xff09;1.9、自定义异常 二、File2.1、File的概述和构造2.2、F…

《Java虚拟机学习》 java代码的运行过程

1. Java文件转换 当我们保存java文件后&#xff0c;首先由编译器编译成class文件&#xff0c;然后通过Java虚拟机将class文件转换成字节码文件 2.Java虚拟机是怎么运行Java文件 首先将java文件加载到java虚拟机中&#xff0c;然后由虚拟机将类元信息存储在 虚拟机的方法区中。…

多态小Tips

目录 1.虚函数 2. 设置为虚函数 3.多态 4.多态类型的调用 5.抽象类和纯虚函数 6.虚表 7.练习题 1.虚函数 虚函数是被virtual修饰的类成员函数 virtual关键字只在声明时加上&#xff0c;在类外实现时不能加。 static和virtual不能同时使用。 2. 设置为虚函数 首先&#xff0c…

企业网盘选购攻略,如何选择最适合你的云存储服务?

在如今的企业办公中&#xff0c;每天都会产出各种不同类型的文件&#xff0c;传统纸质文件的管理方式&#xff0c;不仅不方便协作&#xff0c;而且容易丢失。于是企业将目光转向企业网盘工具&#xff0c;企业网盘的热门肯定了其在文件管理与协作方面的表现。那么企业网盘哪个好…

网络安全(非常详细)从零基础入门到精通,看完这一篇就够了。

学习网络安全方向会遇到哪些问题&#xff1f; 1.打基础的时间长 学基础花费了很长的时间&#xff0c;光学语言都有好几门&#xff0c;有的人会止步于学习linux系统及命令的路上&#xff0c;更多的人会停在学习语言上面&#xff1b; 2.知识点掌握的不够清楚 对于网络安全基础…

OpenPCDet系列 | 5.模型前向传播流程

文章目录 前向传播流程1. 模型初始化2. 模型训练前向传播前向传播流程 这里以PointPillars模型为例,在PointPillars模型中主要划分了以下4个主要的模块,以下某块首先会在build_network中进行初始化,然后在具体前向传播时通过forward函数进行。下面进行区分。 PointPillars…

TCP/IP网络编程(二)

TCP/IP网络编程读书笔记 第7章 优雅地断开套接字连接7.1 基于TCP的半关闭7.1.1 单方面断开连接带来的问题7.1.2 套接字和流&#xff08;Stream&#xff09;7.1.3 针对优雅断开的shutdown函数7.1.4 为何要半关闭7.1.5 基于半关闭的文件传输程序 7.2 基于Windows的实现7.3 习题 第…

揭秘|从帕丽斯·希尔顿引领其帝国进入元宇宙学到的品牌建设经验

你是否曾想过&#xff0c;元宇宙是如何与世界上的知名品牌和名人达成合作的&#xff1f;在本期的文章中&#xff0c;我们邀请了 11:11 媒体的 Web3 和元宇宙总监 Cynthia Miller&#xff0c;一起探讨帕丽斯希尔顿如何通过 Parisland 和 Cryptoween 将她的帝国带入 The Sandbox&…

嵌入式学习笔记——IIC通信

IIC通信 前言IIC概述通信特征物理拓扑结构IIC通信的流程IIC的特点&#xff1a; STM32的IIC通信GPIO模拟IICIIC的时序组成&#xff08;主机对从机写入数据&#xff09;1.起始信号2.器件地址与读写位3.从机应答信号5.传输的数据与结束信号 IIC的时序组成&#xff08;主机对从从机…

MySQL调优系列(二)——数据类型优化

一、总则 1、更小的数据类型更好 应该尽量使用可以正确存储数据的最小数据类型&#xff0c;更小的数据类型通常更快&#xff0c;因为它们占用更少的磁盘、内存和CPU缓存&#xff0c;并且处理时需要的CPU周期更少&#xff0c;但是要确保没有低估需要存储的值的范围&#xff0c…

OpenCV中的图像处理3.1-3.3(三)色彩空间、几何变换、阈值处理

目录 3.1 改变色彩空间目标改变色彩空间对象跟踪如何找到HSV值来追踪&#xff1f;练习 3.2 图像的几何变换目标变换缩放平移旋转仿射变换透视变换其他资源 3.3 图像阈值处理目标简单的阈值处理自适应阈值处理Otsu的二值化Otsu的二值化是如何工作的&#xff1f;其他资源练习 翻译…

Netty基础(二)

1.Netty高性能架构设计 1.1.线程模型基本介绍 1>.不同的线程模式,对程序的性能有很大影响,为了搞清Netty线程模式,我们来系统的讲解下各个线程模式,最后看看Netty线程模型有什么优越性; 2>.目前存在的线程模型有: ①.传统阻塞I/O服务模型; ②.Reactor(反应器)模式; 3…