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

数据库与SQL

数据库基本概念

  • 数据库(DataBase):数据库就是存储数据的仓库
  • 数据库管理系统(DBMS):可以独立运行的软件,维护磁盘上的数据,用统一的方式维护不同种类的数据,做到通用且高效。
  • 常见的DBMS:
    • mysql
    • oracle
    • db2
    • sqlserver
  • 数据库实例可以被视为数据库管理系统的一个运行实体

image.png

数据库与表的概念

  • 在DBMS中,一个项目中用到的所有数据都可以以一个数据库形式保存在一起。每种不同的数据都是以表的形式保存。

image.png

数据库中表的概念

  • 表用来保存数据,一张表是由行和列构成
  • 列被称为字段:保存一组数据中各个属性
  • 行被称为记录:保存具体的一条信息。

如下是一张用户
image.png

如何操作数据库系统

所有的DBMS都支持一种结构化查询语句进行对应的操作。我们以客户端的角度与DBMS进行连接,并发送对应的语句进行操作。

结构化查询语言:Structured Query Language简称为SQL
SQL是有标准的:SQL92已经SQL99,所有数据库都支持SQL92标准

数据库连接方式

数据库连接有:命令行图形化界面软件JDBC连接

  • 命令行形式
    image.png
  • 图形化界面

  • 使用JDBC连接以及数据库连接池的形式
    • 在集成开发环境中使用(ECLIPSE,IDEA)
    • 我们编写的JAVA程序也是通过JDBC连接

SQL

SQL主要分为以下几种类:DDLDMLDQLTCLDCL,接下来我们会一一的详细介绍这几种语言

DDL

DDL语言详细名称为data definition language,是数据定义语言,用来进行数据库对象操作的。
数据库对象包括不限于:数据库,表,视图,索引等

主要需要认识的关键字如下:CREATEALTERDROP

操作数据库

查看当前DBMS中已有的数据库:SHOW DATABASES

新建一个数据库
-- 基本语法
CREATE DATABASE 数据库名 [charset=字符集名称]-- 例子1 创建一个名为mydb的数据库
CREATE DATABASE mydb;-- 例子2 创建数据库时指定字符集
CREATE DATABASE mydb1 CHARSET=UTF8;
CREATE DATABASE mydb2 CHARSET=GBK;
查看数据库信息
-- 语法
SHOW CREATE DATABASE 数据库名-- 例子 查看到曾经创建mydb库时的SQL,查看指定的字符集信息。
SHOW CREATE DATABASE mydb
删除数据库

删库是一个危险操作,需谨慎,最好备份,skr

-- 语法
DROP DATABASE 数据库名-- 例子 删除数据库mydb1
DROP DATABASE mydb1;-- 查询时发现mydb1已经被删除了
SHOW DATABASES;
使用数据库(切换到另一个数据库)

要保存数据都是要将数据保存在表中,而数据库相当于是表的集合。我们为不同的项目创建不同的数据库,在DBMS上要为不同的数据库的表进行操作时要先切换到对应的数据库上再进行相关操作。
语法:

-- 语法
USE 数据库名-- 例子切换到一个名为mydb的数据库上
USE mydb;

操作表

查看一个数据库中创建了多少张表
SHOW TABLES
创建表
-- 语法
CREATE TABLE 表名(字段名1 类型[(长度)][默认值] [约束],字段名2 ...
)-- 例子 切换到mydb数据库上,将userinfo表创建在该库中
USE mydb;-- 创建userinfo表
CREATE TABLE userinfo(id INT primary key,								-- 一张表第一个字段通常为ID(主键,唯一标识)				username VARCHAR(30),							-- VARCHAR在数据库中是字符串类型password VARCHAR(30),             -- VARCHAR后面指定的长度为最多占用的字节数nickname VARCHAR(30),             -- 若使用UTF8编码,意味着最多保存10个汉字(每个汉字3字节)age INT(3),                       -- 在MySQL中整数使用INT类型 注:不同数据库不同sex TINYINT(1) DEFAULT 0					-- 创建TINYINT,如果新增值时为空,则默认为0
)
查看表结构和已创建表的信息
-- 语法 查看表结构
DESC 表名
-- 例子 查看userinfo表的结构
DESC userinfo;-- 语法 查看已创建的表的创建语句
SHOW CREATE TABLE 表名-- 例子 查看创建userinfo表的信息
SHOW CREATE TABLE userinfo;
删除表
-- 语法
DROP TABLE 表名-- 例子 删除userinfo表
DROP TABLE userinfo;
修改表

