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

数据库基础知识---以MySQL为例

一、什么是MySQL

  • 数据保存在不同的表中,而不是将所有数据放在一个大仓库内

二、特点

  • 开源--免费下载
  • 跨平台--可以在多个操作系统进行运行
  • 性能好--可以出来大量数据
  • 简单--安装配置简单
  • 支持多种编程语言--可以与多种编程语言进行无缝集成

三、分类

  • DDL--数据定义语言:用来定义数据库对象、数据库、表、列
  • DML--数据操作语言:用来对数据库中表的记录进行更新
  • DQL--数据查询语言:用来查询数据库中表的记录
  • DCL--数据控制记录:用来定义数据库的访问权限、安全级别、创建用户

四、常用数据类型

 大致分为三类:数值、时间/日期、字符/字符串

1.数值

  • int
  • double

2.时间/日期

  • date-- YYYY-MM-DD
  • time--HH:MM:SS
  • year--YYYY

3.字符/字符串

  • varchar--变长字符串
  • char--定长字符串 

五、注释

  • 单行注释:--空格
  • 多行注释:/* */
  • #--MySQL特有注解 

六、分类(详细)

1.DDL

  • //库
    create database 数据库名:创建数据库create database 数据库名 character set 字符集:创建一个数据库,并设置其字符集select database(): 查看正在使用的数据库use 数据库名:切换到 数据库操作show databases:查看所有的数据库show creat database 数据库名:查看指定数据库的定义信息alter database 数据库名 character set 字符集:修改指定数据库的字符集drop database 数据库名:永久删除指定数据库//表CREATE TABLE 表名(字段名称1 字段类型(长度),字段名称2 字段类型 最后一列不加逗号);CREATE TABLE 新表名 like 旧表名:复制表结构show tables; 查看根数据库的所有表名desc 表名 :查看数据表的结构drop table 表名; 删除表drop table if exists 表名; 存在的话就删除,不存在就不执行删除rename table 旧表名 to 新表名:修改表名alter table 表明 character set 字符集名:修改表的字符集alter table 表名 add 字段名称 字段类型:向表中添加列 关键字 ADD(删除列 关键字 DROP)//列
    alter table 表名 modify 字段名称 字段类型:修改表中列的 数据类型或长度 ,关键字 MODIFYalter table 表明 change 旧列名 新列名 类型(长度):修改列名称,关键字 CHANGEalter table 表明 drop 列名:删除列,关键字 DROP

2.DML

  • insert into 表名 values (字段1,字段2...):插入全部字段
    注意事项
    1.值与字段必须对应 ——个数相同,数据类型相同
    2.值的数据大小,必须在字段的长度范围内
    3.varchar char date 类型,必须使用单引号或双引号
    4.要插入空值,可以忽略该字段,或插入 nullupdate 表名 set 列名 = 值 where 条件表达式:带条件修改delete from 表名 where 条件表达式:指定条件删除

3.DQL

  • select * from 表名:查询所有数据select 字段1,字段2 from 表名:查询指定字段数据别名查询 关键字 ASselect distinct * from 表名:去重关键字 distinct排序——Order By
    select 字段名 from 表名 [where 字段 = 值 ] order by 字段名[ ASC / DESC]
    ASC 表示升序,默认 ——ascending
    DESC 表示降序——Descending单例排序——只按照某一个字段排序
    select 字段名 from 表名 [where 字段 = 值 ] order by 字段名[ ASC / DESC]组合排序——同时对多个字段排序
    select 字段名 from 表名 [where 字段 = 值 ] order by 字段名1[ ASC / DESC] , 字段名2[ ASC / DESC] ;聚合函数
    SELECT 聚合函数(字段名) FROM 表名;
    聚合函数类型及作用
    count(字段)	统计指定列不为NULL的记录行数
    sum(字段)	计算指定列的数值和
    min(字段)	计算指定列的最大值
    max(字段)	计算指定列的最小值
    avg(字段)	计算指定列的平均值分组——GROUP BY
    select 分组字段/聚合函数 from 表名 group by 分组字段 [having 条件]limit关键字
    select 字段1,字段2 ... from 表名 limit 起始行数 , 返回行数;
    limit offset , length; 关键字可以接受一个 或者两个 为0 或者正整数的参数
    offset 起始行数, 从0开始记数, 如果省略 则默认为 0.
    length 返回的行数
    分页公式 起始索引 = (当前页 - 1) * 每页条数

