PostgrerSQL基本使用与数据备份

前言

上篇了解了 PostgrerSQL 数据库的部署PostgreSQL关系型数据库介绍与部署-CSDN博客,本篇将继续就其基本操作、备份与还原内容做相关介绍。

目录

一、数据库的操作

1. 本机登录

2. 开启远程登录

2.1 开放远程端口

2.2 编辑配置文件

2.3 修改配置密码

2.4 重启数据库服务

2.5 远程登录

3. 创建数据库

4. 查看数据库

5. 切换当前数据库 

6. 删除数据库 

二、数据表的操作

1. 新建表

2. 插入数据 

3. 查看表结构和内容 

4. 更新表内容

5. 删除表内容 

三、PostgreSQL 管理

1. 配置文件介绍

2. 数据库相关概念

2.1 数据库的结构组织

2.2 PostgreSQL 中的术语

2.3 模版数据库template0 和template1

3. Schema 模式

3.1 创建一个新的 Schema

3.2 在新的 Schema 中创建一个新的表

3.3 查看 Schema 表

3.4 删除模式 

四、用户管理

1. 创建用户

2. 修改密码

3. 授权管理

4. 用户删除

五、备份与还原 

1. 单数据库备份与恢复

2. 所有库备份与还原

3. 更多选项


一、数据库的操作

1. 本机登录

格式:
psql -h 服务器 -U 用户名 -d 数据库 -p 端口地址 
psql -h 127.0.0.1 -U dbuser -d exampledb -p 5432$ psql   
# 连接数据库,默认用户和数据库都是postgres
# 相当于系统用户postgres以同名数据库用户的身份,登录数据库,这是不用输入密码的。如果一切正常,系统提示符会变为"postgres=#”,表示这时己经进入了数据库控制台。[root@localhost ~]# su - postgres # 切换 postgres 用户
-bash-4.2$ psql                   # 登录 PostgreSQL 控制台,可以输入该数据库支持的一些命令
psql (14.11)
输入 "help" 来获取帮助信息.postgres=# alter user postgres with password '123123'; # 修改 postgres 用户密码
ALTER ROLE
postgres=# \q                     # 退出该数据库
-bash-4.2$ 

方法一:在默认配置下,本机访问 PostgreSQL

[root@localhost ~]# su - postgres               # 切换 postgres 用户
-bash-4.2$ psql                                 # 登录 PostgreSQL 控制台
psql (14.11)
输入 "help" 来获取帮助信息.postgres=#                       # 此时说明用 postgres 身份登录数据库,且不需要密码
postgres=# \password postgres    # 给 postgres 用户设置密码
Enter new password for user "postgres": 
再输入一遍:

方法二:创建新用户来访问 PostgreSQL

[root@localhost ~]# su - postgres              # 切换linux用户postgres
-bash-4.2$ psql                                # 执行psql
psql (14.11)
输入 "help" 来获取帮助信息.postgres=# create user dbfql with password '123456'; # 创建数据库用户dbfql
CREATE ROLE
postgres=# craete database db1 owner dbfql;          # 创建数据库db1
CREATE DATABASE
postgres=# grant all privileges on database db1 to dbfql;  # 将db1数据库的所有权都赋予dbdql
GRANT  
postgres=# \q-bash-4.2$ exit
登出[root@localhost ~]# useradd dbfql                    # 创建普通用户dbfql
[root@localhost ~]# passwd dbfql
[root@localhost ~]# su - dbfql
[dbfql@localhost ~]$ psql -d db1
psql (14.11)
输入 "help" 来获取帮助信息.db1=> 

方法三:已存在普通用户,在数据库创建同名用户和数据库

