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

MySQL基础知识(通俗版)

MySQL基础知识(通俗版)

一、MySQL基础概念

1.1 MySQL简介

想象MySQL就像一个超级大的Excel表格,但它比Excel更强大:

  • 可以同时处理成千上万的数据
  • 可以保证数据的安全性和一致性
  • 可以支持多人同时操作
  • 可以自动备份和恢复数据

1.2 基本概念

  1. 数据库(Database)

    • 就像一个大文件夹,里面可以存放很多相关的数据表
  2. 表(Table)

    • 就像Excel中的一个工作表,用来存储特定类型的数据
  3. 字段(Field)

    • 就像Excel中的列,用来存储不同类型的数据
    • 常见类型:文本、数字、日期、图片等
  4. 记录(Record)

    • 就像Excel中的一行,表示一条完整的数据

二、MySQL数据类型

2.1 数值类型

-- 整数类型
TINYINT      -- 1字节,范围:-128到127
SMALLINT     -- 2字节,范围:-32768到32767
INT          -- 4字节,范围:-2147483648到2147483647
BIGINT       -- 8字节,范围:-9223372036854775808到9223372036854775807-- 小数类型
FLOAT        -- 4字节,单精度浮点数
DOUBLE       -- 8字节,双精度浮点数
DECIMAL      -- 精确小数,用于金额等需要精确计算的场景

2.2 字符串类型

-- 固定长度字符串
CHAR(10)     -- 固定10个字符,不足补空格-- 可变长度字符串
VARCHAR(100) -- 最多100个字符,实际长度可变-- 文本类型
TEXT         -- 最大65535字节
MEDIUMTEXT   -- 最大16777215字节
LONGTEXT     -- 最大4294967295字节-- 二进制类型
BINARY       -- 固定长度二进制
VARBINARY    -- 可变长度二进制
BLOB         -- 二进制大对象

2.3 日期时间类型

DATE         -- 日期,格式:YYYY-MM-DD
TIME         -- 时间,格式:HH:MM:SS
DATETIME     -- 日期时间,格式:YYYY-MM-DD HH:MM:SS
TIMESTAMP    -- 时间戳,自动记录修改时间
YEAR         -- 年份,格式:YYYY

三、MySQL基本操作

3.1 数据库操作

-- 创建数据库
CREATE DATABASE shop CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;-- 删除数据库
DROP DATABASE IF EXISTS shop;-- 使用数据库
USE shop;-- 查看所有数据库
SHOW DATABASES;-- 查看数据库创建语句
SHOW CREATE DATABASE shop;

3.2 表操作

-- 创建表(完整示例)
CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT,username VARCHAR(50) NOT NULL UNIQUE,password VARCHAR(255) NOT NULL,email VARCHAR(100) UNIQUE,phone VARCHAR(20),age INT CHECK (age >= 0 AND age <= 150),gender ENUM('男', '女', '其他') DEFAULT '其他',status TINYINT DEFAULT 1 COMMENT '1:正常,0:禁用',created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,INDEX idx_username (username),INDEX idx_email (email)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';-- 修改表结构
ALTER TABLE users 
ADD COLUMN address VARCHAR(200) AFTER phone,
MODIFY COLUMN email VARCHAR(150),
DROP COLUMN age,
RENAME COLUMN username TO name;-- 删除表
DROP TABLE IF EXISTS users;-- 清空表数据
TRUNCATE TABLE users;-- 重命名表
RENAME TABLE users TO customers;

3.3 数据操作

-- 插入数据(多种方式)
INSERT INTO users (username, password, email) 
VALUES ('张三', '123456', 'zhangsan@example.com');INSERT INTO users SET 
username = '李四',
password = '123456',
email = 'lisi@example.com';INSERT INTO users (username, password, email) VALUES 
('王五', '123456', 'wangwu@example.com'),
('赵六', '123456', 'zhaoliu@example.com');-- 更新数据
UPDATE users 
SET password = 'newpassword', email = 'newemail@example.com'
WHERE id = 1;-- 删除数据
DELETE FROM users WHERE id = 1;-- 批量删除
DELETE FROM users WHERE id IN (1, 2, 3);

四、MySQL查询操作

4.1 基础查询