七、运算符

1.比较运算符

运算符

说明

> < = = <> !=

大于、小于、大于(小于)等于、不等于

BETWEEN ...AND...

显示在某一区间的值

例如: 2000-10000之间: Between 2000 and 1000

IN(集合)

集合表示多个值,使用逗号分隔,例如: name in (悟空,八戒)in中的每个数据都会作为一次条件,只要满足条件就会显示

LIKE '%张%'

模糊查询

IS NULL

查询某一列为NULL的值, 注: 不能写 = NULL

 2.逻辑运算符

运算符

说明

And &&

多个条件同时成立

Or ||

多个条件任一成立

Not

不成立,取反。

3.通配符--模糊查询

通配符

说明

%

匹配任意多个字符串

_

匹配一个字符

 八、约束

1.作用

  • 对表中的数据进行进一步限制,从而保证数据的正确性,有效性,完整性。违反约束的条件,将无法插入到表中

2.常见约束

  • 主键 —— primary key
  • 语法格式:字段名 字段类型 primary key创建主键:1.CREATE TABLE 表名(字段名1 数据类型 ,字段名2 数据类型 PRIMARY KEY ,字段名3 数据类型);2.CREATE TABLE 表名(字段名1 数据类型 ,字段名2 数据类型 ,字段名2 数据类型 ,PRIMARY KEY(字段名2));3.alter table 表名 add primary key(字段名)删除主键:alter table 表名 drop primary key主键自增:字段名 数据类型 primary key auto_increment (字段类型必须是 整数类型)
    
  • 唯一 —— unique
  • 特点:表中的某一列值不能有重复值字段名 字段类型 unique

  • 非空 —— not null
  • 特点: 某一列数据不可为空字段名 字段类型 not null

  • 外键 —— foreign key
  • 外键指的是在从表中与主表的主键对应的那个字段注意事项
    1.外键指向的表的字段,要求是primary key 或者是 unique
    2.表的类型的innodb ,这样的表才支持外键
    3.外键字段的类型 要和 主键字段的类型一致(长度可以不同)
    4.外键字段的值,必须在主键字段中出现过,或者为null
    5.一旦建立主外键关系,数据不能随意删除
    6.添加数据时,先添加主表中的数据
    7.删除数据时,先删除从表中的数据创建外键
    [constraint] [外键约束名称] foreign key(外键字段名) references 主表名(主键字段名)已有表添加外键
    ALTER TABLE 从表 ADD [CONSTRAINT] [外键约束名称] FOREIGN KEY (外键字段名) REFERENCES主表(主 键字段名);删除外键
    alter table 从表 drop foreign key 外键约束名称

  • 默认值——default
  • 用来指定某列的默认值字段名 字段类型 default 默认值

九、事务 

1.什么是

  • 事务是一个整体,由一条或者多条SQL 语句组成,这些SQL语句要么都执行成功,要么都执行失败, 只要有一条SQL出现异常,整个操作就会回滚,整个业务执行失败

2.回滚

  •  即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成 的操作全部撤销,滚回到事务开始时的状态。(在提交之前执行)

3.基本操作

  • start transaction / begin ——开始一个事务rollback ——回滚全部事务commit——提交事务,所有的操作生效,无法在回滚

4.四大特性

  • 原子性: 事务是一个不可拆分的整体,要么全部成功要么全部失败
  • 一致性: 数据的状态,在执行前后保持一致
  • 隔离性:事务与事务之间互不影响,执行保持隔离状态
  • 持久性:执行成功,对数据库的修改是永久性的

5.产生问题及隔离级别

(1) 产生问题

  • 脏读: 一个事务读取到另一个事务尚未提交的数据
  • 幻读: 一个事务内,多次查询同一数据时,数据量不一致
  • 不可重复读:同一个事务多次读取同一条数据时,数据不一致

(2)隔离级别

  •  