[root@localhost ~]# id lisi
uid=1002(lisi) gid=1002(lisi) 组=1002(lisi)
[root@localhost ~]# su - postgres
-bash-4.2$ psql
psql (14.11)
输入 "help" 来获取帮助信息
postgres=# create user lisi with password '123456';
CREATE ROLE
postgres=# create database lisidb owner lisi;
CREATE DATABASE
postgres=# grant all privileges on database lisidb to lisi;
GRANT
postgres=# \q
-bash-4.2$ exit
登出[root@localhost ~]# su - lisi
[lisi@localhost ~]$ psql -d lisidb
psql (14.11)
输入 "help" 来获取帮助信息.lisidb=> 

2. 开启远程登录

以上篇编译安装目录为例,默认安装配置文件路径如下:

  • 主要配置文件:/var/lib/pgsql/14/data/postgresql.conf
  • 主机基于身份验证配置文件:/var/lib/pgsql/14/data/pg_hba.conf

2.1 开放远程端口

允许TCP端口5432的传入连接,并将规则永久性地添加到防火墙配置中,防火墙关闭可以忽略
firewall-cmd --add-port=5432/tcp --permanent  # --permanent选项表示该规则是永久性的
firewall-cmd --reload                         # 重新加载防火墙配置

2.2 编辑配置文件

[root@localhost ~]# vim /pgsql/data/postgresql.conf # 主要配置文件
listen_addresses = '*'
# 在所有IP地址上监听,从而允许远程连接到数据库服务器,默认只允许本机登录[root@localhost ~]# vim /pgsql/data/pg_hba.conf     # "主机基于身份验证" 配置文件
# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
host    all             all             192.168.190.0/24        trust   # 添加此行
# 允许任意用户(第二个 "all")从192.168.190段地址上以md5密码方式访问任意数据库(第一个 "all")
# peer: 使用 "peer" 认证方式时,系统会检查操作系统用户是否与要连接到数据库的数据库角色名称相匹配;不需要输入密码来连接到数据库,只需确保操作系统用户名和数据库角色名称匹配即可完成认证。
# md5:当使用 "md5" 时,客户端连接时需要提供经过 MD5 加密的密码进行认证。
# trust方法表示无需密码即可连接数据库
# scram-sha-256:相比之下,"scram-sha-256" 使用了更安全的加密机制,比 MD5 更安全。

2.3 修改配置密码

[root@localhost ~]# su - postgres
上一次登录:日 3月 24 15:17:53 CST 2024pts/1 上
[postgres@localhost ~]$ psql
psql (14.1)
Type "help" for help.postgres=# alter user postgres with password '123123';  # 登录数据修改密码
ALTER ROLE
或者:
postgres=# \password postgres   # 给 postgres 用户设置密码
Enter new password for user "postgres": 
再输入一遍:

2.4 重启数据库服务

[root@localhost ~]# systemctl restart postgresql.service
或者:
[postgres@localhost ~]$ pg_ctl restart   # 重启

2.5 远程登录

① 使用 linux 系统字符登录

[root@localhost ~]# psql -U postgres -h 192.168.190.100
用户 postgres 的口令:
psql (14.11, 服务器 14.1)
输入 "help" 来获取帮助信息.postgres=# 

 ② 使用 Navicat 工具登录(可能存在版本问题,可以修改 pg_hba.conf 认证方式为 trust)

3. 创建数据库

在数据库控制台下创建操作:
postgres=# create database mydb;
CREATE DATABASE
也可以在壳下进行创建操作:
[postgres@localhost ~]$ createdb 库名;

4. 查看数据库

mydb=# \l数据库列表名称    |  拥有者  | 字元编码 |  校对规则   |    Ctype    |       存取权限        
-----------+----------+----------+-------------+-------------+-----------------------mydb      | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | postgres  | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | template0 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +|          |          |             |             | postgres=CTc/postgrestemplate1 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +|          |          |             |             | postgres=CTc/postgres

5. 切换当前数据库 

postgres=# \c mydb;
您现在已经连接到数据库 "mydb",用户 "postgres".

6. 删除数据库 

