Java-MySQL

news2024/11/18 3:46:24
数据库基础知识
先谈发音
MySQL 如何发音?在国内 MySQL 发音有很多种, Oracle 官方文档说他们念作
My sequal['si:kwə l]

 

数据库基本概念
1
● 数据
数据( Data )是指对客观事物进行描述并可以鉴别的符号,这些符号是可识别的、抽象的。它不仅指狭义上的数字,而是有多种表现形式:字母、文字、文本、图形、音频、视频等。
2
● 数据库
数据库是数据管理的有效技术,是由一批数据构成的有序集合,这些数据被存放在结构化的数据表里。数据表之间相互关联,反映客观事物间的本质联系。
3
● 数据库管理系统
数据库管理系统( Database Management System DBMS) 是用来定义和管理数据的软件。
● 数据库应用程序
数据库应用程序( Database Application System DBAS )是在数据库管理系统基础上,使用数据库管理系统的语法,开发的直接面对最终用户的应用程序。
5
● 数据库管理员
数据库管理员( Database Administrator DBA )是指对数据库管理系统进行操作的人员,其主要负责数据库的运营和维护。
数据库分类

 关系型数据库

关系型数据库最典型的 数据结构是表 ,由 二维表 及其 之间的联系 所组成的一个数据组
织。可以采用结构化查询语言( SQL )对数据库进行操作。
        优点:
① 易于维护:都是使用表结构,格式一致;
② 使用方便:SQL 语言通用,可用于复杂查询;
③ 复杂操作 支持SQL ,可用于一个表以及多个表之间非常复杂的查询。
        缺点:
① 读写性能比较差,尤其是海量数据的高效率读写;
② 固定的表结构,灵活度稍欠;
③ 高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
非关系型数据库
非关系型数据库也称之为 NoSQL 数据库,是一种数据结构化存储方法的集合,可以是文档或者键值对等。
        优点:
① 格 式灵活:存储数据的格式可以是 key,value 形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
② 速度快:nosql 可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
③ 高扩展性;
④ 成本低:nosql数据库部署简单,基本都是开源软件。
        缺点:
① 不提供sql支持,学习和使用成本较高;
② 无事务处理;
③ 数据结构相对复杂,复杂查询方面稍欠。
MySQL 基础知识

 MySQL简介

MySQL 是一个关系型数据库管理系统, 由瑞典 MySQL AB 公司开发, 目前属于 Oracle 公司。 MySQL 是一种关系型数据库管理系统,关系型数据库将数据保存在不同的表 中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL 特点
MySQL 是开源的。
MySQL 支持大型系统的数据库。可以处理拥有上千万条记录的大型数据库。 MySQL 使用标准的 SQL 数据语言形式。
MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C C++ Python Java Perl PHP 等。
MySQL 存储数据量较大, 32 位系统表文件最大可支持 4GB 64位系统支持最大的表文件为 8TB
MySQL 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 MySQL 系统。
MySQL 分类
① MySQL分为社区版
社区版是完全开源免费的,社区版也支持多种数据类型和标准的SQL查询语言,能够对数据进行各种查询、增加、删除、修改等操作,所以一般情况下社区版就可以满足开发需求了。 ② 企业版
② 企业版是收费的。即使在开发中需要用到一些付费的附加功能,价格相对于昂贵的 Oracle、 DB2 等也是有很大优势的。对数据库可靠性要求比较高的企业可以选择企业版。
下载 MySQL
MySQL 官网地址: mysql.com

 

 

MySQL的安装与卸载

MySQL安装

 

 

 

 

 

 

 

 

 

 

 

 

MSQL 卸载

 

 

 

 

 

 连接MySQL

 

通过 MySQL 自带客户端工具

 

可通过 MySQL 自带的客户端工具链接 MySQL

 

通过客户端工具可对 MySQL 进行操作。

 

通过 MySQL 客户端工具的快捷方式连接 MySQL

 

Navicat工具的使用

 

 

 

SQL 语言

 

SQL 语言简介
结构化查询语言 (Structured Query Language) 简称 SQL( 发音: sequal['si:kwə l]) ,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL 能做什么?
          ● SQL 面向数据库执行查询
          ● SQL 可在数据库中插入新的记录
          ● SQL 可更新数据库中的数据
          ● SQL 可从数据库删除记录
          ● SQL 可创建新数据库
          ● SQL 可在数据库中创建新表
          ● SQL 可在数据库中创建存储过程
          ● SQL 可在数据库中创建视图
          ● SQL 可以设置表、存储过程和视图的权限
SQL 标准
SQL 1986 10 月由美国国家标准局( ANSI )通过的数据库语言美国标准,接着,国际标准化组织(ISO )颁布了 SQL 正式国际标准。1989 4 月, ISO 提出了具有完整性特征的 SQL89 标准,1992 年 11 月又公布了 SQL92 标准,在此标准中,把数据库分为三个级别:基本集、标准集和完全集。在 1999 年推出 99 版标准。 最新版本为 SQL2016 版。比较有代表性的几个版本: SQL86 、 SQL92、 SQL99
SQL 语言分类
① 数据查询语言(DQL: Data Query Language )其语句,也称为“数据检索语句 ,用以从表中获得数据,确定数据怎样在应用程序给出。关键字 SELECT DQL (也是所有 SQL )用得最多的动词。
        ● SELECT
        ● FROM
        ● WHERE
        ● ORDER BY
        ● HAVING
② 数据操作语言(DML: Data Manipulation Language )其语句包括动词 INSERT UPDATE DELETE 。它们分别用于添加,修改和删除表中的行。
        ● INSERT:添加数据
        ● UPDATE:更新数据
        ● DELETE:删除数据
③ 数据定义语言(DDL: Data Definition Language )定义数据库对象语言,其语句包括动词 CREATE DROP 等。
        ● CREATE:创建数据库对象
        ● ALTER:修改数据库对象
        ● DROP:删除数据库对象
④ 数据控制语言(DCL: Data Control Language )它的语句通过GRANT 或 REVOKE 获得许可,确定用户对数据库对象的访问。
        ● GRANT:授予用户某种权限
        ● REVOKE:回收授予的某种权限
⑤ 事务控制语言(TCL : Transaction Control Language )它的语句能确保被 DML 语句影响的表的所有行及时得以更新。
        ● COMMIT:提交事务
        ● ROLLBACK:回滚事务
        ● SAVEPOINT:设置回滚点
注意:
        数据操纵语言DML insert update delete )针对表中的数据 ;而数据定义语言DDL create alter drop )针对数据库对象,比如数据库database 、表 table 、索引 index 、视图 view、 存储过程procedure 、触发器 trigger
SQL 语言语法
        ① SQL语句不区分大小写,关键字建议大写。
        ② SQL语句可以单行或多行书写,以分号结尾。
创建与删除数据库
创建数据库

 

① 使用DDL语句创建数据库

示例:

创建一个test 的数据库,并查看该数据库,以及该数据库的编码。

创建数据库:

查看数据库:

查看数据库编码:

② 使用Navicat创建数据库

示例:

创建一个test2 的数据库。

 

 

删除数据库

① 使用DDL语言删除数据库

 示例:

删除 test 数据库

 

② 使用Navicat删除数据库

示例:

删除 test2 数据库

选择数据库

在创建表时,需要先选择数据库。

示例:

创建一个名称为 bjsxt 的数据库,编码为 utf8

选择该数据库。

MySQL中的数据类型

整数类型

MySQL数据类型含义(有符号)
tinyint(m)1个字节 范围(-128~127)
smallint(m)2个字节 范围(-32768~32767)
mediumint(m)3个字节 范围(-8388608~8388607)
int(m)4个字节 范围(-2147483648~2147483647)
bigint(m)8个字节 范围(+-9.22*1018次方)

数值类型中的长度 m 是指显示长度,并不表示存储长度,只有字段指定 zerofill 时有用

例如: int(3) ,如果实际值是 2 ,如果列指定了 zerofill ,查询结果就是 002 ,左边用 0 来 填充

浮点类型

MySQL数据类型含义
float(m,d)单精度浮点型 8位精度(4字节) m总个数,d小数位
double(m,d)双精度浮点型 16位精度(8字节) m总个数,d小数位

字符类型

MySQL数据类型含义
char(n)固定长度,最多255个字符
tinytext可变长度,最多255个字符
varchar(n)可变长度,最多65535个字符
text可变长度,最多65535个字符
mediumtext可变长度,最多224次方-1个字符
longtext可变长度,最多232次方-1个字符
char varchar
① char长度固定, 即每条数据占用等长字节空间;适合用在身份证号码、手机号码等定长。
② varchar可变长度,可以设置最大长度;适合用在长度可变的属性。
③ text不设置长度, 当不知道属性的最大长度时,适合用 text
        按照查询速度: char 最快, varchar 次之, text 最慢。
字符串型使用建议:
① 经常变化的字段用 varchar
② 知道固定长度的用 char
③ 尽量用 varchar
④ 超过 255 字符的只能用 varchar 或者 text
⑤ 能用 varchar 的地方不用 text
日期类型
MySQL数据类型含义
date日期 YYYY-MM-DD
time时间 HH:MM:SS
datetime日期时间 YYYY-MM-DD HH:MM:SS
timestamp时间戳YYYYMMDD HHMMSS

二进制数据(BLOB)

① BLOB和TEXT存储方式不同,TEXT以文本方式存储,英文存储区分大小写,而Blob是以二进制方式存储,不分大小写。

② BLOB存储的数据只能整体读出。

③ TEXT可以指定字符集,BLOB不用指定字符集。

创建表与删除表
创建表

① 使用DDL语句创建表

示例:

创建一个 employees 表包含雇员 ID ,雇员名字,雇员薪水。

查看已创建的表。

② 使用Navicat创建表

示例:

创建 employees2 表。

 

 

 删除表

① 使用DDL语句删除表

示例:

删除 employees 表。

② 使用Navicat删除表

示例:

删除employees2

 

修改表

修改表名

 ① 使用DDL语句修改表

示例一:

创建一个 employees 表包含雇员 ID ,雇员名字,雇员薪水。

 示例二:

employees 表名修改为 emp

② 使用Navicat修改列名

     选择表按F2

修改列名

使用

① DDL语句修改列名

示例:

emp 表中的 employee_name 修改为 name

使用Navicat修改列名

修改列类型

① 使用DDL语句修改列类型

示例:

将 emp 表中的 name 的长度指定为 40

② 使用Navicat修改列类型

添加新列

① 使用DDL语句添加新列

示例:

emp 表中添加佣金列,列名为 commission_pct

 ② 使用Navicat添加新列

删除指定列

① 使用DDL语句删除指定的列

示例:

删除 emp 表中的 commission_pct

 ② 使用Navicat删除指定的列

 

MySQL中的约束

约束概述

数据库约束是对表中的数据进行进一步的限制,保证数据的正确性、有效性和完整性。
① 主键约束(Primary Key) PK
        主键约束是使用最频繁的约束。在设计数据表时,一般情况下,都会要求表中设置一个主键。主键是表的一个特殊字段,该字段能唯一标识该表中的每条信息。例如,学生信息表中的学号是唯一的。
②  外键约束(Foreign Key) FK
        外键约束经常和主键约束一起使用,用来确保数据的一致性。
③  唯一性约束(Unique)
        唯一约束与主键约束有一个相似的地方,就是它们都能够确保列的唯一性。与主键约束不同的是,唯一约束在一个表中可以有多个,并且设置唯一约束的列是允许有空值的。
④  非空约束(Not Null)
        非空约束用来约束表中的字段不能为空。
⑤  检查约束(Check)
        检查约束也叫用户自定义约束,是用来检查数据表中,字段值是否有效的一个手段,但目前 MySQL 数据库不支持检查约束。
添加主键约束 (Primary Key)
① 单一主键
        使用一个列作为主键列,当该列的值有重复时,则违反唯一约束。
② 联合主键
        使用多个列作为主键列,当多个列的值都相同时,则违反唯一约束。
修改表添加主键约束
1.使用DDL语句添加主键约束

示例:

将 emp 表中的 employee_id 修改为主键。

主键自增长

MySQL 中的自动增长类型要求:

① 一个表中只能有一个列为自动增长。

② 自动增长的列的类型必须是整数类型。

③ 自动增长只能添加到具备主键约束与唯一性约束的列上。

④ 删除主键约束或唯一性约束,如果该列拥有自动增长能力,则需要先去掉自动增长然后在删除约束。

示例:

emp 表中的 employee_id 主键修改为自增。

 

2.使用Navicat添加主键约束

删除主键

① 使用DDL语句删除主键

注意:

删除主键时,如果主键列具备自动增长能力,需要先去掉自动增长,然后在删除 主键。

示例:
删除 emp 表中的 employee_id 主键约束。
去掉自动增长:

删除主键:

2.使用Navicat删除主键

添加外键约束(Foreign Key)

修改表添加外键约束

① 使用DDL语句添加外键约束

示例一:

创建 departments 表包含 department_id 、department_name ,location_id

示例二:

修改departments表,向department_id列添加主键约束与自动递增。

示例三:

修改 emp 表,添加 dept_id 列。

示例四:

emp 表中的 dept_id 列添加外键约束。

 

2.使用Navicat添加外键约束

 

 

删除外键约束
1.使用DDL语句删除外键约束。

示例:

删除 dept_id 的外键约束。

2.使用Navicat删除外键约束

 

添加唯一性约束(Unique)

修改表添加唯一性约束
1.使用DDL语句添加唯一性约束。

示例:

向 emp 表中的 name 添加唯一约束。

 2.使用Navicat添加唯一性约束

 

删除唯一性约束

1.使用DDL语句删除唯一性约束。

示例:

删除 name 的唯一约束。

2.使用Navicat删除唯一性约束。

 

非空约束(Not Null)

修改表添加非空约束
1.使用DDL语句添加非空约束。

示例:

向 emp 表中的 salary 添加非空约束。

2.使用Navicat添加非空约束。

 

删除非空约束

1. 使用DDL语句删除非空约束。

示例:

删除 emp 表中 salary 的非空约束。
2
2. 使用 Navicat 删除非空约束。

 

创建表时添加约束

查询表中的约束信息:

示例:

创建 depts 表包含 department_id 该列为主键且自动增长,department_name 列不 允许重复,location_id 列不允含有空值。

MySQLDML操作

添加数据(INSERT)

1.选择插入

示例:

向 departments 表中添加一条数据,部门名称为 market ,工作地点 ID 1

2.完全插入

 注意:

        如果主键是自动增长,需要使用 default 或者 null 或者 0 占位。

示例一:
        向 departments 表中添加一条数据,部门名称为 development , 工作地点 ID 2 。使用 default 占位。

示例二:

        向 departments 表中添加一条数据,部门名称为human ,工作地点 ID 3 。使用 null 占 位。

默认值处理(DEEFAULT)

在 MySQL 中可以使用 DEFAULT 为列设定一个默认值。如果在插入数据时并未指定该列的值,那么 MySQL 会将默认值添加到该列中。

创建表时指定列的默认值

示例:

创建 emp3 表,该表包含 emp_id 主键且自动增长,包含 name ,包含 address 该列默认 值为未知

修改表添加新列并指定默认值

示例:

修改 emp3 表,添加 job_id 该列默认值为 0。

插入数据时的默认值处理

如果在插入数据时并未指定该列的值,那么 MySQL 会将默认值添加到该列中。如果是 完全项插入需要使用 default 来占位。
示例:
emp3 表中添加数据,要求 address 列与 job_id 列使用默认值作为该列的值。

更新数据(UPDATE)

注意:

更新语句中一定要给定更新条件,否则表中的所有数据都会被更新。
示例:
更新 emp3 表中的 id 1 的数据,添加 address BeiJing

 

删除数据(DELETE)

DELETE 删除数据

注意:

DELETE 语句中,如果没有给定删除条件则会删除表中的所有数据。
示例:
删除 emp3 表中 emp_id 1 的雇员信息。
TRUNCATE 清空表

示例:

删除 emp3 表中的所有数据。

清空表时DELETE TRUNCATE 区别

● truncate 是整体删除(速度较快) delete 是逐条删除(速度较慢);

● truncate 不写服务器 logdelete 写服务器 log,也就是 truncate 效率比 delete 高的原因;

● truncate 是会重置自增值,相当于自增列会被置为初始值,又重新从 1 开始记录,而不是接着原
来的值。而 delete 删除以后, 自增值仍然会继续累加。
MySQL 查询数据
SELECT 基本查询
SELECT 语句的功能

 

SELECT 语句从数据库中返回信息。使用一个 SELECT 语句,可以做下面的事:
        列选择:能够使用 SELECT 语句的列选择功能选择表中的列,这些列是想要用查询返回的,当查询时,能够返回列中的数据。
        行选择:能够使用 SELECT 语句的行选择功能选择表中的行,这些行是想要用查询返回的。能够使用不同的标准限制看见的行。
        连接:能够使用 SELECT 语句的连接功能来集合数据,这些数据被存储在不同的表中,在它们之间可以创建连接,查询出我们所关心的数据。
SELECT 基本语法

 

基本 SELECT 语句
在最简单的形式中, SELECT 语句必须包含下面的内容:
        ● 一个 SELECT 子句,指定被显示的列
        ● 一个 FROM 子句,指定表,该表包含 SELECT 子句中的字段列表

在语法中:

语句含义
SELECT是一个或多个字段的列表
*选择所有的列
DISTINCT禁止重复
column | expression选择指定的字段或表达式
alias给所选择的列不同的标题
FROM table指定包含列的表

添加测试数据

data.sql 文件通过 Navicat 导入到 MySQL itbz 数据库中。

 

查询中的列选择

选择所有列

用跟在 SELECT 关键字后面的星号 (*),你能够显示表中数据的所有列。

示例:
查询 departments 表中的所有数据。

选择指定列

能够用 SELECT 语句来显示表的指定列,指定列名之间用逗号分隔。

示例:

查询 departments 表中所有部门名称。

 

查询中的算术表达式

需要修改数据显示方式,如执行计算,或者作假定推测,这些都可能用到算术表达式。一个算术表达式可以包含列名、固定的数字值和算术运算符。

使用算术运算符
示例:
        查询雇员的年薪,并显示他们的雇员ID,名字。

 

运算符的优先级

如果算术表达式包含有一个以上的运算,乘法和除法先计算。如果在一个表达式中的运算符优先级相同,计算从左到右进行。可以用圆括号强制其中的表达式先计算。

示例一:计算 employees 表中的员工全年薪水加 100 以后的薪水是多少,并显示他们的员工ID与名字。

示例二:计算 employees 表中的员工薪水加 100 以后的全年薪水是多少,并显示他们的员工ID与名字。

 

MySQL 中定义空值

 如果一行中的某个列缺少数据值,该值被置为 null, 或者说包含一个空。

 空是一个难以获得的、未分配的、未知的,或不适用的值。空和 0 或者空格不相同。 0 是一个数字,而空格是一个字符。

算术表达式中的空值

示例:

计算年薪包含佣金。

MySQL中的别名

使用列别名

示例:

查询 employees 表将雇员 last_name 列定义别名为 name

使用表别名

示例:

查询 employees 表为表定义别名为 emp ,将雇员 last_name 列定义别名为 name

 

MySQL中去除重复

除去相同的行

示例:

查询 employees 表,显示唯一的部门 ID

查询中的行选择

 用 WHERE 子句限制从查询返回的行。一个 WHERE 子句包含一个必须满足的条件,WHERE 子句紧跟着 FROM 子句。如果条件是true,返回满足条件的行。

在语法中:
WHERE         限制查询满足条件的行
condition         由列名、表达式、常数和比较操作组成

示例:

查询 departments 表中部门 ID 90 的部门名称与工作地点 ID

MySQL中的比较条件

符号 != 也能够表示 不等于条件。

示例一:

查询 employees 表中员工薪水大于等于 3000 的员工的姓名与薪水。

示例二:

查询 employees 表中员工薪水不等于 5000 的员工的姓名与薪水。

 

其他比较条件

使用BETWEEN条件

可以用 BETWEEN 范围条件显示基于一个值范围的行。指定的范围包含一个下限和一个上限。

示例:
查询 employees 表,薪水在 3000-8000 之间的雇员 ID 、名字与薪水。

使用IN条件

示例:

查询 employees 表,找出薪水是 5000,6000,8000 的雇员 ID 、名字与薪水。

使用LIKE条件

示例:

查询 employees 中雇员名字第二个字母是 e 的雇员名字。
使用 NULL 条件

 

NULL 条件,包括 IS NULL 条件和 IS NOT NULL 条件。

IS NULL 条件用于空值测试。空值的意思是难以获得的、未指定的、未知的或者不适用的。因此,你不能用 = ,因为 null 不能等于或不等于任何值。

示例一:
找出 emloyees 表中那些没有佣金的雇员雇员 ID 、名字与佣金。

示例二:

找出 employees 表中那些有佣金的雇员ID、名字与佣金。

 

逻辑条件

逻辑条件组合两个比较条件的结果来产生一个基于这些条件的单个的结果,或者逆转一个单个条件的结果。当所有条件的结果为真时,返回行。

SQL 的三个逻辑运算符是:
        ● AND
        ● OR
        ● NOT
可以在 WHERE 子句中用 AND OR 运算符使用多个条件。
示例一:
查询 employees 表中雇员薪水是 8000 的并且名字中含有 e 的雇员名字与薪水。

示例二:

查询 employees 表中雇员薪水是 8000 的或者名字中含有e 的雇员名字与薪水。

示例三:

查询 employees 表中雇员名字中不包含 u 的雇员的名字。

 

优先规则

 

在图片的例子中,有两个条件:

● 第一个条件是 job_id AD_PRES 并且薪水高于 15,000

● 第二个条件是 job_id SA_REP

在图片中的例子有两个条件:

● 第一个条件是 job_id 是 AD_PRES 或者 SA_REP

● 第二个条件是薪水高于$15,000

使用 ORDER BY 排序

在一个不明确的查询结果中排序返回的行。ORDER BY 子句用于排序。如果使用了 ORDER BY 子句,它必须位于 SQL 语句的最后。

SELECT 语句的执行顺序如下:
        
        ●  FROM 子句

        ● WHERE 子句

        ​​​​​​​● SELECT 子句

        ​​​​​​​●  ORDER BY 子句
示例一:
查询 employees 表中的所有雇员,显示他们的 ID 、名字与薪水,并按薪水升序排序。

示例二:

查询 employees 表中的所有雇员,显示他们的 ID 与名字,并按雇员名字降序排序。

 

使用别名排序

 

示例:
显示雇员 ID ,名字。计算雇员的年薪,年薪列别名为 annsal ,并对该列进行升序排序

多列排序

示例:

以升叙排序显示 DEPARTMENT_ID 列,同时以降序排序显示SALARY 列。

 

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

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

相关文章

目标检测算法——人脸识别数据集汇总(附下载链接)

>>>深度学习Tricks&#xff0c;第一时间送达<<< &#x1f384;&#x1f384;近期&#xff0c;小海带在空闲之余&#xff0c;收集整理了一批人脸识别数据集供大家参考。 整理不易&#xff0c;小伙伴们记得一键三连喔&#xff01;&#xff01;&#xff01;&am…

用python给女朋友写个圣诞树玩玩~

嗨害大家好鸭&#xff01;我是小熊猫~ 虽然我们不过洋节&#xff0c;但是女朋友要的话&#xff0c;那顺手写一个吧 代码&#x1f386; 模块 [源码、资料电子书点击此处] import turtle as t from turtle import * import random as r import time圣诞树细节以及画布大小 画布…

如何读取MySQL中的数据存放到HDFS_大数据培训

大数据培训读取MySQL中的数据存放到HDFS 1 查看官方模板 [atguiguhadoop102 ~]$ python /opt/module/datax/bin/datax.py -r mysqlreader -w hdfswriter { “job”: { “content”: [ { “reader”: { “name”: “mysqlreader”, “parameter”: { “column”: [], “conne…

ROS2初学者2022教程

ROS2初学者2022教程 掌握 ROS2 基础知识并成为机器人操作系统开发人员 – 一步一步 课程英文名&#xff1a;ROS2 For Beginners (ROS Foxy, Humble - 2022) 此视频教程共15.0小时&#xff0c;中英双语字幕&#xff0c;画质清晰无水印&#xff0c;源码附件全 下载地址 课程编…

手机视频如何修改封面?推荐这些修改方法

大家在社交平台上发布视频的时候会发现&#xff0c;一个好看的视频封面可以吸引很多的网友进行浏览和观赏。所以视频封面一直是视频创作者们不可忽略的一部分。那么你们知道手机视频怎么修改封面吗&#xff1f;如果你们想知道的话&#xff0c;那就接着往下看看吧&#xff0c;下…

Java_笔记_多态_包_final_权限修饰符_代码块

封装&#xff1a;对象代表什么&#xff0c;就得封装对应的数据&#xff0c;并提供数据对应的行为。 一、多态&#xff1a;对象的多种形态。同类型的对象&#xff0c;表现出的不同形态。 1.多态的表现形式&#xff1a;父类类型 对象名称 子类对象; 学生形态 对象 Student s …

Java异常(比较全)

前言&#xff1a;想要学好异常&#xff0c;需要了解JVM虚拟机知识&#xff0c;这里涉及面试常问的内存溢出错误解决办法 一、异常是什么&#xff1f; 定义 程序运行过程中&#xff0c;由于某些原因导致程序出错&#xff0c;从而结束程序运行&#xff0c;这就称为异常 java异常…

C++经典题目

目录 P62 3.6 求圆周长面积 P80 3 华氏转摄氏 P80 10 分段函数 P81 21 数列求和 P82 24 打印图形 P229 6 长方体体积 P384 4 printArea 题目来源于C程序设计&#xff08;第4版&#xff09; P62 3.6 求圆周长面积 设圆半径r1.5&#xff0c;圆柱高h3&#xff0c;求圆周长…

React生命周期中有哪些坑?如何避免?

在讨论React 的生命周期的时候&#xff0c;一定是在讨论类组件&#xff0c;因为函数组件并没有生命周期的概念&#xff0c;它本身就是一个函数&#xff0c;只会从头执行到尾巴 其实生命周期只是一个抽象的概念&#xff0c;大部分人看到生命周期想到的往往都componentDidMount&…

CMMI2.0配置管理工作及访谈学习笔记

1. 配置管理概述 1.1. 关于配置管理 配置管理是通过技术或其他手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施&#xff0c;通过配置标识、版本控制、版本管理、基线管理和配置审计来管理工作产品的完整性。 配置管理的主要目的是进行工作产品管理&#xf…

JavaScript -- 12. jQuery

文章目录jQuery1 jQuery简介2 使用jQuery2.1 下载jQuery2.2 引用jQuery3 jQuery的核心函数3.1 作为工具类使用3.2 作为函数使用3.2.1 将一个函数作为$的参数3.2.2 将选择器字符串作为参数3.2.3 将DOM对象作为参数3.2.4 将html代码作为参数4 jQuery对象4.1 获取DOM对象4.2 隐式迭…

Python——基础知识

前面主要讲解了javaEE的基础知识&#xff0c;基本上可以用servlet写一些简单的网页程序&#xff0c;后续的博客将围绕spring进行讲解&#xff0c;并且其中穿插一些python的知识 变量 命名 和其他的编程语言一样&#xff0c;java的变量命名需要遵循下面几个原则 由数字&…

世界杯竞猜项目Dapp-第二章(hardhat部署合约)

创建 hardhat 项目 # 创建 npm 空项目 npm init # 安装 npm install --save-dev hardhat2.11.1 # 创建工程 npx hardhat -> 选择高级ts项目运行测试 # 编译合约 npx hardhat compile # 单元测试 npx hardhat test添加合约 将 Worldcup.sol&#xff08;上节编写的合约&am…

【Flink】自定义keyBy的KeySelector

我们通常在写Flink程序的时候都会遇到keyBy,比如按照某条数据的某个字段进行分类计算,或者计算pv,还有需要用到Flink定时器的高级功能。 下面我们根据keyby的源码,看下keyBy的用法(本博客基于Flink1.13) 源码有5种方式定义keyBy, 但是其中的2种已经不用了,如果用户想…

PC的ARM的安全启动

其实还是很不习惯将PC和ARM联系起来&#xff0c;当然主要是因为我刚刚接触嵌入式没有多久&#xff0c;更别说服务器、PC端了。 脑子里固化了的X86。 于是这一篇学习一下&#xff0c;基于ARM的PC&#xff0c;是怎么利用这个ATF框架&#xff0c;进行安全启动的。 文章内容来自…

9个做好动效设计的好方法

动态效果意味着充满生命和兴奋&#xff0c;为静态事物增添生命。然而&#xff0c;在软件方面&#xff0c;动态效果不仅是为了获得乐趣&#xff0c;也是为了解决问题。 作为人类&#xff0c;我们习惯于看到世界在我们周围移动。如果任何软件有连贯的动画&#xff0c;它都会感到…

【Python游戏】Python基于第三方库pygame实现一个魂斗罗小游戏,毕业设计必备 | 附源码

前言 halo&#xff0c;包子们下午好 今天给打击整一个魂斗罗小游戏 很多小伙伴接触魂斗罗应该是在小时候的一个手柄游戏上面吧 我记得作为90后的我&#xff0c;玩这一款游戏是在小学的时候 废话不多说&#xff0c;直接上才艺 今天给大家直接安排 相关文件 关注小编&#xff…

30分钟了解linux操作系统内核总结

【推荐阅读】 概述Linux内核驱动之GPIO子系统API接口 一篇长文叙述Linux内核虚拟地址空间的基本概括 轻松学会linux下查看内存频率,内核函数,cpu频率 纯干货&#xff0c;linux内存管理——内存管理架构&#xff08;建议收藏&#xff09; Linux 内核性能优化的全景指南&#xff…

中学语文杂志中学语文杂志社中学语文编辑部2022年第30期目录

理论_视点《中学语文》投稿&#xff1a;cn7kantougao163.com 追求服务于学的“智慧语文”教育 陈维贤; 3-5 教学_阅读教学 高中古诗词群文阅读教学特点新探 张红娟; 6-8 导读需导思 领读方领悟 罗艳兰; 9-10 学习任务群背景下的群文阅读教学研究 丁雪云; 11-12…

守门员VS软件测试

虽然刚刚为世界杯贡献了点彩票钱&#xff0c;但我依然热爱着足球这项赛事。最近熬夜看球&#xff0c;突然发现我们软件开发团队里&#xff0c;守门员这个职位就像我们公司的那个测试倒霉蛋儿一样。 1、球队配比VS开发团队人员配比 △ 不管你的球队是443&#xff0c;还是552&am…