6. 表

  • 一对一
  • 一对多
  • 例如:班级和学生,客户与订单
  • 建表原则:在从表(多方)创建一个字段,字段作为外键指向主表的(一方)的主键
    • 主:少
    • 从:多
  • 多对多
  • 例如:老师和学生,客户与销售
  • 建表原则:创建一个中间表,中间表至少两个字段,分别作为外键指向各自一方的主键
  • 注意:多对多关系中,多个表之间,中间表就成了从表

7. 多表查询分类

(1)内连接:交集

  • 隐式链接
  • SELECT 字段名 FROM 左表, 右表 WHERE 连接条件;
  • 显式链接
  • select 字段名 from 左表[ INNER ] JOIN 右表 ON 连接条件 where 条件

(2)外连接

  • 左外连接
  • 以左表为基准, 匹配右边表中的数据,如果匹配的上,就展示匹配到的数据,如果匹配不到, 左表中的数据正常展示, 右边的展示为null.
  • SELECT 字段名 FROM 左表 LEFT [OUTER] JOIN 右表 ON 条件
  • 右外连接
  • 以右表为基准, 匹配左边表中的数据,如果匹配的上,就展示匹配到的数据,如果匹配不到, 右表中的数据正常展示, 左边的展示为null.
  • SELECT 字段名 FROM 右表 RIGHT [OUTER] JOIN 左表 ON 条件

(3)子查询

  • 什么是
  • 一条select 查询语句的结果, 作为另一条 select 语句的一部分
  • 特点
  • 子查询必须放在小括号中
  • 子查询一般作为父查询的查询条件使用

十、数据库设计

 1.三范式

  • 第一范式
  • 原子性,列不能在分最基本范式最小数据单元
  • 第二范式
  • 在第一范式基础上进行跟进,目的是为了让表中的每一列与主键相关
  • 第三范式
  • 消除传递依赖

十一、MySQL索引

1.分类

  • 主键索引
  • 唯一索引
  • 普通索引 

2.优缺点

  • 优点 
  • 提高查询速度
  • 减少查询中分组与排序的时间
  • 缺点
  • 咋用一定得储存空间
  • 减少创建和维护索引的时间
  • 不恰当查询语句会导致索引失效

十二、MySQL视图

1.什么是

  • 一种虚拟表 

2.作用

  • 控制权限 
  • 比如说,有几个列可以运行用户查询,其他列不允许运行;我们可以开通视图,只查询特定的列,这样起到权限控制作用
  • 简化多表查询
  • 比如说,我们要进行一次复杂的查询,我们可以构建一张视图,用户只要查询视图就可以获取相关信息

3.视图和表的区别

  • 删除视图,表不受影响,删除表,视图也将不存在