postgres=# drop database mydb;  # 注意,删除数据库是一个不可逆的操作
ERROR:  database "mydb" is being accessed by other users
DETAIL:  There is 1 other session using the database.
# 在PostgreSQL中,如果有其他用户正在使用数据库,你就不能删除它postgres=# select * from pg_stat_activity where datname = 'mydb';
# 可以通过查询 pg_stat_activity 视图来检查是否有活动的会话,确保没有用户正在使用数据库 "mydb",再次删除

二、数据表的操作

1. 新建表

语法与mysql基本相似:
postgres=# \c mydb    # 切换到 mydb 库
You are now connected to database "mydb" as user "postgres".
mydb=# create table class (id int,name char(15));  # 新建表 class
CREATE TABLE
# 在 mysql 中 auto_increment 代表自增,在这里使用 serial 可以实现自增,但是不能与 int 一起使用

2. 插入数据 

mydb=# insert into class values (1,'zhangsan'); 
mydb=# insert into class values (2,'lisi');

3. 查看表结构和内容 

mydb=# \dt                  # 列出当前数据库中的所有表List of relationsSchema |  Name  | Type  |  Owner   
--------+--------+-------+----------public | class  | table | postgresmydb=# \d class             # 查看表结构,不指定表可以查看当前库所有表,\d相当于descTable "public.class"Column |     Type      | Collation | Nullable | Default 
--------+---------------+-----------+----------+---------id     | integer       |           |          | name   | character(15) |           |          | mydb=# select * from class; # 查看表内容id |      name       
----+-----------------1 | zhangsan       2 | lisi   

4. 更新表内容

mydb=# select * from class;id |      name       
----+-----------------2 | lisi           1 | wangwu         
(2 rows)mydb=# select * from class order by id;  # 按 id 升序查看id |      name       
----+-----------------1 | wangwu         2 | lisi 

5. 删除表内容 

mydb=# delete from class where id=1;
mydb=# select * from class;id |      name       
----+-----------------2 | lisi 

三、PostgreSQL 管理

1. 配置文件介绍

PostgreSQL 使用环境变量 PGDATA 指向的目录做为数据存放的目录。这个目录是在安装时指定的,所以在安装时需要指定一个合适的目录作为数据目录的根目录,而且,每一个 PG 数据库实例都需要有这样的一个目录。此数据目录的初始化是使用命令 initdb 来完成的。初始化完成后, PGDATA 数据目录下就会生成三个配置文件

  • postgresql.conf:数据库实例的主配置文件,基本上所有的配置参数都在此文件中 
  • pg_hba.conf:认证配置文件,配置了允许哪些IP的主机访问数据库,认证的方法是什么等信息
  • pg_ident.conf:认证方式ident的用户映射文件

2. 数据库相关概念

2.1 数据库的结构组织

在一个 PostgreSQL 数据库系统中,数据的组织结构可以分为以下五层:

  • 实例: 一个 PostgreSQL 对应一个安装的数据目录$PGDATA,即一个instance实例
  • 数据库:一个 PostgreSQL 数据库服务下可以管理多个数据库,当应用连接到一个数据库时,一般只能访问这个数据库中的数据,而不能访问其他数据库中的内容默认情况下初始实例只有三个数据库: postgres、template0、template1
  • 模式:一个数据库可以创建多个不同的名称空间即 Schema,用于分隔不同的业务数据
  • 表和索引:一个数据库可以有多个表和索引。在 PostgreSQL 中表的术语称为 Relation,而在其他数据库中通常叫Table
  • 行和列:每张表中有很多列和行数据。在 PostgreSQL 中行的术语一般为“Tuple”,而在其他数据库中则叫“Row”

2.2 PostgreSQL 中的术语