image.png

修改表名
-- 语法
RENAME TABLE 原表名 TO 新表名-- 例子 将userinfo表改名为user
RENAME TABLE userinfo TO user
修改表结构
-- 准备一张表
CREATE TABLE hero(name VARCHAR(30),age INT(3)
)
添加字段
-- 语法
-- 添加新字段到表的第一行
ALTER TABLE 表名 ADD 字段名 类型 FIRST-- 向表的末尾追加一个新的字段
ALTER TABLE 表名 ADD 字段名 类型-- 将新字段添加到表中现有某个字段之后
ALTER TABLE 表名 ADD 字段名 类型 AFTER 表中现有某字段-- ------------------------------------------------- 例子
-- 添加地址字段到hero表第一行
ALTER TABLE hero ADD address varchar(20) FIRST-- 向hero表的末尾追加一个地址字段
ALTER TABLE hero ADD address varchar(20)-- 将新字段地址添加到hero表中name字段之后
ALTER TABLE 表名 ADD address varchar(20) AFTER name
删除字段
-- 语法
ALTER TABLE 表名 DROP 字段名-- 例子 删除hero表中地址字段
ALTER TABLE hero DROP address
修改字段
-- 语法
ALTER TABLE 表名 CHANGE 原字段名 新字段名 类型-- 例子1 将hero表中的age字段长度改为5
ALTER TABLE hero CHANGE age age INT(5)-- 例子2 将hero表中的age字段类型改为VARCHAR(10)
ALTER TABLE hero CHANGE age age VARCHAR(10) -- 例子3 将hero表中的gender字段改为phonenumber
ALTER TABLE hero CHANGE gender phonenumber INT(11)-- 例子4 将hero表中phonenumber字段添加非空约束
ALTER TABLE hero CHANGE phonenumber phonenumber INT(11) NOT NULL 

修改表结构应当在表中还没有数据时进行,否则可能出现因修改与表中现有数据冲突导致修改失败

  • 修改字段类型时,如果表中该字段原数据类型与新类型不匹配时,会导致原数据无法转换为新类型
    • 性别字段,原类型VARCHAR,记录的值为"男"或"女"。现希望将性别字段改为INT型。会发生类型冲突
  • 修改字段长度,长度减少可能导致失败
    • 手机号字段,原有长度11位。现在想将其改为5位,会因为现有数据该字段值长度都为11不能缩短导致修改失败。
  • 为现有字段添加约束,可能导致表中该现有记录该字段值存在不满足约束要求,导致修改失败。
    • 性别字段开始没有非空约束,表中部分记录该字段值为NULL,此时若修改该字段并追加非空约束,会导致现有该字段为NULL值的记录不满足该约束,导致约束无法修改。

索引操作

创建索引
  1. 创建表的同时创建索引.(例如 create table tablename(…,index 索引名 (字段名)))
drop table if exists student;
create table if not exists student
(id bigint auto_increment,first_name varchar(50) not null comment '学生名字',last_name varchar(20) not null comment '学生姓',phone varchar(15) not null comment '手机号',email varchar(50) default '' comment '邮箱',birthday date comment '出生日期',create_time datetime default current_timestamp comment '注册日期',primary key (id),unique key (phone),index h_index (email)
)engine = InnoDB character set utf8mb4;
  1. 创建表后通过create语句创建索引(例如 create index 索引名 on 表名(字段名))
  2. 创建表后通过alter语句创建索引(例如 alter table add index 索引名(字段名))
  • 创建普通索引例子
create index index_first_name on student(first_name);
alter table student add index index_last_name (last_name);
  • 创建唯一索引例子
create unique index index_first_name on student(first_name);
alter student add unique index index_email (email)
  • 创建组合(联合)索引例子
create index index_first_last on student(first_name,last_name);
alter table student add index index_first_last (first_name,last_name);
查看索引
-- 语法,查看某张表上的索引
show index from 表名
删除索引
-- 语法
drop index 索引名 on 表名;
-- 例子 删除student表中的index_first_last索引
drop index index_first_last on student;

DML

DML语言详细名称为data manipulation language,是数据操作语言,用来对表中的数据进行操作的。

主要需要认识的关键字如下:INSERTUPDATEDELETE

-- 准备一张表:
CREATE TABLE person(name VARCHAR(30),age INT(3)
)

INSERT 插入数据