-- 查询所有数据
SELECT * FROM users;-- 条件查询
SELECT * FROM users 
WHERE age > 18 
AND status = 1 
OR email LIKE '%@example.com';-- 排序
SELECT * FROM users 
ORDER BY created_at DESC, id ASC;-- 分组
SELECT gender, COUNT(*) as count 
FROM users 
GROUP BY gender 
HAVING count > 5;-- 分页
SELECT * FROM users 
LIMIT 10 OFFSET 20;-- 去重
SELECT DISTINCT gender FROM users;

4.2 多表查询

-- 内连接(只显示两表都匹配的数据)
SELECT o.order_id, p.name, o.quantity
FROM orders o
INNER JOIN products p ON o.product_id = p.id;-- 左连接(显示左表所有数据,右表没有的显示NULL)
SELECT c.name, o.order_id
FROM customers c
LEFT JOIN orders o ON c.id = o.customer_id;-- 右连接(显示右表所有数据,左表没有的显示NULL)
SELECT o.order_id, p.name
FROM orders o
RIGHT JOIN products p ON o.product_id = p.id;

4.3 高级查询

-- 子查询
SELECT * FROM users 
WHERE id IN (SELECT user_id FROM orders WHERE total_amount > 1000
);-- 相关子查询
SELECT * FROM products p
WHERE price > (SELECT AVG(price) FROM products WHERE category = p.category
);-- 使用EXISTS
SELECT * FROM users u
WHERE EXISTS (SELECT 1 FROM orders o WHERE o.user_id = u.id AND o.status = 'completed'
);-- 使用CASE
SELECT id,username,CASE WHEN age < 18 THEN '未成年'WHEN age < 30 THEN '青年'WHEN age < 50 THEN '中年'ELSE '老年'END as age_group
FROM users;

五、MySQL函数

5.1 字符串函数

-- 字符串连接
SELECT CONCAT('Hello', ' ', 'World');-- 字符串长度
SELECT LENGTH('Hello');-- 字符串截取
SELECT SUBSTRING('Hello World', 1, 5);-- 大小写转换
SELECT UPPER('hello'), LOWER('WORLD');-- 去除空格
SELECT TRIM('  Hello  ');

5.2 数值函数

-- 四舍五入
SELECT ROUND(3.14159, 2);-- 向上取整
SELECT CEILING(3.1);-- 向下取整
SELECT FLOOR(3.9);-- 随机数
SELECT RAND();-- 绝对值
SELECT ABS(-100);

5.3 日期函数

-- 当前日期
SELECT CURDATE();-- 当前时间
SELECT CURTIME();-- 当前日期时间
SELECT NOW();-- 日期加减
SELECT DATE_ADD('2024-01-01', INTERVAL 1 MONTH);-- 日期差
SELECT DATEDIFF('2024-01-01', '2023-12-31');

5.4 聚合函数

-- 统计函数
SELECT COUNT(*) as total_users,AVG(age) as avg_age,MAX(age) as max_age,MIN(age) as min_age,SUM(total_amount) as total_sales
FROM users u
JOIN orders o ON u.id = o.user_id;

六、MySQL约束

6.1 主键约束

-- 单列主键
CREATE TABLE users (id INT PRIMARY KEY,name VARCHAR(50)
);-- 复合主键
CREATE TABLE order_items (order_id INT,product_id INT,quantity INT,PRIMARY KEY (order_id, product_id)
);

6.2 外键约束

-- 创建外键
CREATE TABLE orders (id INT PRIMARY KEY,customer_id INT,FOREIGN KEY (customer_id) REFERENCES customers(id)
);-- 设置级联操作
CREATE TABLE order_items (id INT PRIMARY KEY,order_id INT,FOREIGN KEY (order_id) REFERENCES orders(id) ON DELETE CASCADE
);

6.3 其他约束

-- 非空约束
CREATE TABLE products (id INT PRIMARY KEY,name VARCHAR(100) NOT NULL
);-- 唯一约束
CREATE TABLE users (id INT PRIMARY KEY,email VARCHAR(100) UNIQUE
);-- 默认值
CREATE TABLE orders (id INT PRIMARY KEY,status VARCHAR(20) DEFAULT 'pending'
);-- 检查约束
CREATE TABLE products (id INT PRIMARY KEY,price DECIMAL(10,2) CHECK (price >= 0)
);

七、MySQL高级特性

7.1 视图