PostgreSQL 有一些术语与其他数据库中不一样,了解了这些术语的意思,就能更好地看懂PostgreSQL 中的文档。与其他数据库不同的术语如下:

  • Relation:表示表table或索引index,具体表示的是Table还是 Index需要看具体情况
  • Tuple:表示表中的行,在其他数据库中使用Row来表示
  • Segment:每个表和索引都单独对应一个文件,,即为segment,如果文件大小超过1GB,会创建多个相同名称但后缀不同的文件
  • Page:表示在磁盘中的数据块。在文件中以块为单位存放数据, 默认值为8KB,最大可以为32KB
  • Buffer:表示在内存中的数据块

2.3 模版数据库template0 和template1

template1 和 template0 是 PostgreSQL 的模板数据库。所谓模板数据库就是创建新 database 时,PostgreSQL 会基于模板数据库制作一份副本,其中会包含所有的数据库设置和数据文件。

PostgreSQL安装好以后会默认附带两个模板数据库: 默认模板库为 template0 和template1。默认模板库为 template1,也可以指定template0

template1 和t emplate0 的区别主要有两点:

  • template1 可以连接,template0 不可以连接
  • 使用 template1 模板库建库时不可指定新的encoding 和locale,而 template0可以

注意:template0和template1都不能被删除。

3. Schema 模式

在 PostgreSQL 中,Schema 是一种用于组织和命名数据库对象(如表、视图、函数等)的机制。它提供了命名空间隔离、权限控制和代码组织的功能,使得在同一个数据库中可以创建多个相互独立的对象,更精细地控制用户对数据库对象的访问,以及更好地组织和管理数据库对象。每个数据库都包含一个默认的 Schema,名为 public,但是你也可以创建自己的 Schema。 

使用模式的优势:

  • 允许多个用户使用一个数据库并且不会互相干扰
  • 将数据库对象组织成逻辑组以便更容易管理
  • 第三方应用的对象可以放在独立的模式中,这样它们就不会与其他对象的名称发生冲突模式类似于操作系统层的目录,但是模式不能嵌套

3.1 创建一个新的 Schema

mydb=# create schema myschema;
CREATE SCHEMA
mydb=# \dn        # 查看模式

3.2 在新的 Schema 中创建一个新的表

mydb=# create table myschema.student (id serial,name char(15));
CREATE TABLE

3.3 查看 Schema 表

mydb=# \dt myschema.*         # 查看 Schema 中的所有表List of relationsSchema  |  Name   | Type  |  Owner   
----------+---------+-------+----------myschema | student | table | postgresmydb=# insert into myschema.student values (1,'lisi');
INSERT 0 1
mydb=# select * from myschema.student;id |      name       
----+-----------------1 | lisi  

3.4 删除模式 

格式:
drop schema schema_name;示例:
postgres=# \c mydb1
mydb1=# create schema schema_db1;
mydb1=# \dnList of schemasName    |  Owner   
------------+----------myschema   | postgrespublic     | postgresschema_db1 | postgres
mydb1=# drop schema schema_db1;  # 删除模式
mydb1=# \dnList of schemasName   |  Owner   
----------+----------myschema | postgrespublic   | postgres

四、用户管理

新建用户、修改密码等操作,前文已做相关介绍,这里继续介绍一下用户的权限管理与用户删除。

1. 创建用户

mydb=# create user fql with password '123456';  # 创建用户 fql 并设置密码 123456
CREATE ROLE

2. 修改密码

mydb=# alter user fql with password '666666'; # 修改用户 fql 密码为 666666
ALTER ROLE

3. 授权管理

数据库授权,赋予指定账户指定数据库所有权限,格式如下:
grant all privileges on database 'dbname' To 'username';mydb=# grant all privileges on database mydb to fql;
# 将数据库 mydb 赋予用户 fql 所有权限
mydb=# grant all privileges on all tables in schema public to fql;
# 但此时用户还是没有读写权限,需要继续授权表,授予用户 fql 对 public Schema 中的所有表的所有权限
# 注意,该sql语句必须在所要操作的数据库里执行查看权限:
[root@localhost ~]# psql -U fql -d mydb;
\du             # 列出所有的用户,包括他们的角色、登录权限、超用户权限等信息
\du username    # 查看指定用户的权限移除指定账户指定数据库/表所有权限:
mydb=# revoke all privileges on database mydb from fql;
mydb=# revoke all privileges on all tables in schema public from fql;