-- 语法 注:在语法定义上[]中的内容是可写可不写的。
INSERT INTO 表名 [(字段1,字段2,字段3...)] VALUES (1,2,3...)-- 例子
INSERT INTO person (name,age) VALUES ('张三',22);
INSERT INTO person (age,name) VALUES (33,'李四');

注:

  • 在SQL中字符串的字面量使用**单引号(‘’)**括起来。
  • VALUES后面指定的值的类型,顺序,个数要与前面指定的字段完全一致,且一一对应
插入默认值

当插入一条记录时,表中某字段没有指定时,则是插入该字段的默认值。若该字段没有明确指定过默认值时,默认值为NULL。

-- 例如
INSERT INTO person (name) VALUES ('王五')
-- 上述SQL中没有指定age字段,此时该条记录插入后,age使用该字段的默认值NULL。

可以在创建表或后期修改表结构时,使用DEFAULT关键字为某个字段指定默认值

-- 为person表中的age字段添加默认值:20
ALTER TABLE person CHANGE age age INT(3) DEFAULT 20;-- 在创建表时为字段指定默认值:
CREATE TABLE person(name VARCHAR(30) DEFAULT '无名氏',age INT(3) DEFAULT 20
)

修改表为age添加默认值20

-- 此时插入后的赵六记录中age应当已经采取了指定的默认值:20
INSERT INTO person(name) VALUES('赵六');
全列插入

在INSERT语句中没有指定字段名时就是全列插入,此时需要注意VALUES子句中指定的值的个数,顺序,类型必须与表中定义时指定的字段一致。

INSERT INTO person VALUES('钱七',38)-- 若想使用某个字段的默认值,可以使用DEFAULT关键字表达
INSERT INTO person VALUES('钱七',DEFAULT)-- 若希望插入NULL值,可以使用NULL表达
INSERT INTO person VALUES('钱七',NULL)-- 下面是错误的情况:
INSERT INTO person VALUES('钱七')			列的个数不匹配
INSERT INTO person VALUES(22,'钱七')      列的类型不匹配
查询插入

查询另一张表的数据插入到person表

INSERT INTO person SELECT name,age FROM user

UPDATE 修改数据

-- 语法
UPDATE 表名 SET 字段1=新值1[,字段2=新值2,...] [WHERE 过滤条件]-- 例子 当缺少WHERE子句时,数据库会将person表中每条记录的age字段都改为15
UPDATE person SET age=15
修改指定的记录

仅将满足WHERE条件的记录进行修改。

-- 将张三的年龄修改为22岁
UPDATE person SET age=22 WHERE name='张三'-- 只要满足WHERE条件的记录都会被修改。
UPDATE person
SET age=36
WHERE age=15
WHERE子句常用的条件

=,>,>= >,<,<=,<>(不等于:<>。实际上!=也可以用。)

-- 例子1 将年龄大于35岁的人年龄修改为30
UPDATE person
SET age=30
WHERE age>35-- 例子2 将person表中每个人的年龄涨一岁
UPDATE person
SET age=age+1
修改多个字段的值
-- 例子 将'李四'的名字改为'李老四'并且年龄改为50
UPDATE person
SET name='李老四',age=50
WHERE name='李四'

DELETE 删除数据

-- 语法
DELETE FROM 表名 [WHERE 过滤条件]

注:DELETE语句中通常都要添加WHERE条件,否则是清空表操作!

--例子1 删除'李老四'
DELETE FROM person
WHERE name='李老四'-- 例子2 删除年龄大于30的人
DELETE FROM person
WHERE age>30
清空表操作
DELETE FROM person

处理DELETE可以删除表的数据,还有一个TRUNCATE也可以清空表,但是并不常用,如果要使用最好查询这个关键字的用法和使用后果

DQL

DQL语言详细名称为data query language,是数据查询语言,用来查询表中数据的。

主要需要认识的关键字如下:SELECT

-- 基本语法
SELECT 字段1, 字段2
FROM 表名
WHERE 条件表达式;-- 例子 查询person表中年龄为16的数据,且只展示name、sex、age字段
SELECT name, sex, age
FROM person
WHERE age = 16;

本章只是做介绍,所以并不会深入讲解DQL的其他关键字,例如:DISTINCT、GROUP BY、HAVING、ORDER BY、LIMIT

TCL

TCL语言详细名称为transaction control lauguage,是事务控制语言,用来保证一些列数据库操作具有原子性,隔离性,一致性,持久性