-- 创建视图
CREATE VIEW user_orders AS
SELECT u.id,u.username,COUNT(o.id) as order_count,SUM(o.total_amount) as total_spent
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
GROUP BY u.id, u.username;-- 修改视图
ALTER VIEW user_orders AS
SELECT u.id,u.username,COUNT(o.id) as order_count,SUM(o.total_amount) as total_spent,MAX(o.created_at) as last_order_time
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
GROUP BY u.id, u.username;-- 删除视图
DROP VIEW IF EXISTS user_orders;

7.2 存储过程

-- 创建存储过程
DELIMITER //
CREATE PROCEDURE get_user_orders(IN user_id INT)
BEGINSELECT o.id,o.total_amount,o.created_at,COUNT(oi.id) as item_countFROM orders oLEFT JOIN order_items oi ON o.id = oi.order_idWHERE o.user_id = user_idGROUP BY o.id;
END //
DELIMITER ;-- 调用存储过程
CALL get_user_orders(1);-- 删除存储过程
DROP PROCEDURE IF EXISTS get_user_orders;

7.3 触发器

-- 创建触发器
DELIMITER //
CREATE TRIGGER after_order_insert
AFTER INSERT ON orders
FOR EACH ROW
BEGINUPDATE products SET stock = stock - NEW.quantityWHERE id = NEW.product_id;
END //
DELIMITER ;-- 删除触发器
DROP TRIGGER IF EXISTS after_order_insert;

八、MySQL事务

8.1 事务基础

-- 开始事务
START TRANSACTION;-- 执行多个操作
INSERT INTO orders (user_id, total_amount) VALUES (1, 1000);
UPDATE products SET stock = stock - 1 WHERE id = 1;
INSERT INTO order_items (order_id, product_id, quantity) VALUES (1, 1, 1);-- 提交事务
COMMIT;-- 如果出错,回滚事务
ROLLBACK;-- 设置事务隔离级别
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;

8.2 事务特性

  • 原子性(Atomicity)
  • 一致性(Consistency)
  • 隔离性(Isolation)
  • 持久性(Durability)

九、MySQL索引

9.1 索引类型

-- 创建索引
CREATE INDEX idx_email ON users(email);-- 创建唯一索引
CREATE UNIQUE INDEX idx_username ON users(username);-- 创建联合索引
CREATE INDEX idx_name_age ON users(name, age);-- 创建全文索引
CREATE FULLTEXT INDEX idx_content ON articles(content);-- 删除索引
DROP INDEX idx_email ON users;

9.2 索引优化

  • 选择合适的索引列
  • 避免过多索引
  • 使用覆盖索引
  • 定期维护索引

十、MySQL存储引擎

10.1 InnoDB

  • 支持事务和外键
  • 行级锁定
  • 崩溃恢复
  • 适合大多数应用场景

10.2 MyISAM

  • 不支持事务
  • 表级锁定
  • 查询速度快
  • 适合读多写少的场景

10.3 其他存储引擎

  • MEMORY:数据存储在内存中
  • ARCHIVE:适合存储归档数据
  • CSV:以CSV格式存储数据

十一、MySQL性能优化

11.1 查询优化

-- 使用EXPLAIN分析查询
EXPLAIN SELECT * FROM products WHERE price > 1000;-- 使用LIMIT优化分页
SELECT * FROM products LIMIT 10 OFFSET 20;-- 避免SELECT *
SELECT id, name, price FROM products;-- 使用覆盖索引
SELECT id, name FROM products WHERE price > 1000;

11.2 配置优化

# my.cnf 配置文件
[mysqld]
# 缓冲池大小
innodb_buffer_pool_size = 4G# 最大连接数
max_connections = 1000# 查询缓存
query_cache_size = 64M# 临时表大小
tmp_table_size = 64M# 排序缓冲区大小
sort_buffer_size = 4M

十二、MySQL备份恢复

12.1 物理备份

# 完整备份
mysqldump -u root -p --all-databases > backup.sql# 增量备份
mysqlbinlog mysql-bin.000001 > incremental.sql# 压缩备份
mysqldump -u root -p shop | gzip > backup.sql.gz

12.2 逻辑备份

-- 导出表结构
SHOW CREATE TABLE products;-- 导出数据
SELECT * FROM products INTO OUTFILE 'products.csv'
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