4. 用户删除

mydb=# drop user 用户名;
# 注意,需要删除给予库/表的权限,才可以执行删除动作

五、备份与还原 

1. 单数据库备份与恢复

PostgreSQL 提供了 pg_dump 实用程序来简化备份单个数据库的过程。 必须以对要备份的数据库具有读取权限的用户身份运行此命令。以 postgres 用户身份登录:

[root@localhost ~]# su - postgres
[postgres@localhost ~]$ 

① 通过运行以下命令将数据库的内容转储到文件中

[postgres@localhost ~]$ pg_dump mydb > /pgsql/mydb.bak[root@localhost pgsql]# ll
总用量 8
drwx------. 19 postgres postgres 4096 4月   6 15:06 data
-rw-rw-r--.  1 postgres postgres 3500 4月   6 18:30 mydb.bak
# 生成的备份文件 mydb.bak 可以使用 scp 传输到另一台主机,也可以存储在本地以供以后使用

 ② 模拟删除数据库,并新建空库

[root@localhost pgsql]# psql
postgres=# drop database mydb;恢复数据库,需要先建立一个空库:
postgres=# create database mydb1;

③ 恢复,验证数据

[root@localhost pgsql]# psql mydb1 < /pgsql/mydb.bak;
postgres=# \c mydb1
You are now connected to database "mydb1" as user "postgres".
mydb1=# \dtList of relationsSchema |  Name  | Type  |  Owner   
--------+--------+-------+----------public | class  | table | postgrespublic | class1 | table | postgres

备份格式有几种选择:

  • *.bak:压缩二进制格式
  • *.sql:明文转储
  • *.tar:tarball

注意:默认情况下,PostgresQL 将忽路备份过程中发生的任何错误,这可能导致备份不完整,要防止这种情况,可以使用 -1 选项运行 pg_dunp 命令。这会将整个备份过程视为单个事务,这将在发生错误时阻止部分备份。 

2. 所有库备份与还原

由于 pg_dump 一次只创建一个数据库的备份,因此它不会存储有关数据库角色或其他群集范围配置的信息。 要存储此信息并同时务份所有数据库,可以使用 pg_dumpall。

① 创建备份文件

[postgres@localhost ~]$ pg_dumpall > /pgsql/allpg.bak

② 从备份还原所有数据库

[postgres@localhost ~]$  psql -f /pgsql/allpg.bak postgres
# -f 选项用于指定要执行的 SQL 脚本文件或文件路径

3. 更多选项

备份数据库:
pg_dump -U postgres -f /pgsql/postgres.sgl postgres
# 导出 postgres 数据岸保存为 postgres.sql
pg_dump -U postgres -f /pgsql/postgres.sql -t test postgres
# 导出 postgres 数据库中表 test 的数据
pg_dump -U postgres -F t -f /pgsql/postgres.tar postgres
# -F t:这个选项指定了备份文件的格式。t 表示 "tar" 格式,导出 postgres 数据库以 tar 形式压缩保存为 postgres.tar恢复数据库:
psgl-postgres -f /pgsql/postgres.sql newsql
# 恢复 postgres.sql 数据到 newsql 数据库
pg_restore -- 
# 从 pg_dump 创建的备份文件中恢复 PostgresQL 数据库,用于恢复由 pg_dump 转储的任何非纯文本格式中的PostgreSQL 数据库
pg_restore -U postgres -d newsql /pgsql/postgres.tar
# 恢复 postgres.tar 数据列 newsql 数据库

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

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

相关文章

xss.pwnfunction-Ma Spaghet!