十三、MySQL优化

  • select语句中避免使用*
  • -- 不推荐 
    SELECT * FROM employees; -- 推荐
    SELECT id, name, position FROM employees; 
  • 只需要一行数据的时候使用limit 1
  • -- 不推荐(可能返回多行) 
    SELECT name FROM employees WHERE position = 'Manager';-- 推荐(确保只返回一行)
    SELECT name FROM employees WHERE position = 'Manager' LIMIT 1;
  • 将where中用的比较频繁的字段建立索引
  • -- 假设`position`字段在`WHERE`子句中经常使用
    CREATE INDEX idx_position ON employees(position);
  • 减少使用join查询次数
  • -- 不推荐(多个JOIN) 
    SELECT e.name,  d.department_name   
    FROM employees e 
    JOIN departments d ON e.department_id  = d.id  
    JOIN projects p ON e.project_id  = p.id; -- 推荐(减少JOIN,分步查询)
    SELECT name FROM employees WHERE department_id = 1;
    SELECT department_name FROM departments WHERE id = 1;
  • 减少子查询的次数
  • -- 不推荐(使用子查询)
    SELECT name FROM employees WHERE department_id = (SELECT id FROM departments WHERE department_name = 'Sales');-- 推荐(用JOIN替代子查询) 
    SELECT e.name   
    FROM employees e 
    JOIN departments d ON e.department_id  = d.id  
    WHERE d.department_name  = 'Sales';
  • 对大数据量的查询,使用分页查询、分区表、分表
  • -- 不推荐(一次性查询所有数据)
    SELECT * FROM employees; -- 推荐(分页查询)
    SELECT * FROM employees LIMIT 10 OFFSET 0; -- 查询第一页,每页10条
  • 使用动态SQL,避免生成多余复杂的语句,防止SQL注入
  • -- 不推荐(拼接SQL,易注入)
    SELECT * FROM employees WHERE name = 'O'Reilly'; -- 危险! -- 推荐(使用参数化查询)
    PREPARE stmt FROM 'SELECT * FROM employees WHERE name = ?';
    SET @name = 'O\'Reilly'; 
    EXECUTE stmt USING @name; 
  • 优化数据类型:根据实际情况选择合适的数据类型,例如,对于整数类型,可以根据范围选择适当的类型,避免使用不必要的大整数类型。
  • -- 不推荐(使用过大类型)
    CREATE TABLE employees (id BIGINT, age INT);-- 推荐(选择合适类型)
    CREATE TABLE employees (id INT, age TINYINT); 
  • 垂直分区:如果一个表过于庞大,可以将其拆分成多个表,每个表只包含相关的列,这样可以减少表的大小和查询的复杂度。
  • -- 假设按年份分区
    CREATE TABLE employees_2020 (id INT, name VARCHAR(50), ...); 
    CREATE TABLE employees_2021 (id INT, name VARCHAR(50), ...); -- 查询时根据年份选择相应的表
    SELECT * FROM employees_2021 WHERE name = 'John'; 
  • 水平分区:将数据分布到多个表中,根据某个字段的值进行分区,例如按照时间范围或地区进行分区。这样可以提高查询的局部性和并行处理能力。
  • -- 假设按年份分区
    CREATE TABLE employees_2020 (id INT, name VARCHAR(50), ...); 
    CREATE TABLE employees_2021 (id INT, name VARCHAR(50), ...); -- 查询时根据年份选择相应的表
    SELECT * FROM employees_2021 WHERE name = 'John'; 
  • 定期优化表:定期执行 OPTIMIZE TABLE 命令来优化表的结构,整理数据和索引,提高查询性能。
  • -- 定期执行 
    OPTIMIZE TABLE employees; 
  • 缓存查询结果:对于频繁查询的结果,可以使用缓存来提高性能,例如在应用程序中使用缓存框架或在 MySQL 中使用查询缓存。
  • -- 在应用程序层面使用缓存(伪代码)
    if (cache.get('employee_list')  == null) {result = db.query('SELECT  * FROM employees'); cache.set('employee_list',  result, 60); // 缓存60秒
    } else { result = cache.get('employee_list'); 
    } 

相关文章:

数据库基础知识---以MySQL为例

一、什么是MySQL 数据保存在不同的表中&#xff0c;而不是将所有数据放在一个大仓库内 二、特点 开源--免费下载跨平台--可以在多个操作系统进行运行性能好--可以出来大量数据简单--安装配置简单支持多种编程语言--可以与多种编程语言进行无缝集成 三、分类 DDL--数据定义…...

013-spring的注解整合第三方框架

给spring的ioc容器中添加对象 常用这3个方法...

使用ForceBindIP绑定应用到指定IP

前言 使用ForceBindIP工具&#xff0c;用户可以轻松地将特定应用程序绑定到指定的IP地址&#xff0c;从而确保应用程序的网络连接通过指定的网络适配器进行。通过在命令提示符下运行ForceBindIP并指定IP地址和应用程序的完整路径&#xff0c;用户能够控制应用程序的网络流量&a…...

python-LeetCode-两数之和

1. 两数之和 - 力扣&#xff08;LeetCode&#xff09; class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:# 创建一个哈希表用于存储值和索引num_to_index {}for i, num in enumerate(nums):# 计算目标值需要的补数complement target - num# 如…...

项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(四)

文章目录 一、管理员角色功能实现1、添加教师功能实现1.1 页面设计1.2 前端功能实现1.3 后端功能实现1.4 效果展示2、教师管理功能实现2.1 页面设计2.2 前端功能实现2.3 后端功能实现2.3.1 后端查询接口实现2.3.2 后端编辑接口实现2.3.3 后端删除接口实现2.4 效果展示二、代码下…...

大语言模型的token和向量

现在大语言模型火了&#xff0c;像 ChatGPT 什么的&#xff0c;能回答问题、写文章&#xff0c;。但它们为啥这么聪明呢&#xff1f;这就和向量、Token 有关系。那怎么通过向量、Token来理解我们的问题呢。看完这篇文章就知道了 token Token 就像是语言里的小积木&#xff0c…...