12.3 恢复操作

# 恢复完整备份
mysql -u root -p shop < backup.sql# 恢复增量备份
mysql -u root -p shop < incremental.sql# 恢复压缩备份
gunzip < backup.sql.gz | mysql -u root -p shop

十三、MySQL监控

13.1 性能监控

-- 查看当前连接数
SHOW STATUS LIKE 'Threads_connected';-- 查看慢查询
SHOW VARIABLES LIKE '%slow%';-- 查看InnoDB状态
SHOW ENGINE INNODB STATUS;-- 查看表状态
SHOW TABLE STATUS LIKE 'products';

13.2 日志管理

-- 开启慢查询日志
SET GLOBAL slow_query_log = 1;
SET GLOBAL long_query_time = 1;-- 开启错误日志
SET GLOBAL log_error = '/var/log/mysql/error.log';-- 开启二进制日志
SET GLOBAL log_bin = 1;
SET GLOBAL binlog_format = 'ROW';

13.3 性能诊断

-- 查看当前锁等待
SHOW PROCESSLIST;-- 查看表锁等待
SHOW OPEN TABLES WHERE In_use > 0;-- 查看死锁
SHOW ENGINE INNODB STATUS;

十四、MySQL最佳实践

14.1 开发规范

  1. 命名规范

    • 使用有意义的名称
    • 保持命名风格统一
  2. 代码规范

    • 写好注释
    • 保持代码整洁
  3. 测试规范

    • 做好数据备份
    • 测试各种情况

14.2 运维规范

  1. 定期维护

    • 检查数据库状态
    • 清理无用数据
    • 优化表结构
  2. 安全维护

    • 定期更改密码
    • 及时更新补丁
    • 做好访问控制
  3. 性能维护

    • 监控系统资源
    • 优化查询性能
    • 调整配置参数

相关文章:

MySQL基础知识(通俗版)

MySQL基础知识&#xff08;通俗版&#xff09; 一、MySQL基础概念 1.1 MySQL简介 想象MySQL就像一个超级大的Excel表格&#xff0c;但它比Excel更强大&#xff1a; 可以同时处理成千上万的数据可以保证数据的安全性和一致性可以支持多人同时操作可以自动备份和恢复数据 1.…...

python逆向:喜马拉雅登录案例

网址&#xff1a;登录 1. 点击到网页主页 先随便输入电话号码和密码 打开开发者工具&#xff0c;点击网络清空&#xff0c;然后点击登录发起网络请求 &#xff08;出现一个请求包&#xff0c;我们发现不是我们所需要的&#xff09; 我们进行验证滑块&#xff0c;就又出来请求…...

windows AndroidStudio上传maven中央仓库

一、插件地址&#xff1a;https://github.com/vanniktech/gradle-maven-publish-plugin?tabreadme-ov-file 二、Maven中心&#xff1a;https://vanniktech.github.io/gradle-maven-publish-plugin/central/ 2.1、中央门户帐户&#xff0c;用github账号登陆&#xff1a;gh122…...

嵌入式学习(35)-STM32F103 TXE 和TC

在USART的发送端有2个寄存器&#xff0c;一个是程序可以看到的USART_DR寄存器,另一个是程序看不到的移位寄存器,对应USART数据发送有两个标志&#xff0c;一个是TXE发送数据寄存器空&#xff0c;另一个是TC发送结束。 当USART_DR中的数据传送到移位寄存器后&#xff0c;TXE被设…...

linux Gitkraken 破解

ubuntu 安装 Gitkraken 9.x Pro 版本_gitcracken.git-CSDN博客...

Qwen-Agent框架的文件相关操作:从Assistant到BasicDocQA

在前面的几篇文章如《针对Qwen-Agent框架的Function Call及ReAct的源码阅读与解析&#xff1a;Agent基类篇》 、《基于Qwen-Agent框架的Function Call及ReAct方式调用自定义工具》、 《针对Qwen-Agent框架的源码阅读与解析&#xff1a;FnCallAgent与ReActChat篇》中&#xff0c…...

2025年3月15日(5mw)

根据《NREL/TP-500-38060技术报告》&#xff0c;NREL 5-MW参考风力机的各部件质量及总体质量数据如下&#xff1a; 各部件质量数据 叶片&#xff08;Blades&#xff09; 单叶片质量&#xff1a;17,740 kg&#xff08;见表2-2&#xff09;总数&#xff1a;3片总质量&#xff1a;…...