根据代码得知 这个是根据get传参的并且是由someboby来接收参数的 所以 <script>alert(1137)</script> js并没有执行因为 HTML5中指定不执行由innerHTML插入的<script>标签 所以 ?somebody<img%20src1%20onerror"alert(1337)"> 这样就成…

PowerJob 分布式任务调度简介

目录 适用场景 设计目标 PowerJob 功能全景 任务调度 工作流 分布式计算 动态容器 什么是动态容器? 使用场景 可维护性和灵活性的完美结合 实时日志&在线运维 PowerJob 系统组件 PowerJob 应用场景 PowerJob 的优势 PowerJob&#xff08;原OhMyScheduler&…

Pytorch数据结构:GPU加速

文章目录 一、GPU加速1. 检查GPU可用性&#xff1a;2. GPU不可用需要具体查看问题3. 指定设备4.将张量和模型转移到GPU5.执行计算&#xff1a;6.将结果转移回CPU 二、转移原理1. 数据和模型的存储2. 数据传输3. 计算执行4. 设备管理5.小结 三、to方法的参数类型 一、GPU加速 .…

瑞_Redis_商户查询缓存_添加Redis缓存缓存更新策略

文章目录 项目介绍1 短信登录2 商户查询缓存2.1 什么是缓存2.1.1 缓存的应用场景2.1.2 为什么要使用缓存2.1.3 Web应用中缓存的作用2.1.4 Web应用中缓存的成本 2.2 添加Redis缓存2.2.1 背景2.2.2 缓存模型和思路2.2.3 代码实现2.2.4 测试附&#xff1a;IDEA控制台输出自动换行设…

【动态规划】【01背包】Leetcode 416. 分割等和子集

【动态规划】【01背包】Leetcode 416. 分割等和子集 ---------------&#x1f388;&#x1f388;416. 分割等和子集 题目链接&#x1f388;&#x1f388;------------------- 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0…

竞赛 交通目标检测-行人车辆检测流量计数 - 竞赛

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

Python3 Ubuntu

一、安装中文输入法 1.sudo apt install ibus-sunpinyin 2.点击右上角输入法&#xff0c;然后点击加号&#xff0c;输入yin添加进来&#xff0c;最后选中输入法即可 二、安装截屏软件 1.sudo apt install gnome-screenshot 三、安装opencv-python 1.pip3 install --upgrade…

HTTP协议报文的结构的补充和from表单以及ajax表单