Hyperledger Fabric有那些核心技术,和其他区块链对比Hyperledger Fabric有那些优势

Hyperledger Fabric是一个模块化、权限化的企业级区块链平台&#xff0c;与比特币、以太坊等公有链相比&#xff0c;Fabric主要为私有链或联盟链设计&#xff0c;适用于企业应用。它包含多项核心技术&#xff0c;使其在企业级区块链应用中具有独特优势。以下是Fabric的核心技术…...

ThinkPHP 8高效构建Web应用-第一个简单的MVC应用示例

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 我们先实现一…...

【Goland】怎么执行 go mod download

1、终端的执行 go mod tidy 2、终端执行不行的话&#xff0c;就可以通过右击go.mod文件来执行&#xff1b; 3、也可以按住Ctrl点击这个包安装&#xff1b;...

SpringBoot入门案例

目录 一、SpringBoot入门 1. Spring Boot 简介&#xff08;脚手架&#xff09; 2. 微服务 微服务优点&#xff1a; 微服务缺点&#xff1a; 3. 环境准备 3.1 spring boot项目的创建 3.2 导入spring boot相关的依赖 3.5 编写主程序 3.4 编写相关的controller、service…...

自定义 Celery的logging模块

为什么需要自定义 Celery 日志 默认的 Celery 日志配置虽然满足基本需求&#xff0c;但在以下情况下可能需要进行自定义&#xff1a; 支持日志滚动&#xff1a;原生celery不支持日志滚动。更详细的日志信息&#xff1a;需要包含更多上下文信息&#xff0c;以便更好地理解任务…...

docker-开源nocodb,使用已有数据库

使用已有数据库 创建本地数据库 数据库&#xff1a;nocodb 用户&#xff1a;nocodb 密码&#xff1a;xxxxxx修改docker-compose.yml 默认网关的 IP 地址是 172.17.0.1&#xff08;适用于 bridge 网络模式&#xff09;version: "2.1" services:nocodb:environment:…...

【UE5】UnrealEngine源码构建1:tag为5.3.2源码clone

fatal: fetch-pack: invalid index-pack output clone unreal 速度很快,但是很容易失败Cloning into UnrealEngine... remote: Enumerating objects: 6511087, done. remote: Counting objects: 100% (196/196), done. remote: Compressing objects: 100% (50/50), done. erro…...

RoboMIND:多体现基准 机器人操纵的智能规范数据

我们介绍了 RoboMIND&#xff0c;这是机器人操纵的多体现智能规范数据的基准&#xff0c;包括 4 个实施例、279 个不同任务和 61 个不同对象类别的 55k 真实世界演示轨迹。 工业机器人企业 埃斯顿自动化 | 埃夫特机器人 | 节卡机器人 | 珞石机器人 | 法奥机器人 | 非夕科技 | C…...

FPGA自学之路:到底有多崎岖?

FPGA&#xff0c;即现场可编程门阵列&#xff0c;被誉为硬件世界的“瑞士军刀”&#xff0c;其灵活性和可编程性让无数开发者为之倾倒。但谈及FPGA的学习难度&#xff0c;不少人望而却步。那么&#xff0c;FPGA自学之路到底有多崎岖呢&#xff1f; 几座大山那么高&#xff1f;…...

讲一个自己写的 excel 转 html 的 java 工具

由来 这是一个从开发需求中诞生的工具&#xff0c;在工作中因为有一个 excel 转 html 的任务&#xff0c;又没找到一个专门做这方面的工具&#xff08;其他工具几乎都是简单的转换&#xff0c;无法还原 excel 样式&#xff0c;而且转换的宽高有点儿差距&#xff09;&#xff0…...

打破视障壁垒,百度文心快码无障碍版本助力视障IT从业者就业无“碍”

有AI无碍 钟科&#xff1a;被黑暗卡住的开发梦 提起视障群体的就业&#xff0c;绝大部分人可能只能想到盲人按摩。但你知道吗&#xff1f;视障人士也能写代码。 钟科&#xff0c;一个曾经“被黑暗困住”的人&#xff0c;他的世界&#xff0c;因为一场突如其来的疾病&#xff0c…...

爆改RagFlow