主要需要认识的关键字如下:COMMITROLLBACK
事务需要在对数据库有一定了解后再去深入了解。

DCL

DCL语言详细名称为data control language,数据控制语言,进行数据库管理操作的,比如用户创建,权限分配等,是DBA经常使用的操作,DCL通常是用来确保使用合适的权限控制来保护数据库的安全性

主要需要认识的关键字如下:GRANTREVOKE

授予用户权限

-- 语法
GRANT 权限 ON 数据库名[.表名] TO '用户名'@'主机名';

其中权限可以有:ALL PRIVILEGES 或具体的权限如 SELECT, INSERT, UPDATE

-- 例子
GRANT SELECT,INSERT ON mydatabase.mytable TO 'pp'@'localhost';

撤销用户权限

-- 语法
REVOKE 权限 ON 数据库名[.表名] TO '用户名'@'主机名';

其中权限可以有:ALL PRIVILEGES 或具体的权限如 SELECT, INSERT, UPDATE

-- 例子
REVOKE SELECT,INSERT ON mydatabase.mytable TO 'pp'@'localhost';

相关文章:

数据库与SQL

数据库基本概念 数据库(DataBase)&#xff1a;数据库就是存储数据的仓库数据库管理系统(DBMS)&#xff1a;可以独立运行的软件&#xff0c;维护磁盘上的数据&#xff0c;用统一的方式维护不同种类的数据&#xff0c;做到通用且高效。常见的DBMS: mysqloracledb2sqlserver 数据…...

AIGC | 在机器学习工作站安装NVIDIA CUDA® 并行计算平台和编程模型