docker mysql 笔记250406

docker mysql 笔记250406 以下是使用 Docker 运行 MySQL 的完整指南&#xff0c;包含常见配置和最佳实践&#xff1a; 1. 快速启动 MySQL 容器 docker run -d \--name mysql_db \-e MYSQL_ROOT_PASSWORDmy-secret-pw \-p 3306:3306 \mysql:8.02. 关键配置说明 2.1 环境变量&…...

ceph集群架构阐述

ceph集群架构阐述 ​ 首先&#xff0c;ceph集群也是分为客户端和服务端的&#xff0c;是一种高效的分布式存储系统&#xff0c;我们将其拆分为这两个部分来进行分析。 ​ 我大致的将服务端分为API类型、逻辑层、OSD层三个层面进行分析&#xff1b;将客户端按三种API类型挂载、…...

《Java八股文の文艺复兴》第十篇:量子永生架构——对象池的混沌边缘

目录 卷首语&#xff1a;蝴蝶振翅引发的量子海啸 第一章&#xff1a;混沌初开——对象池的量子涅槃&#xff08;深度扩展&#xff09; 第二章&#xff1a;混沌计算——对象复活的降维打击&#xff08;技术深化&#xff09; 第三章&#xff1a;量子试炼场——亿万级对象池全…...

(linux操作系统)程序地址空间

程序地址空间是什么&#xff1f; 讲这个问题之前&#xff0c;我们先来看一段熟悉的代码&#xff0c;以前学习C语言或者C语言时&#xff0c;就听说过程序内存分布&#xff0c;堆区&#xff0c;栈区&#xff0c;静态区&#xff0c;常量区&#xff0c;共享区&#xff0c;代码段&am…...

专业抑郁测试工具:让心理健康评估更简单

专业抑郁测试工具&#xff1a;让心理健康评估更简单 在这个快节奏的社会中&#xff0c;心理健康问题越来越受到人们的关注。为了帮助大家更好地了解自己的心理状态&#xff0c;我们开发了一款专业的在线抑郁测试工具。这个工具基于科学的心理量表设计&#xff0c;为用户提供准…...

C语言中单向链表:创建节点与插入新节点

一. 简介 单链表是一种常见且基础的数据结构&#xff0c;由一系列节点组成&#xff0c;每个节点包含数据和一个指向下一个节点的指针。 本文简单学习一下C语言中如何实现单项链表。 二. C语言实现单向链表 单向链表&#xff1a;单向链表是一种线性数据结构&#xff0c;由一…...

jsoncpp的使用

json提供的几个类&#xff1a; Value类&#xff1a;将json支持的数据类型进行包装&#xff0c;最终得到一个Value类型 FastWriter类&#xff1a;将Value对象中的数据序列化为字符串&#xff0c;序列化后可以得到json格式的字符串 Reader类&#xff1a;反序列化&#xff0c;将…...

【最新版】啦啦外卖v64系统独立版源码+全部小程序APP端+安装教程

一.系统介绍 啦啦外卖跑腿平台独立版&#xff0c;使用的都知道该系统功能非常强大&#xff0c;应该说是目前外卖平台功能最全的一套系统。主要是功能非常多&#xff0c;拿来即用&#xff0c;包括客户端小程序、配送端小程序、商户端小程序&#xff0c;还有对应四个端的APP源码…...

13-产品经理-产品多分支平台管理

禅道16.0版本开始&#xff0c;优化和增强了产品的分支/平台功能&#xff0c;主要特点如下&#xff1a; 多分支/平台功能兼容各种大小型项目&#xff0c;项目/迭代可以关联对应产品的某个分支/平台。分支/平台支持灵活管理&#xff0c;可以把分支/平台理解为时间层面的概念&…...

AI在医疗领域的应用

人工智能对医疗领域的革命性影响 一、智能诊断系统的突破 病理识别准确率提升乳腺癌检测准确率达94.6%(2023《Nature Medicine》)皮肤癌诊断灵敏度超过专业医师12%多模态诊断整合融合CT/MRI影像+基因组数据+电子病历急性肾损伤预测提前48小时(DeepMind)二、药物研发范式革…...

LabVIEW 在故障诊断中的算法