爆改RagFlow 一、Rag理论概述二、Ragflow解析参数说明三、♥ RagFlow源码解析核心代码流程梳理1、OCR识别2、版面分析3、parser功能3.1 PdfParser3.1.1 首先&#xff0c;初始化3.1.2 **pdf转图片** [来自工业界的知识库 RAG 服务(二)&#xff0c;RagFlow 源码全流程深度解析](h…...

Unity 使用UGUI制作卷轴开启关闭效果

视频效果 代码 using UnityEngine.UI; using System.Collections; using System.Collections.Generic; using UnityEngine; using DG.Tweening; using DG.Tweening.Core; using DG.Tweening.Plugins.Options;public class JuanZhou : MonoBehaviour {[SerializeField]private …...

android知识巩固(二.非线性数据结构)

非线性结构:是从逻辑结构上划分,其元素存在一对多或者多对多的相互关系 1.前言 在前一章中,我们了解了数据结构的基本思想,学习了部分基本的线性数据结构,了解了计算机是如何表示和存储数据的,良好的数据结构思想有助于我们写出性能优良的应用 2.目录 目录.png 3.非线性数据结构…...

Kafka中的Topic和Partition有什么关系?

大家好&#xff0c;我是锋哥。今天分享关于【Kafka中的Topic和Partition有什么关系&#xff1f;】面试题。希望对大家有帮助&#xff1b; Kafka中的Topic和Partition有什么关系&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Apache Kafka 中&#…...

CMS漏洞靶场攻略

DeDeCMS 环境搭建 傻瓜式安装 漏洞一&#xff1a;通过文件管理器上传WebShel 步骤⼀:访问目标靶场其思路为 dedecms 后台可以直接上传任意文件&#xff0c;可以通过⽂件管理器上传php文件获取webshell 登陆网站后台 步骤二&#xff1a;登陆到后台点击 【核心】 --》 【文件式…...

PHP高性能webman管理系统EasyAdmin8

介绍 EasyAdmin8-webman 在 EasyAdmin 的基础上使用 webman 最新版重构&#xff0c;PHP 最低版本要求不低于 8.0。基于webman和layui v2.9.x的快速开发的后台管理系统。 项目地址&#xff1a;http://easyadmin8.top 演示地址&#xff1a;http://webman.easyadmin8.top/admin …...

【达梦数据库】64 位操作系统注册 32 位 ODBC 方法

目录 背景思路部署安装64位软件安装包注册32位驱动成功案例其他案例 配置数据源 背景 在使用达梦数据库的过程中&#xff0c;应用需要32位驱动与数据库进行适配 思路 部署32位软件&#xff0c;经过测试&#xff0c;dmmonitor在本地环境及客户环境中前台启动失败报错&#xff…...

渗透学习笔记(十一)Burp Suite 总结

声明&#xff01; 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&#…...

数据结构与算法学习笔记----约数

数据结构与算法学习笔记----约数 author: 明月清了个风 first publish time: 2024.12.30 ps⭐️主要是求约数&#xff0c;约数的个数&#xff0c;约数的和&#xff0c;涉及到算术基本定理的相关内容&#xff0c;第三题的讲解合并在第二题的思路里一起了。 Acwing 869. 试除法…...

PyAudio库基本知识详解——为自制PCM音频播放器做准备

前言 结合前段时间我们做的音频编解码器&#xff0c;这样我们就可以将获取到的ADPCM数据&#xff0c;转换成PCM数据&#xff0c;然后播放出来&#xff0c;得到一个完整的音频数据&#xff0c;因此&#xff0c;接下来几篇文章中&#xff0c;我们想做一个播放PCM格式的音频播放器…...

微信小程序 覆盖组件cover-view

wxml 覆盖组件 <video src"../image/1.mp4" controls"{{false}}" event-model"bubble"> <cover-view class"controls"> <cover-view class"play" bind:tap"play"> <cover-image class"…...

实战案例——ZooKeeper集群部署(新手教程超详细)

案例目标 了解ZooKeeper分布式应用程序协调服务使用3台机器搭建ZooKeeper集群使用ZooKeeper集群 案例分析 规划节点 ZooKeeper集群节点规划 Ip 主机名 节点 192.168.110.10 zookeeper1 集群节点 192.168.110.20 zookeeper2 集群节点 192.168.110.30 zookeeper3 …...

LeetCode 326 3的幂

如何判断一个整数是否为 3 的幂次方 在编程中&#xff0c;我们经常会遇到各种有趣的数学问题&#xff0c;今天就来探讨一个看似简单却又很有技巧性的问题&#xff1a;如何判断一个给定的整数是否是 3 的幂次方。 一、问题描述 给定一个整数 n&#xff0c;我们需要编写一个函数…...

智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之5

本文要点 前端 问题描述语言 本文继续完善 “描述” ---现在我们应该可以将它称为 “问题problem描述语言 ”。 它 通过对话框的question 引发 表征的issue 的“涌现” 最终 厘清应用程序的“problem”。即它合并了 ISO七层模型中的上面三层&#xff0c;通过将三层 分别形成…...

flink-1.16 table sql 消费 kafka 数据,指定时间戳位置消费数据报错:Invalid negative offset 问题解决

请移步至最后的&#xff1a;2024-12-27日调整实现方式&#xff0c;26日实现的有bug&#xff0c;但是可以作为参考。 2024-12-27日调整实现方式 1.上边的方案&#xff0c;可以实现topic中每个分区都正常有数据的情况&#xff0c;但是如果部分分区没有数据&#xff0c;或者指定的…...

【服务器】上传文件到服务器并训练深度学习模型下载服务器文件到本地

前言&#xff1a;本文教程为&#xff0c;上传文件到服务器并训练深度学习模型&#xff0c;与下载服务器文件到本地。演示指令输入&#xff0c;完整的上传文件到服务器&#xff0c;并训练模型过程&#xff1b;并演示完整的下载服务器文件到本地的过程。 本文使用的服务器为云服…...

MyBatis如何处理延迟加载?

大家好&#xff0c;我是锋哥。今天分享关于【MyBatis如何处理延迟加载&#xff1f;】面试题。希望对大家有帮助&#xff1b; MyBatis如何处理延迟加载&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 MyBatis 中&#xff0c;延迟加载&#xff08;Laz…...

制造BOM的应用思考

一、制造BOM的作用 制造BOM(Manufacturing BOM,MBOM)在制造过程中的应用非常广泛,具体包括以下几个方面: 1. 生产计划和调度: 制造BOM提供了生产过程中所需的所有输入及输出间的关系,包括材料、部品的数量、结构以及制程等信息。这些信息是生产拉动物料需求计划以及成本…...

基于earthSDK三维地图组件开发

上效果 功能点 测量分析相机位置切换geojson数据加载地图打点&#xff0c;显示信息点击回传数据二三位切换 这里二三维切换通上篇openlayers分享&#xff0c;技术交流V:bloxed <template><div class"h100 w100"><div style"width:100%; heig…...

Mono里运行C#脚本5—mono_file_map_open

前面介绍了mono_jit_init初始化,这个函数非常长,要理解起来还是比较困难。因此改变另外一种方式,先从底层的函数开始,再慢慢来探索mono的底层实现,以及它的实现原理,运行的细节。 Mono要运行exe文件,这里是运行test-embed.exe文件,那么就得认识这个文件,解释这个文件的…...

Node.js使用教程

Node.js使用教程 Node.js是一个基于Chrome V8引擎的JavaScript运行环境&#xff0c;它让JavaScript运行在服务器端。以下是一个简单的Node.js使用教程&#xff1a; 一、 Node.js开发环境和编译 1.1 安装Node.js 访问Node.js官网下载并安装适合您操作系统的Node.js版本。 1…...

UniApp 组件的深度运用

一、引言 在当今的移动应用开发领域&#xff0c;跨平台开发已成为主流趋势&#xff0c;而 UniApp 作为其中的佼佼者&#xff0c;备受开发者青睐。UniApp 的强大之处很大程度上源于其丰富且功能多样的组件体系&#xff0c;这些组件宛如精巧的积木&#xff0c;能够帮助开发者快速…...

期末算法分析程序填空题

目录 5-1 最小生成树&#xff08;普里姆算法&#xff09; 5-2 快速排序&#xff08;分治法&#xff09; 输入样例&#xff1a; 输出样例&#xff1a; 5-3 归并排序(递归法) 输入样例&#xff1a; 输出样例&#xff1a; 5-4 求解编辑距离问题&#xff08;动态规划法&#xff09;…...

【机器学习】 卷积神经网络 (CNN)

文章目录 1. 为什么需要 CNN2. CNN 的架构3. 卷积层4. 池化层5. CNN 的应用 1. 为什么需要 CNN 前提&#xff1a;利用前置知识&#xff0c;去掉全连接神经网络中的部分参数&#xff0c;提升学习效率。本质&#xff1a;在 DNN 之前加上 CNN&#xff0c;先去除不必要的参数&…...

LeetCode热题100-字母异位词分组【JavaScript讲解】

题目&#xff1a; 根据题目想思路&#xff1a; 模式识别: 一旦需要根据特征进行归类的&#xff0c;就应该利用散列表。【散列表又叫哈希表】 我们遍历数组中的每一项&#xff0c;将每一项字符串拆分成一个一个的字符&#xff0c;并返回成数组的形式&#xff0c;并且进行排序后…...

面试241228

面试可参考 1、cas的概念 2、AQS的概念 3、redis的数据结构 使用场景 不熟 4、redis list 扩容流程 5、dubbo 怎么进行服务注册和调用&#xff0c;6、dubbo 预热 7如何解决cos上传的安全问题kafka的高并发高吞吐的原因ES倒排索引的原理 spring的 bean的 二级缓存和三级缓存 spr…...

AI界的拼多多:DeepSeek

AI界的拼多多:DeepSeek DeepSeek是一家位于中国杭州的人工智能基础技术研究公司,由杭州幻方量化投资管理合伙企业投资成立于2023年5月,专注于研究人工智能基础技术,其官网为deepseek.com.以下是关于DeepSeek的一些具体介绍及举例: 模型发布 DeepSeek Coder:2023年11月…...

备战春招 | 数字IC FPGA笔试题

在数字电路设计的领域&#xff0c;无论是数字IC&#xff08;集成电路&#xff09;还是FPGA&#xff08;现场可编程门阵列&#xff09;的设计&#xff0c;都需要对一系列核心概念有深刻的理解和掌握。随着科技的快速发展&#xff0c;这些领域的面试题目也在不断更新&#xff0c;…...

微服务-Sentinel新手入门指南

微服务为什么要使用流控降级组件 为了提高系统运行期间的稳定性和可用性 在微服务环境下&#xff0c;服务之间存在复杂的调用关系&#xff0c;单个服务的故障或过载可能会迅速影响到整个系统&#xff0c;导致服务雪崩效应。流控组件可以限制进入系统的流量&#xff0c;防止系…...

git clone 超时

git clone 超时 参考 https://blog.csdn.net/qq_45906972/article/details/142214187?utm_mediumdistribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-142214187-blog-137158358.235v43pc_blog_bottom_relevance_base8&spm1001.2101.3001.…...

java的bio、nio、aio 以及操作系统的select、poll、epoll

在 Java 和其他编程语言中&#xff0c;I/O 模型的选择对网络应用的性能和可扩展性有着重要影响。以下是 BIO&#xff08;Blocking I/O&#xff09;、NIO&#xff08;Non-blocking I/O&#xff09;、AIO&#xff08;Asynchronous I/O&#xff09;&#xff0c;以及操作系统级别的…...

Redis——数据过期策略

文章目录 1. 引入2. 数据过期策略2.1 策略一&#xff1a;惰性删除2.1.1 原理2.1.2 优点2.1.3 缺点 2.2 策略二&#xff1a;定期删除2.2.1 原理2.2.2 模式2.2.3 优点2.2.4 缺点 2.3 两种策略的比较 3. 总结 1. 引入 Redis 是一个 高性能 的非关系型数据库&#xff0c;由于 Redi…...

kubernetes Gateway API-1-部署和基础配置

文章目录 1 部署2 最简单的 Gateway3 基于主机名和请求头4 重定向 Redirects4.1 HTTP-to-HTTPS 重定向4.2 路径重定向4.2.1 ReplaceFullPath 替换完整路径4.2.2 ReplacePrefixMatch 替换路径前缀5 重写 Rewrites5.1 重写 主机名5.2 重写 路径5.2.1 重新完整路径5.2.1 重新部分路…...