[ 知识是人生的灯塔&#xff0c;只有不断学习&#xff0c;才能照亮前行的道路 ] 0x02.初识与安装 CUDA 并行计算平台和编程模型 什么是 CUDA? CUDA&#xff08;Compute Unified Device Architecture&#xff09;是英伟达&#xff08;NVIDIA&#xff09;推出的并行计算平台和编…...

【电商纯干货分享】干货速看!电商数据集数据API接口数据分析大全!

数据分析——深入探索中小企业数字化转型&#xff0c;专注提供各行业数据分析干货、分析技巧、工具推荐以及各类超实用分析模板&#xff0c;为钻研于数据分析的朋友们加油充电。 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09…...

随手记录: Ubuntu NVIDIA显卡驱动安装后 屏幕亮度无法调节 无法连接外显示器等问题

背景 一句话&#xff1a;简单记录帮身边人装系统发现 GPU和外接显示器的无法连接&#xff0c;同时亮度无法调节等新问题 设备型号&#xff1a; 联想笔记本&#xff1a;ThinkBook 16p Gen2CPU&#xff1a;AMD Ryzen 7 5800HGPU&#xff1a;RTX 3060 问题描述及流程&#xff…...

Java:数组

文章目录 一、概念二、声明数组2.1 格式2.2 实例 三、初始化数组3.1 格式3.2 实例 四、处理数组4.1 for循环4.2 增强for循环 五、多维数组5.1 格式5.2 实例 一、概念 数组对于每一门编程语言来说都是重要的数据结构之一&#xff0c;当然不同语言对数组的实现及处理也不尽相同。…...

【代码随想录——图论——岛屿问题】

1.岛屿数量 https://kamacoder.com/problempage.php?pid1171 1.1 深度优先搜索 package mainimport "fmt"var direction [][]int{{0, 1}, {0, -1}, {1, 0}, {-1, 0}}func main() {var M, N intfmt.Scanln(&N, &M)sea : make([][]int, N)visited : make…...

异步调用 - 初识

目录 1、引入 2、同步调用 2.1、例子&#xff1a;支付功能 2.2、同步调用的好处 2.3、同步调用的缺点 3、异步调用 3.1、异步调用的方式 3.2、异步调用的优势 3.3、异步调用的缺点 3.4、什么场景下使用异步调用 3.5、MQ技术选型 1、引入 为什么想要异步通信呢&…...

Java 家庭物联网

家庭物联网系统的代码和说明&#xff0c;包括用户认证、设备控制、数据监控、通知和警报、日志记录以及WebSocket实时更新功能。 ### 项目结构 plaintext home-iot-system ├── backend │ └── src │ └── main │ └── java │ └…...

机器学习——随机森林

随机森林 1、集成学习方法 通过构造多个模型组合来解决单一的问题。它的原理是生成多个分类器/模型&#xff0c;各自独立的学习和做出预测。这些预测最后会结合成组合预测&#xff0c;因此优于任何一个单分类得到的预测。 2、什么是随机森林&#xff1f; 随机森林是一个包含…...

Java - JDK17语法新增特性(如果想知道Java - JDK17语法新增常见的特性的知识点,那么只看这一篇就足够了!)

前言&#xff1a;Java在2021年发布了最新的长期支持版本&#xff1a;JDK 17。这个版本引入了许多新的语法特性&#xff0c;提升了开发效率和代码可读性。本文将简要介绍一些常见的新特性&#xff0c;帮助开发者快速掌握并应用于实际开发中。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨…...

Linux-DNS

DNS域名解析服务 1.DNS介绍 DNS 是域名系统 (Domain Name System) 的缩写&#xff0c;是因特网的一项核心服务&#xff0c;它作为可以将域名和IP地址相互映射的一个分布式数据库&#xff0c;能够使人更方便的访问互联网&#xff0c;而不用去记住能够被机器直接读取的IP数串。…...

使用gitlab的CI/CD实现logseq笔记自动发布为单页应用

使用gitlab的CI/CD实现logseq笔记自动发布为单页应用 使用gitlab的CI/CD实现logseq笔记自动发布为单页应用如何实现将logseq的笔记发布成网站使用 logseq-publish-docker 实现手动发布使用gitlab的CI/CD实现自动发布过程中的问题及解决参考资料 使用gitlab的CI/CD实现logseq笔记…...

云联壹云 FinOps:赋能某车企公有云成本管理与精细化运营

背景 某车企&#xff0c;世界 500 强企业&#xff0c;使用了大量的公有云资源&#xff0c;分布于多家公有云&#xff0c;月消费在千万级别。 业务线多且分散&#xff0c;相关的云消耗由一个核心团队进行管理&#xff0c;本次案例的内容将围绕这些云成本的管理展开的。 需求 …...

C#静态类与非静态类

1、静态类 静态类有几个重要的特点&#xff1a; 1&#xff09;无法实例化&#xff1a;由于静态类不能被实例化&#xff0c;因此它不会占用对象内存。 2&#xff09;静态成员&#xff1a;静态类只能包含静态成员&#xff08;静态方法、静态属性、静态事件等&#xff09;。 3&am…...

亚信安全:《2024云安全技术发展白皮书》

标签 云计算 安全威胁 云安全技术 网络攻击 数据保护 一句话总结 《云安全技术发展白皮书》全面分析了云计算安全威胁的演进&#xff0c;探讨了云安全技术的发展历程、当前应用和未来趋势&#xff0c;强调了构建全面云安全防护体系的重要性。 摘要 云安全威胁演进&#xff…...

GuLi商城-商品服务-API-品牌管理-云存储开通与使用

这里学习下阿里云对象存储 地址&#xff1a;对象存储 OSS_云存储服务_企业数据管理_存储-阿里云 登录支付宝账号&#xff0c;找到了我以前开通的阿里云对象存储 熟悉下API 文档中心 简介_对象存储(OSS)-阿里云帮助中心 我们将用这种方式上传阿里云OSS...

git 命令行初始化并上传项目

XXXX 为项目名称 1. 初始化 cd D:\XXXX git init git remote add origin http://账号192.168.1.231:8088/r/XXXX.git 2. 拉取项目&#xff0c;做本地合并 git pull origin master git fetch origin git merge origin/master 3. 添加注释&#xff0c;上传 git add . git c…...

Spring框架Mvc(2)

1.传递数组 代码示例 结果 2.集合参数存储并进行存储类似集合类 代码示例 postman进行测试 &#xff0c;测试结果 3.用Json来对其进行数据的传递 &#xff08;1&#xff09;Json是一个经常使用的用来表示对象的字符串 &#xff08;2&#xff09;Json字符串在字符串和对象…...

Python学习笔记29:进阶篇(十八)常见标准库使用之质量控制中的数据清洗

前言 本文是根据python官方教程中标准库模块的介绍&#xff0c;自己查询资料并整理&#xff0c;编写代码示例做出的学习笔记。 根据模块知识&#xff0c;一次讲解单个或者多个模块的内容。 教程链接&#xff1a;https://docs.python.org/zh-cn/3/tutorial/index.html 质量控制…...

【LLM】一、利用ollama本地部署大模型

目录 前言 一、Ollama 简介 1、什么是Ollama 2、特点&#xff1a; 二、Windows部署 1.下载 2.安装 3.测试安装 4.模型部署&#xff1a; 5.注意 三、 Docker部署 1.docker安装 2.ollama镜像拉取 3.ollama运行容器 4.模型部署&#xff1a; 5.注意&#xff1a; 总结 前言…...

Java毕业设计 基于SSM vue新生报到系统小程序 微信小程序

Java毕业设计 基于SSM vue新生报到系统小程序 微信小程序 SSM 新生报到系统小程序 功能介绍 学生 登录 注册 忘记密码 首页 学校公告 录取信息 录取详情 师资力量 教师详情 收藏 评论 用户信息修改 宿舍安排 签到信息 在线缴费 教室分配 我的收藏管理 我要发贴 我的发贴 管理…...

玩转云服务:Oracle Cloud甲骨文永久免费云服务器注册及配置指南

上一篇&#xff0c;带大家分享了&#xff1a;如何薅一台腾讯云服务器。 不过&#xff0c;只有一个月免费额度&#xff0c;到期后需要付费使用。 相对而言&#xff0c;海外云厂商更加慷慨一些&#xff0c;比如微软Azure、甲骨文、亚马逊AWS等。 甲骨文2019年9月就推出了永久免…...

Zabbix——宏

目录 宏的类型 常用宏 定义和使用宏 宏的优先级 使用宏的示例 在 Zabbix 中&#xff0c;宏&#xff08;Macros&#xff09;是一个非常强大的功能&#xff0c;允许你在监控配置中使用动态变量。宏可以在各种配置项中使用&#xff0c;例如触发器、动作、通知、图形和模板等。…...

Unity 简单载具路线 Waypoint 导航

前言 在游戏开发和导航系统中&#xff0c;"waypoint" 是指路径中的一个特定位置或点。它通常用于定义一个物体或角色在场景中移动的目标位置或路径的一部分。通过一系列的 waypoints&#xff0c;可以指定复杂的移动路径和行为。以下是一些 waypoint 的具体用途&…...

科普文:微服务之服务网格Service Mesh

一、ServiceMesh概念 背景 随着业务的发展&#xff0c;传统单体应用的问题越来越严重&#xff1a; 单体应用代码库庞大&#xff0c;不易于理解和修改持续部署困难&#xff0c;由于单体应用各组件间依赖性强&#xff0c;只要其中任何一个组件发生更改&#xff0c;将重新部署整…...

第四十九章 解决 IRIS 中的 SOAP 问题 - 发送消息时出现问题

文章目录 第四十九章 解决 IRIS 中的 SOAP 问题 - 发送消息时出现问题 第四十九章 解决 IRIS 中的 SOAP 问题 - 发送消息时出现问题 如果在向 IRIS Web 服务或客户端发送或接收 SOAP 消息时遇到问题&#xff0c;请考虑以下常见场景列表&#xff1a; SOAP 消息可能包含极长的字…...

STM32-HAL-FATFS(文件系统)(没做完,stm32f103zet6(有大佬的可以在评论区说一下次板子为什么挂载失败了))

1STM32Cube配置 1-1配置时钟 1-2配置调试端口 1-3配置uart 1-4配置SDIO&#xff08;注意参数&#xff09;&#xff08;其中他的初始化的异常函数给注释&#xff0c;SD卡文件写了&#xff09; 配置了还要打开中断和DMA可在我的其他文章中看一样的 1-5配置FatFs (只改了图选中…...

线性代数基础概念:矩阵

目录 线性代数基础概念&#xff1a;矩阵 1. 矩阵的定义 2. 矩阵的运算 3. 矩阵的特殊类型 4. 矩阵的秩 5. 矩阵的初等变换 6. 矩阵的特征值与特征向量 7. 矩阵的应用 8. 矩阵总结 总结 线性代数基础概念&#xff1a;矩阵 矩阵是线性代数中的另一个重要概念&#xff0…...

【优化论】约束优化算法

约束优化算法是一类专门处理目标函数在存在约束条件下求解最优解的方法。为了更好地理解约束优化算法&#xff0c;我们需要了解一些核心概念和基本方法。 约束优化的核心概念 可行域&#xff08;Feasible Region&#xff09;&#xff1a; 比喻&#xff1a;想象你在一个园艺场…...

7寸微型FPV无人机技术详解

对于7寸微型FPV&#xff08;First Person View&#xff0c;第一人称视角&#xff09;无人机技术的详解&#xff0c;可以从以下几个方面进行介绍&#xff1a; 一、定义与基本概念 FPV无人机&#xff0c;全称为“第一人称视角无人机”&#xff0c;它利用安装在无人机上的摄像头…...

大数据面试题之Presto[Trino](2)

目录 描述Presto中的Connector是什么&#xff1f; Presto如何实现数据源的插件化&#xff1f; 如何在单机上安装Presto&#xff1f; 描述在集群环境中部署Presto的步骤。 如何为Presto配置JVM参数&#xff1f; 如何优化Presto的配置以提高性能&#xff1f; Presto的日…...

STM32和DHT11使用显示温湿度度(代码理解)+单总线协议

基于STM32CT&#xff0c;利用DHT11采集温湿度数据&#xff0c;在OLED上显示。一定要阅读DHT11数据手册。 1、 DHT11温湿度传感器 引脚说明 1、VDD 供电3.3&#xff5e;5.5V DC 2、DATA 串行数据&#xff0c;单总线 3、NC 空脚 4、GND 接地&#xff0c;电源负极 硬件电路 微…...

EVM-MLIR:以MLIR编写的EVM

1. 引言 EVM_MLIR&#xff1a; 以MLIR编写的EVM。 开源代码实现见&#xff1a; https://github.com/lambdaclass/evm_mlir&#xff08;Rust&#xff09; 为使用MLIR和LLVM&#xff0c;将EVM-bytecode&#xff0c;转换为&#xff0c;machine-bytecode。LambdaClass团队在2周…...

深入Django(八)

掌握Django的管理后台 引言 在前七天的教程中&#xff0c;我们介绍了Django的基础架构、模型、视图、模板、URL路由、表单系统以及数据库迁移。今天&#xff0c;我们将深入了解Django的管理后台&#xff0c;这是一个功能强大的内置管理界面&#xff0c;用于创建、更新、查看和…...

华为开发者大会2024纪要:鸿蒙OS的全新篇章与AI大模型的革命

华为开发者大会2024纪要:鸿蒙OS的全新篇章与AI大模型的革命 在科技的浪潮中,华为再次引领潮流,2024年的开发者大会带来了一系列令人瞩目的创新成果。从鸿蒙操作系统的全新Beta版到盘古大模型的震撼发布,华为正以前所未有的速度重塑智能生态。以下是本次大会的亮点,让我们…...

吴恩达深度学习笔记:机器学习策略(2)(ML Strategy (2)) 2.7-2.8

目录 第三门课 结构化机器学习项目&#xff08;Structuring Machine Learning Projects&#xff09;第二周&#xff1a;机器学习策略&#xff08;2&#xff09;(ML Strategy (2))2.7 迁移学习&#xff08;Transfer learning&#xff09; 第三门课 结构化机器学习项目&#xff0…...

云计算渲染时代:选择Blender或KeyShot进行高效渲染

在云渲染技术日益成熟的背景下&#xff0c;挑选一款贴合项目需求的3D渲染软件显得尤为关键。当前&#xff0c;Blender与KeyShot作为业界领先的全能渲染解决方案&#xff0c;广受推崇。它们虽皆能创造出令人信服的逼真视觉效果&#xff0c;但在特色功能上各有所长。本篇文章旨在…...

html5中的iframe

HTML5中的iframe 浏览上下文是浏览器展示文档的环境&#xff0c;通常是一个tab标签页&#xff0c;一个窗体或者是浏览器页面的一部分。每个浏览上下文都有一个活动文档的源和一个记录所有展示文档的有序历史。浏览上下文的通讯被严格限制&#xff0c;只有两个同源的浏览器上下…...

海睿思问数(TableGPT):开创企业新一代指标应用模式

1 指标建设对企业经营管理数字化的价值分析 指标是将海量数据中关键信息提炼和挖掘出来&#xff0c;以数据为载体展示企业经营管理和分析中的统计量。它通过分析数据&#xff0c;形成一个具有度量值的汇总结果&#xff0c;使得业务状态可以被描述、量化和分解。指标通常由度量…...

LM-Cocktail:一种创新的模型合并方法打破预训练语言模型微调后的性能局限,实现语言模型在一般任务与特定领域的均衡高性能

LM-Cocktail:一种创新的模型合并方法打破预训练语言模型微调后的性能局限,实现语言模型在一般任务与特定领域的均衡高性能 使语言模型的微调类似于调制一杯精致的鸡尾酒。模型合并可用于提高单个模型的性能。我们发现此方法对于大型语言模型和密集嵌入模型也很有用,并设计了…...

默认导出(default)和命名导出

1.默认导出 优点&#xff1a; 简洁的导入语法&#xff1a; 导入时不需要使用花括号&#xff0c;可以直接重命名。单一职责&#xff1a; 模块导出一个主要功能或对象时&#xff0c;默认导出更符合逻辑。 适用场景&#xff1a; 模块只有一个导出&#xff1a; 如一个组件、一个…...

开发个人Go-ChatGPT--1 项目介绍

开发个人Go-ChatGPT--1 项目介绍 开发个人Go-ChatGPT--1 项目介绍知识点大纲文章目录项目地址 开发个人Go-ChatGPT–1 项目介绍 本文将以一个使用Ollama部署的ChatGPT为背景&#xff0c;主要还是介绍和学习使用 go-zero 框架&#xff0c;开发个人Go-ChatGPT的服务器后端&#…...

皮卡超级壁纸 | 幸运壁纸幸运壁纸app是一款涵盖了热门影视剧、动漫、风景等等资源的装饰工具,

软件下载链接&#xff1a;壁纸下载方式在链接中文章底部 皮卡超级壁纸 皮卡超级壁纸是一款专为手机用户设计的壁纸应用&#xff0c;它提供了丰富多样的高清壁纸资源&#xff0c;让用户的手机界面焕然一新。这款应用以其海量的壁纸库和用户友好的操作界面&#xff0c;在市场上…...

普通集群与镜像集群配置

目录 一. 环境准备 二. 开始配置集群 三. RabbitMQ镜像集群配置 四. 安装并配置负载均衡器HA 一. 环境准备 关闭防火墙和selinux&#xff0c;进行时间同步 主机名系统IP服务rabbitmq-1 Rocky_linux9.4 192.168.226.22RabbitMQ&#xff0c;MySQLrabbitmq-2Rocky_linux9.41…...

2024科技文化节程序设计竞赛

补题链接 https://www.luogu.com.cn/contest/178895#problems A. 签到题 忽略掉大小为1的环&#xff0c;答案是剩下环的大小和减环的数量 #include<bits/stdc.h> #include<iostream> #include<cstdio> #include<vector> #include<map> #incl…...

玩转Easysearch语法

Elasticsearch 是一个基于Apache Lucene的开源分布式搜索和分析引擎&#xff0c;广泛应用于全文搜索、结构化搜索、分析等多种场景。 Easysearch 作为Elasticsearch 的国产化替代方案&#xff0c;不仅保持了与原生Elasticsearch 的高度兼容性&#xff0c;还在功能、性能、稳定性…...

【密码学】RSA公钥加密算法

文章目录 RSA定义RSA加密与解密加密解密 生成密钥对一个例子密钥对生成加密解密 对RSA的攻击通过密文来求得明文通过暴力破解来找出D通过E和N求出D对N进行质因数分解通过推测p和q进行攻击 中间人攻击 一些思考公钥密码比对称密码的机密性更高&#xff1f;对称密码会消失&#x…...

【ARMv8/v9 GIC 系列 5.1 -- GIC GICD_CTRL Enable 1 of N Wakeup Function】

请阅读【ARM GICv3/v4 实战学习 】 文章目录 GIC Enable 1 of N Wakeup Function基本原理工作机制配置方式应用场景小结GIC Enable 1 of N Wakeup Function 在ARM GICv3(Generic Interrupt Controller第三代)规范中,引入了一个名为"Enable 1 of N Wakeup"的功能。…...

C++怎么解决不支持字符串枚举?

首先&#xff0c;有两种方法&#xff1a;使用命名空间和字符串常量与使用 enum class 和辅助函数。 表格直观展示 特性使用命名空间和字符串常量使用 enum class 和辅助函数类型安全性低 - 编译器无法检查字符串有效性&#xff0c;运行时发现错误高 - 编译期类型检查&#xf…...

中英双语介绍四大会计师事务所(Big Four accounting firms)

中文版 “四大会计师事务所”&#xff08;Big Four accounting firms&#xff09;是全球最具影响力和规模最大的四家专业服务公司&#xff0c;它们在审计、税务、咨询和财务咨询等领域占据着主导地位。这四家公司分别是普华永道&#xff08;PwC&#xff09;、德勤&#xff08;…...