在故障诊断领域&#xff0c;LabVIEW 凭借其强大的图形化编程能力、丰富多样的工具包以及卓越的功能性能&#xff0c;成为工程师们进行故障诊断系统开发的得力助手。通过运用各种算法&#xff0c;能够对采集到的信号进行全面、深入的分析处理&#xff0c;从而准确地诊断出系统中…...

(自用)WebSocket创建流程

在Spring Boot项目中新建WebSocket服务&#xff0c;可以按照以下详细步骤进行操作&#xff1a; 1.创建Spring Boot项目 可以通过Spring Initializr&#xff08;<>&#xff09;快速创建一个新的Spring Boot项目&#xff0c;添加Spring Web和Spring Boot DevTools依赖&…...

C++多线程编码二

1.lock和try_lock lock是一个函数模板&#xff0c;可以支持多个锁对象同时锁定同一个&#xff0c;如果其中一个锁对象没有锁住&#xff0c;lock函数会把已经锁定的对象解锁并进入阻塞&#xff0c;直到多个锁锁定一个对象。 try_lock也是一个函数模板&#xff0c;尝试对多个锁…...

【最新版】金媒婚恋系统v10.5最新稳定开源+原生前端小程序 PC端+安装教程

一.系统简介 1. 红娘服务 红娘服务模块是该系统的一大特色。专业红娘会通过分析用户的个人资料和偏好&#xff0c; 为用户提供精准的配对建议和个性化服务。用户可以预约红娘服务&#xff0c;通过红娘的介入&#xff0c;提升配对成功率。 2. 相亲活动 相亲活动模块用于组织和管…...

[spring] spring AOP - 面向切面编程の学习

[spring] spring AOP - 面向切面编程の学习 几年前开始还在被 spring 的八股文时&#xff0c;AOP 就是一个比较热也比较大的点&#xff0c;为了面试确实背过不少&#xff0c;不过 AOP 实现本身做的不多&#xff0c;一方面也是因为 AOP 一旦配置好了基本上就不需要改什么&#…...

JavaScript 中的 Reflect 详解

Reflect 是 ES6引入的一个内置对象&#xff0c;它提供了一系列静态方法来操作对象&#xff0c;这些方法与 Proxy 处理器方法一一对应。Reflect 的设计目的是为了更优雅地操作对象&#xff0c;并统一某些操作的行为。 1. Reflect 的基本特点 1. 不是构造函数&#xff1a;不能使…...

【操作系统】linux常用命令

UP作为一个Linux系统练习两年半的个人练习生&#xff0c;今天分门别类地给大家整理一下常用的Linux命令&#xff0c;祝大家在Linux练习之路一帆风顺。 文件和目录操作 文件查看与编辑 文件查找 文件权限与所有权 进程管理 系统信息与监控 网络管理与诊断...

002 vue组件化编程

文章目录 一般方式全局组件局部组件 组件&#xff08;Component&#xff09;是Vue.js最强大的功能之一 组件也是一个Vue实例&#xff0c;也包括&#xff1a;data、methods、生命周期函数等 组件渲染需要html模板&#xff0c;所以增加了template属性&#xff0c;值就是HTML模板 …...

常见的 JavaScript 框架和库

在现代前端开发中&#xff0c;JavaScript框架和库成为了构建高效、可维护应用程序的关键工具。本文将介绍四个常见的JavaScript框架和库&#xff1a;React、Vue.js、Angular 和 Node.js&#xff0c;并探讨它们的特点、使用场景及适用场合。 1. React — 构建用户界面的JavaScri…...

005_循环结构