响应 状态码 表示了这次请求对应的响应,是什么样的状态(成功,失败,还是其他的情况.还有及其对应的原因&#xff09; 主要有这些类 成功状态码&#xff1a;其中200最常见&#xff0c;表示成功 重定向状态码&#xff1a;很多时候,页面跳转,就可以通过重定向来实现. 还有的时…

智慧牧场数据 7

1 体征数据采集 需求:获取奶牛记步信息 三轴加速度测量&#xff1a;加速度测量计反应的加速向量与当前的受力方向是相反&#xff0c;单位为g 陀螺仪&#xff0c;是用来测量角速度的&#xff0c;单位为度每秒&#xff08;deg/s&#xff09; 2000deg/s 相当于1秒钟多少转 1.1…

小米汽车su7全色系展示源码

源码简介 小米汽车全色系展示源码&#xff0c;小米汽车su7全色系展示源码 安装教程 纯HTML&#xff0c;直接将压缩包上传网站目录解压即可 首页截图 源码下载 小米汽车su7全色系展示源码-小8源码屋源码简介 小米汽车全色系展示源码&#xff0c;小米汽车su7全色系展示源码 …

如何不编程用 ChatGPT 爬取网站数据?

敢于大胆设想&#xff0c;才能在 AI 时代提出好问题。 需求 很多小伙伴&#xff0c;都需要为研究获取数据。从网上爬取数据&#xff0c;是其中关键一环。以往&#xff0c;这都需要编程来实现。 可最近&#xff0c;一位星友在知识星球提问&#xff1a; 这里涉及到一些个人隐私&a…

Redission--布隆过滤器解决缓存穿透问题

布隆过滤器在缓存穿透问题中的使用 布隆过滤器的核心是一个位数组 布隆过滤器的误判 使用Redission的布隆过滤器步骤 添加 Redission 依赖&#xff1a;首先需要将 Redission 添加到你的 Java 项目中&#xff0c;你可以通过 Maven 来添加 Redission 的依赖。 创建 Redissio…

深度学习相关知识

一.环境配置 1.cuda/cudnn安装&#xff1a; 安装cuda之前首先安装vs&#xff0c;vs版本从低到高安装。 a) 安装cuda&#xff1a;首先查看显卡支持的最高CUDA的版本&#xff0c;以便下载对应的CUDA安装包&#xff1b; cmd命令行&#xff1a;nvidia-smi,显示如下&#xff1a;…

【单片机】CJSH22-CH2O,甲醛传感器,甲醛传感器数据读取处理

原理图 解析程序 逻辑是&#xff1a; 1、初始化串口和定时器10ms中断 2、循环读取一帧数据到rev_CH2O_bufferdata 3、在主函数解析数据rev_CH2O_bufferdata 4、最终的pm2.5数值就是CH2O_value 使用CH2O_value的数据即可。 PPB单位&#xff0c;除以1000就是ppm&#xff0c;再…

ASP.NET Core 模型绑定

&#x1f340;介绍 在C#中&#xff0c;特别是在ASP.NET Core中&#xff0c;模型绑定是一个将HTTP请求中的数据映射到C#对象的过程。它使得开发者能够方便地从请求中提取数据&#xff0c;而无需手动解析请求体、查询字符串、路由数据等。ASP.NET Core提供了多种特性&#xff08…

C语言 | Leetcode C语言题解之第13题罗马数字转整数

题解&#xff1a; 题解&#xff1a; int romanToInt(char* s) {int symbolValues[26];symbolValues[I - A] 1;symbolValues[V - A] 5;symbolValues[X - A] 10;symbolValues[L - A] 50;symbolValues[C - A] 100;symbolValues[D - A] 500;symbolValues[M - A] 1000;int a…

迷茫下是自我提升

长夜漫漫&#xff0c;无心睡眠。心中所想&#xff0c;心中所感&#xff0c;忧愁当前&#xff0c;就执笔而下&#xff0c;写下这篇文章。 回忆过往 回想当初为啥学前端&#xff0c;走前端这条路&#xff0c;学校要求嘛&#xff0c;兴趣爱好嘛&#xff0c;还是为了钱。 时间带着…

爬虫 新闻网站 以湖南法治报为例(含详细注释,控制台版) V3.0 升级 自定义查询关键词、时间段、粗略判断新闻是否和优化营商环境相关,避免自己再一个个判断

目标网站&#xff1a;湖南法治报 爬取目的&#xff1a;为了获取某一地区更全面的在湖南法治报的已发布的和优化营商环境相关的宣传新闻稿&#xff0c;同时也让自己的工作更便捷 环境&#xff1a;Pycharm2021&#xff0c;Python3.10&#xff0c; 安装的包&#xff1a;requests&a…

【微信小程序】【小程序样式加载不出来】

微信小程序配置sass 第一步&#xff1a;找配置文件 在项目中找到 project.config.json文件&#xff0c;在setting属性中添加 useCompilerPlugins属性&#xff0c;值为sass即可&#xff0c;若是 less,将数组里面的值改为less即可 "useCompilerPlugins": ["sas…

HAL STM32主从定时器联级使用

HAL STM32主从定时器联级使用 具体介绍参考STM32参考手册 &#x1f33f;主从定时器联级&#xff1a;使用一个定时器作为另一个定时器的预分频器。 &#x1f341;时钟关系&#xff1a; &#x1f33f;TIM1 和TIM8 控制寄存器 2(TIMx_CR2)相关位&#xff1a; &#x1f516;主…