循环结构 循环结构的作用和应用场景for循环while循环for和while的使用规范do - while 死循环循环嵌套break、continueRandom生成随机数 循环结构的作用和应用场景 减少代码的重复编写、灵活的控制程序的执行 for循环 for (1初始化语句; 2循环条件; 3迭代语句){4循环体语句(重…...

1110+款专业网站应用程序UI界面设计矢量图标figma格式素材 Icon System | 1,100+ Icons Easily Customize

1110款专业网站应用程序UI界面设计矢量图标figma格式素材 Icon System | 1,100 Icons Easily Customize 产品特点 — 24 x 24 px 网格大小 — 2px 线条描边 — 所有形状都是基于矢量的 — 平滑和圆角 — 易于更改颜色 类别 &#x1f6a8; 警报和反馈 ⬆️ 箭头 &…...

leetcode 368. 最大整除子集 中等

给你一个由 无重复 正整数组成的集合 nums &#xff0c;请你找出并返回其中最大的整除子集 answer &#xff0c;子集中每一元素对 (answer[i], answer[j]) 都应当满足&#xff1a; answer[i] % answer[j] 0 &#xff0c;或answer[j] % answer[i] 0 如果存在多个有效解子集&…...

项目总结之常问的一些问题

1.项目功能介绍&#xff0c;重难点 重难点&#xff1a; mock工具使用&#xff08;涉及到的三方接口过多&#xff0c;由于网络等原因无法调通&#xff0c;所以测试的时候&#xff0c;采用mock工具来模拟返回接口真正调用后响应数据&#xff09; 2.项目负责哪部分&#xff1f;…...

51单片机实现精确定时

一、51单片机代码 #include <reg52.h>sbit LED P3^3;extern bit b10Ms; extern bit b100Ms; extern bit b1S; extern bit b10S;void Timer0_Init() {TMOD | 0x01; // 设置定时器0为模式1TH0 (65536 - 1000) / 256; // 高8位赋初值TL0 (65536 - 1000) % 256; // 低8位…...

记一次不太顺利的Docker重装

#记录工作 一、前言 默认情况下&#xff0c;Windows系统上Docker Desktop 安装在 &#xff1a;C:\Program Files\Docker\Docker&#xff1b; 目前正常下载能下载到最新版本是到v4.39.0&#xff0c;实际已经能找到v4.40.0版本来进行修复安装&#xff1b; 建议尽量不要改变Doc…...

【计网】TCP 协议详解 与 常见面试题

三次握手、四次挥手的常见面试题 不用死记&#xff0c;只需要清楚三次握手&#xff0c;四次挥手的流程&#xff0c;回答的时候心里要记住&#xff0c;假设网络是不可靠的 问题(1)&#xff1a;为什么关闭连接时需要四次挥手&#xff0c;而建立连接却只要三次握手&#xff1f; 关…...

Docker介绍

Docker介绍 Docker 本身并不是容器&#xff0c;而是一个使用容器的工具。容器是 Linux 内核提供的技术&#xff0c;Docker 只是将这种技术的使用简便化了。Docker 的主要目标是 “Build,Ship and Run Any APP,Anywhere”&#xff08;“一次封装&#xff0c;到处运行”&#xf…...

大模型推理--Qwen2.5-Omni在A100上的初体验

过去的一周Qwen2.5-Omni产生了很高的热度&#xff0c;吸引了很多人的目光。它的多模态确实很吸引人&#xff0c;放出来的demo体验还算尚可&#xff08;语音对话的延迟还是太大&#xff09;&#xff0c;所以就在A100 PCIe上实地部署了一下&#xff0c;初步对其速度进行了测试&am…...

二分查找例题

本篇基于b站灵茶山艾府。 34. 在排序数组中查找元素的第一个和最后一个位置 给你一个按照非递减顺序排列的整数数组 nums&#xff0c;和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target&#xff0c;返回 [-1, -1]。 你…...

新增一种线性回归的增量学习框架,已更新31个模型!Matlab回归预测大合集又更新啦!

目录 效果图基本介绍程序设计参考资料 效果图 基本介绍 一种线性回归的增量学习框架&#xff0c;程序研究的主要内容是线性回归模型的增量学习实现及其在房价预测中的应用&#xff0c;旨在通过分块处理数据逐步更新模型&#xff0c;以适应动态数据环境并减少计算资源消耗。 详…...

P1025 [NOIP 2001 提高组] 数的划分(DFS)

题目描述 将整数 n 分成 k 份&#xff0c;且每份不能为空&#xff0c;任意两个方案不相同&#xff08;不考虑顺序&#xff09;。 例如&#xff1a;n7&#xff0c;k3&#xff0c;下面三种分法被认为是相同的。 1,1,5; 1,5,1; 5,1,1. 问有多少种不同的分法。 输入格式 n,k …...

SQL Server存储过程和触发器的使用

存储过程 &#xff08;1&#xff09;创建存储过程&#xff0c;使用Employees表中的员工人数来初始化一个局部变量&#xff0c;并调用这个存储过程。 1. Create PROCEDURE test number1 int output --输出参数&#xff0c;可以从程序中返回信息 2. As 3. begin 4. D…...

Elastic 的 OpenTelemetry 分发版(EDOT)现已正式发布:开源、可用于生产环境的 OTel

作者&#xff1a;来自 Elastic Miguel Luna 及 Bahubali Shetti Elastic 自豪地宣布正式发布 Elastic OpenTelemetry 分发版&#xff08;Elastic Distributions of OpenTelemetry - EDOT&#xff09;&#xff0c;其中包含 Elastic 自定义版本的 OpenTelemetry Collector 以及多…...

springMVC-Json交互处理

什么是JSON JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式&#xff0c;目前使用特别广泛。 采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写&#xff0c;同时也…...

MySQL中的索引

explain关键字&#xff0c; MySQL索引特性 索引的概念 MySQL 索引是一种用于提高数据库查询效率的数据结构 数据库表中存储的数据都是以记录为单位的&#xff0c;如果在查询数据时直接一条条遍历表中的数据记录&#xff0c;那么查询的时间复杂度将会是 O ( N )。索引的价值在…...

AI小白:JavaPython开发环境双轨制搭建指南

文章目录 1 Python深度学习环境配置1.1 Anaconda生态体系建设1.2 JupyterLab高效工作流魔法命令与可视化调试扩展插件配置指南 2 Java深度学习方案&#xff1a;DL4J实战2.1 企业级部署架构设计2.2 集成传统Java系统Spring Boot微服务封装模型性能优化技巧 1 Python深度学习环境…...

《比特城的机密邮件:加密、签名与防篡改的守护之战》

点击下面图片带您领略全新的嵌入式学习路线 &#x1f525;爆款热榜 88万阅读 1.6万收藏 第一章&#xff1a;风暴前的密令 比特城的议会大厅内&#xff0c;首席长老艾德文握着一卷足有半人高的羊皮纸&#xff0c;眉头紧锁。纸上是即将颁布的《新纪元法典》——这份文件不仅内…...

Redis之布隆过滤器

面试场景切入 针对于电话号码问题的痛点 布隆过滤器是什么&#xff1f; 由一个初值都为0的bit数组和多个哈希函数构成&#xff0c;用来快速判断集合中是否存在某个元素。 设计思想 本质就是判断具体数据是否存在于一个大的集合中。布隆过滤器是一种类似Set的数据结构&#…...

这是一份简单优雅的Prompt Engineering教程

Prompt Engineering&#xff08;提示工程&#xff09;是通过精心设计输入文本&#xff08;prompt&#xff09;来引导大型语言模型&#xff08;LLM&#xff09;生成更准确、相关且符合预期的输出的技术。其核心在于通过调整提问的措辞、结构、上下文和附加信息&#xff0c;优化模…...

Java基础 4.6

1.成员方法练习 //编写类A&#xff1a;判断一个数是奇数还是偶数&#xff0c;返回boolean //根据行、列、字符打印对应行数和列数的字符&#xff0c;比如&#xff1a;行4 列4 字符# 则打印相应的效果 public class MethodExercise01 {public static void main(String[] args) …...

DApp实战篇:前端技术栈一览

前言 在前面一系列内容中&#xff0c;我们由浅入深地了解了DApp的组成&#xff0c;从本小节开始我将带领大家如何完成一个完整的DApp。 本小节则先从前端开始。 前端技术栈 在前端开发者速入&#xff1a;DApp中的前端要干些什么&#xff1f;文中我说过&#xff0c;即便是在…...

C++中如何比较两个字符串的大小--compare()函数实现

一、现在有一个问题描述&#xff1a;有两个字符串&#xff0c;要按照字典顺序比较它们的大小&#xff08;注意所有的小写字母都大于所有的大写字母 &#xff09;。 二、代码 #include <bits/stdc.h> using namespace std;int main() {string str1 "apple";…...

c++中的auto关键字

在 C 中&#xff0c;auto 是一个类型推断关键字&#xff08;C11 引入&#xff09;&#xff0c;允许编译器根据变量的初始化表达式自动推导其类型。它极大地简化了代码编写&#xff0c;尤其在涉及复杂类型或模板的场景中。以下是 auto 的详细说明&#xff1a; 1. 基本用法 1.1 …...