【面试系列】SQL 高频面试题

news2024/7/4 13:41:26

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏:

⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题.
⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、应用领域等内容。
⭐️ 全流程数据技术实战指南:全面讲解从数据采集到数据可视化的整个过程,掌握构建现代化数据平台和数据仓库的核心技术和方法。

文章目录

    • SQL 初级面试题及其详细解答
      • 1. 什么是 SQL?简要解释其用途。
      • 2. 如何创建一个新的数据库?
      • 3. 如何创建一个包含三个字段(id、name、age)的表?
      • 4. 如何插入一条记录到上面的表中?
      • 5. 如何查询表中的所有记录?
      • 6. 如何更新表中的某条记录?
      • 7. 如何删除表中的某条记录?
      • 8. 什么是主键?它有什么作用?
      • 9. 如何添加一个名为 `email` 的新列到现有的表中?
      • 10. 如何创建一个包含外键的表?
    • SQL 中级面试题及其详细解答
      • 1. 解释 SQL 连接的类型,并提供示例查询。
      • 2. 什么是索引?如何创建索引?
      • 3. 解释视图的概念,并说明如何创建视图。
      • 4. 如何使用子查询?
      • 5. 如何使用聚合函数(如 COUNT、SUM、AVG、MAX、MIN)?
      • 6. 什么是事务?如何在 MySQL 中使用事务?
      • 7. 如何使用 `GROUP BY` 和 `HAVING` 子句?
      • 8. 如何使用联合(UNION)操作符?
      • 9. 如何在 MySQL 中执行复杂的联表查询?
      • 10. 如何优化 SQL 查询性能?
    • SQL 高级面试题及详细解答
      • 1. 什么是窗口函数(Window Functions)?如何在 SQL 中使用窗口函数?
      • 2. 如何使用递归查询(Recursive Query)?
      • 3. 如何处理日期和时间数据类型的操作?
      • 4. 如何优化复杂查询的性能?
      • 5. 如何处理大数据量的导入和导出?
      • 6. 什么是索引覆盖(Index Coverage)?如何利用索引覆盖优化查询?
      • 7. 如何处理并发和事务一致性?
      • 8. 如何在复杂条件下进行数据过滤和分组?
      • 9. 如何处理空值和重复数据?
      • 10. 如何实现数据库的备份和恢复?
    • 总结
      • 1. 基本 SQL 查询和操作
      • 2. 数据类型和约束
      • 3. 查询优化和性能调优
      • 4. 数据库设计和规范化
      • 5. 高级查询技术
      • 6. 事务管理和并发控制
      • 7. 视图、存储过程和触发器
      • 8. 数据库备份、恢复和安全性
      • 9. SQL 标准和特定数据库系统的差异
      • 10. 错误处理和调试技巧

SQL 初级面试题及其详细解答

1. 什么是 SQL?简要解释其用途。

解答
SQL(结构化查询语言)是一种用于管理和操作关系数据库的标准语言。它用于执行查询、更新、插入、删除和其他数据库操作,帮助用户从数据库中检索所需的数据、定义和修改数据库结构。

2. 如何创建一个新的数据库?

解答
可以使用 CREATE DATABASE 语句来创建一个新的数据库。下面是一个创建名为 mydatabase 的数据库的示例:

CREATE DATABASE mydatabase;

3. 如何创建一个包含三个字段(id、name、age)的表?

解答
可以使用 CREATE TABLE 语句创建一个表。下面是创建名为 persons 的表的示例:

CREATE TABLE persons (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    age INT
);

4. 如何插入一条记录到上面的表中?

解答
使用 INSERT INTO 语句插入记录。下面是插入一条记录的示例:

INSERT INTO persons (name, age) VALUES ('Alice', 30);

5. 如何查询表中的所有记录?

解答
使用 SELECT 语句查询所有记录。下面是查询 persons 表中所有记录的示例:

SELECT * FROM persons;

6. 如何更新表中的某条记录?

解答
使用 UPDATE 语句更新记录。下面是将 persons 表中 id 为 1 的记录的 age 更新为 31 的示例:

UPDATE persons SET age = 31 WHERE id = 1;

7. 如何删除表中的某条记录?

解答
使用 DELETE 语句删除记录。下面是删除 persons 表中 id 为 1 的记录的示例:

DELETE FROM persons WHERE id = 1;

8. 什么是主键?它有什么作用?

解答
主键(Primary Key)是表中一列或多列的组合,其值唯一标识表中的每一行记录。主键不允许 NULL 值,确保每条记录的唯一性和完整性。

9. 如何添加一个名为 email 的新列到现有的表中?

解答
使用 ALTER TABLE 语句添加新列。下面是向 persons 表中添加 email 列的示例:

ALTER TABLE persons ADD email VARCHAR(100);

10. 如何创建一个包含外键的表?

解答
使用 FOREIGN KEY 关键字创建包含外键的表。下面是一个示例,其中 orders 表包含一个引用 personsid 的外键:

CREATE TABLE orders (
    order_id INT AUTO_INCREMENT PRIMARY KEY,
    order_date DATE,
    person_id INT,
    FOREIGN KEY (person_id) REFERENCES persons(id)
);

SQL 中级面试题及其详细解答

1. 解释 SQL 连接的类型,并提供示例查询。

解答
SQL 支持多种连接类型,包括 INNER JOIN、LEFT JOIN、RIGHT JOIN 和 FULL JOIN。每种连接类型用于不同的目的:

  • INNER JOIN:仅返回两个表中匹配的记录。
  • LEFT JOIN:返回左表中的所有记录,以及右表中匹配的记录。
  • RIGHT JOIN:返回右表中的所有记录,以及左表中匹配的记录。
  • FULL JOIN:返回两个表中所有匹配和不匹配的记录。

示例查询:

-- INNER JOIN 示例
SELECT a.id, a.name, b.order_id
FROM persons a
INNER JOIN orders b ON a.id = b.person_id;

-- LEFT JOIN 示例
SELECT a.id, a.name, b.order_id
FROM persons a
LEFT JOIN orders b ON a.id = b.person_id;

-- RIGHT JOIN 示例
SELECT a.id, a.name, b.order_id
FROM persons a
RIGHT JOIN orders b ON a.id = b.person_id;

-- FULL JOIN 示例(MySQL 不直接支持 FULL JOIN,可以通过 UNION 实现)
SELECT a.id, a.name, b.order_id
FROM persons a
LEFT JOIN orders b ON a.id = b.person_id
UNION
SELECT a.id, a.name, b.order_id
FROM persons a
RIGHT JOIN orders b ON a.id = b.person_id;

2. 什么是索引?如何创建索引?

解答
索引是数据库对象,用于加速数据的检索。索引用于快速查找表中的记录,类似于书的索引,可以显著提高查询性能。

创建索引的示例:

-- 创建单列索引
CREATE INDEX idx_name ON persons(name);

-- 创建复合索引
CREATE INDEX idx_name_age ON persons(name, age);

3. 解释视图的概念,并说明如何创建视图。

解答
视图是基于 SQL 查询结果的虚拟表。视图提供了一种抽象数据库结构的方法,可以简化复杂查询、提高安全性和提高可读性。

创建视图的示例:

CREATE VIEW person_orders AS
SELECT a.id, a.name, b.order_id, b.order_date
FROM persons a
INNER JOIN orders b ON a.id = b.person_id;

4. 如何使用子查询?

解答
子查询是在另一个 SQL 查询中嵌套的查询,可以用于多种目的,如在 SELECTFROMWHERE 子句中使用。

示例:

-- 查询平均年龄大于所有人的年龄的记录
SELECT name, age
FROM persons
WHERE age > (SELECT AVG(age) FROM persons);

5. 如何使用聚合函数(如 COUNT、SUM、AVG、MAX、MIN)?

解答
聚合函数用于执行计算,如计数、求和、平均、最大和最小值。它们通常与 GROUP BY 子句结合使用。

示例:

SELECT COUNT(*), SUM(age), AVG(age), MAX(age), MIN(age)
FROM persons;

6. 什么是事务?如何在 MySQL 中使用事务?

解答
事务是一个或多个 SQL 语句的集合,这些语句作为一个单元执行。事务具有四个特性(ACID):原子性、一致性、隔离性和持久性。

在 MySQL 中使用事务的示例:

START TRANSACTION;

-- 操作1
UPDATE accounts SET balance = balance - 100 WHERE id = 1;

-- 操作2
UPDATE accounts SET balance = balance + 100 WHERE id = 2;

-- 提交事务
COMMIT;

-- 如果出现错误,可以回滚事务
-- ROLLBACK;

7. 如何使用 GROUP BYHAVING 子句?

解答
GROUP BY 子句用于将结果集按一个或多个列进行分组。HAVING 子句用于过滤分组后的结果集。

示例:

-- 按年龄分组并计算每个年龄的数量,过滤数量大于1的组
SELECT age, COUNT(*)
FROM persons
GROUP BY age
HAVING COUNT(*) > 1;

8. 如何使用联合(UNION)操作符?

解答
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。要求每个 SELECT 语句的列数和数据类型相同。

示例:

SELECT name, age FROM persons WHERE age < 30
UNION
SELECT name, age FROM employees WHERE age < 30;

9. 如何在 MySQL 中执行复杂的联表查询?

解答
复杂的联表查询可以通过多次连接和子查询实现。下面是一个示例,展示如何查询包含订单总金额的每个人的信息:

SELECT a.id, a.name, SUM(b.amount) as total_amount
FROM persons a
INNER JOIN orders b ON a.id = b.person_id
GROUP BY a.id, a.name;

10. 如何优化 SQL 查询性能?

解答
优化 SQL 查询性能的方法包括:

  • 使用索引加速数据检索。
  • 避免在索引列上使用函数。
  • 使用适当的连接类型。
  • 减少子查询,使用连接代替。
  • 定期维护和更新统计信息。

示例:

-- 确保查询使用索引
SELECT name FROM persons WHERE age > 30;

-- 使用连接代替子查询
SELECT a.name
FROM persons a
INNER JOIN orders b ON a.id = b.person_id
WHERE b.amount > 100;

SQL 高级面试题及详细解答

1. 什么是窗口函数(Window Functions)?如何在 SQL 中使用窗口函数?

解答
窗口函数是一种高级 SQL 技术,用于在查询结果集内执行聚合、排序和分析操作,而不会影响查询结果集的行数。它们通常与 OVER 子句结合使用,支持排名、分区计算等复杂分析。

示例:

SELECT 
    name,
    age,
    SUM(age) OVER (PARTITION BY department_id ORDER BY age) AS age_sum_per_department
FROM employees;

2. 如何使用递归查询(Recursive Query)?

解答
递归查询允许在单个查询中迭代查询自身,通常用于处理层次数据结构(如组织结构或评论回复)。在 MySQL 中,使用 WITH RECURSIVE 关键字实现递归查询。

示例:

WITH RECURSIVE cte AS (
    SELECT id, name, manager_id
    FROM employees
    WHERE id = 1
    UNION ALL
    SELECT e.id, e.name, e.manager_id
    FROM employees e
    JOIN cte ON e.manager_id = cte.id
)
SELECT * FROM cte;

3. 如何处理日期和时间数据类型的操作?

解答
SQL 提供了许多函数和操作符来处理日期和时间数据类型,如 DATE, TIME, DATETIME, TIMESTAMP。常见操作包括日期计算、格式化、时区转换等。

示例:

-- 计算两个日期之间的天数差
SELECT DATEDIFF('2024-06-30', '2024-01-01');

-- 提取日期部分
SELECT DATE_FORMAT('2024-06-30', '%Y-%m-%d');

-- 转换时区
SELECT CONVERT_TZ('2024-06-30 12:00:00', '+00:00', '+08:00');

4. 如何优化复杂查询的性能?

解答
优化复杂查询的性能可以通过以下几种方式:

  • 使用索引来加速查询。
  • 避免在 WHERE 子句中使用函数,以允许索引的使用。
  • 分析和优化查询计划,确保最佳执行路径。
  • 使用合适的连接类型(如 INNER JOINLEFT JOIN)以减少不必要的计算。
  • 定期更新统计信息以帮助优化器做出更好的执行计划决策。

5. 如何处理大数据量的导入和导出?

解答
处理大数据量的导入和导出可以使用 SQL 中的 LOAD DATA INFILESELECT INTO OUTFILE 命令。这些命令允许快速、批量地将数据加载到数据库中或从数据库导出。

示例:

-- 从文件导入数据到表
LOAD DATA INFILE '/path/to/data.csv' INTO TABLE mytable FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

-- 将查询结果导出到文件
SELECT * INTO OUTFILE '/path/to/result.txt' FROM mytable;

6. 什么是索引覆盖(Index Coverage)?如何利用索引覆盖优化查询?

解答
索引覆盖是指查询可以完全通过索引返回所需的数据,而无需访问表中的实际行。这可以显著提高查询性能,因为它减少了从磁盘读取数据的需要。

示例:

-- 创建包含多列的复合索引
CREATE INDEX idx_name_age ON persons(name, age);

-- 查询利用索引覆盖
SELECT name, age FROM persons WHERE name = 'Alice' AND age > 30;

7. 如何处理并发和事务一致性?

解答
并发控制和事务一致性是关系数据库管理系统(RDBMS)中非常重要的主题。可以使用事务和锁来确保数据的一致性和可靠性,以避免并发访问时的问题。

示例:

START TRANSACTION;

-- 执行多个操作

COMMIT; -- 提交事务

-- 或者
ROLLBACK; -- 回滚事务

8. 如何在复杂条件下进行数据过滤和分组?

解答
复杂条件下的数据过滤和分组可以通过 CASE 表达式和子查询等方式实现。CASE 表达式可以根据条件返回不同的值,而子查询则可以将结果作为临时表进行进一步处理。

示例:

-- 使用 CASE 表达式进行条件过滤
SELECT id, name,
    CASE
        WHEN age < 30 THEN 'Young'
        WHEN age >= 30 AND age < 50 THEN 'Middle-aged'
        ELSE 'Senior'
    END AS age_group
FROM persons;

-- 使用子查询进行进一步处理
SELECT age_group, COUNT(*)
FROM (
    SELECT id, name,
        CASE
            WHEN age < 30 THEN 'Young'
            WHEN age >= 30 AND age < 50 THEN 'Middle-aged'
            ELSE 'Senior'
        END AS age_group
    FROM persons
) AS age_groups
GROUP BY age_group;

9. 如何处理空值和重复数据?

解答
处理空值可以使用 NULL 值处理函数(如 IFNULL()COALESCE())来替换空值,或者使用 IS NULLIS NOT NULL 运算符进行条件判断。处理重复数据可以使用 DISTINCT 关键字删除重复行。

示例:

-- 替换空值
SELECT id, name, IFNULL(email, 'N/A') AS email
FROM persons;

-- 删除重复行
SELECT DISTINCT name, age
FROM persons;

10. 如何实现数据库的备份和恢复?

解答
数据库的备份和恢复可以使用 SQL 中的 mysqldump 工具进行导出和导入。此外,可以定期执行数据库的全量备份和增量备份,以确保数据的安全性和可靠性。

示例:

# 备份数据库
mysqldump -u username -p dbname > backup.sql

# 恢复数据库
mysql -u username -p dbname < backup.sql

总结

在 SQL 面试中,候选人需要掌握多个关键知识点和技能,这些知识点涵盖了从基础到高级的各个方面。以下是面试中需要掌握的主要知识点:

1. 基本 SQL 查询和操作

  • SELECT 语句:理解如何使用 SELECT 查询表中的数据,并掌握 DISTINCTWHEREORDER BY 等子句的使用。
  • INSERT、UPDATE、DELETE 语句:了解如何插入、更新和删除表中的数据,掌握如何编写安全有效的数据操作语句。
  • 创建表:使用 CREATE TABLE 语句创建新表,定义表的结构、字段和约束。
  • ALTER 和 DROP TABLE:掌握如何修改和删除表的结构。

2. 数据类型和约束

  • 常见数据类型:如整数、浮点数、字符型、日期时间型等,了解每种数据类型的存储需求和适用场景。
  • 约束:掌握主键、外键、唯一约束、默认值约束、非空约束等的定义和使用,确保数据完整性和一致性。

3. 查询优化和性能调优

  • 索引:理解什么是索引及其工作原理,掌握如何创建、管理和使用索引以提高查询性能。
  • 查询计划分析:了解数据库系统如何执行查询,如何分析查询计划以优化查询效率。
  • 使用 EXPLAIN:掌握如何使用 EXPLAIN 分析查询执行计划,识别潜在的性能瓶颈和优化机会。

4. 数据库设计和规范化

  • 范式和反范式:理解数据库规范化的概念,掌握各个范式的要求和适用场景。
  • 关系图设计:能够设计关系图模型,包括实体、属性、关系和基本规范化步骤。

5. 高级查询技术

  • 子查询:了解如何使用子查询解决复杂查询需求,如在 SELECTFROMWHERE 子句中嵌套使用子查询。
  • 窗口函数:掌握窗口函数的概念和语法,如 OVER 子句的使用,用于执行排名、分析和聚合。
  • 递归查询:了解如何使用递归查询处理层次结构数据,掌握 WITH RECURSIVE 的语法和应用场景。

6. 事务管理和并发控制

  • 事务的 ACID 特性:理解事务的原子性、一致性、隔离性和持久性,如何确保数据的完整性和并发性。
  • 并发控制:了解如何处理并发访问的数据一致性问题,如使用锁、事务隔离级别和乐观锁等技术。

7. 视图、存储过程和触发器

  • 视图:理解视图的概念和作用,如何创建、更新和使用视图简化复杂查询。
  • 存储过程:掌握如何编写和调用存储过程,处理复杂业务逻辑和数据操作。
  • 触发器:了解触发器的作用和使用场景,如何定义触发器以响应表上的数据变更事件。

8. 数据库备份、恢复和安全性

  • 数据备份和恢复:了解如何执行数据库的完全备份和增量备份,确保数据的安全性和可靠性。
  • 数据库安全性:掌握如何管理数据库用户权限、角色和访问控制,确保数据库的安全性和隐私保护。

9. SQL 标准和特定数据库系统的差异

  • SQL 标准:了解 SQL 的标准语法和功能,以及不同数据库系统对标准的扩展和支持。
  • 特定数据库系统:熟悉至少一种主流数据库系统(如 MySQL、PostgreSQL、Oracle、SQL Server)的特性和优化技巧。

10. 错误处理和调试技巧

  • SQL 错误处理:理解如何捕获和处理 SQL 执行过程中的错误和异常情况。
  • 调试技巧:掌握如何使用日志和调试工具分析和解决 SQL 查询和性能问题。

综上所述,SQL 面试涵盖了从基础到高级的广泛知识领域,候选人需要具备良好的理论基础和实际操作经验,以及解决复杂问题的能力。熟练掌握以上知识点可以有效提升在 SQL 面试中的竞争力和表现。


💗💗💗 如果觉得这篇文对您有帮助,请给个点赞、关注、收藏吧,谢谢!💗💗💗

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

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

相关文章

力扣每日一题 7/2 数学、数论、数组/双指针

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 3115.质数的最大距离【中等】 题目&#xff1a; 给你一个整数数组 nums。…

视频字幕提取在线工具有哪些?总结5个字幕提取工具

平时在沉浸式追剧的时候&#xff0c;我们常常都会被影视剧中的各种金句爆梗而逗得开怀大笑~而真正要用到时候却总是一片头脑空白。其实要记住它们最好的办法便是将其提取留档下来&#xff0c;每次有需要的时候打开就能一下子回顾到~ 今天就来带大家盘一盘视频字幕提取的软件好…

[C++]——同步异步日志系统(1)

同步异步日志系统 一、项⽬介绍二、开发环境三、核心技术四、环境搭建五、日志系统介绍5.1 为什么需要日志系统5.2 日志系统技术实现5.2.1 同步写日志5.2.2 异步写日志 日志系统&#xff1a; 日志&#xff1a;程序在运行过程中&#xff0c;用来记录程序运行状态信息。 作用&…

图片转pdf,图片转pdf在线转换,在线图片转pdf,图片转pdf格式怎么弄

在数字化时代&#xff0c;图片和PDF文件成为了我们日常生活中不可或缺的元素。有时候&#xff0c;我们需要将图片转换成PDF格式以便更好地分享、存储或打印。那么&#xff0c;图片格式怎么转换成PDF呢&#xff1f;本文将为您详细介绍简单实用的转换方法。 方法一、使用pdf转换软…

Python容器 之 字典--字典的常用操作方法

1.增加和修改 字典[键] 值 键 存在, 修改 键 不存在, 添加 # 定义非空字典, 姓名, 年龄, 身高, 性别 my_dict {"name": "小明", "age": 18, "height": 1.78, "isMen": True} print(my_dict) # {name: 小明, age: 18, h…

【知识】DGL中graph默认的稀疏矩阵格式和coo格式不对的坑

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 先给结论 源码解读 代码验证 网上没找到相关的讨论&#xff0c;因此只能从源码上一步步查。 先给结论 对于自己使用dgl.graph接口创建的图&am…

【HTML入门】列表与表格

文章目录 前言一、列表与表格是什么&#xff1f;列表表格 二、使用标签列表标签表格标签 三、组合情况列表的组合表格的组合 四、示例代码总结 好的&#xff0c;以下是一个关于HTML列表与表格的文章示例&#xff1a; 前言 随着网页开发的普及&#xff0c;HTML成为了构建网页的…

LVS FILTER UNUSED OPTION

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 过滤一些版图与spice网表对不上的器件。 一般后端遇不到这个问题,因为通常是需要写到网表中的decap没有写出来造成的,如下图。

来不及啦!怎样找回删除的照片,2个解决方案【安卓通用】

一不小心手滑&#xff0c;手机里那些珍贵的照片竟然全都被删了&#xff01;现在心急如焚&#xff0c;怎样找回删除的照片呢&#xff1f;别担心&#xff0c;小编我这就为你带来2个快速有效的解决方案&#xff0c;让你在分分钟找回那些失去的照片&#xff01;快来学习一下吧&…

Java语法系列 小白入门参考资料 方法

方法的概念及使用 方法概念 方法出现的原因 在编程中&#xff0c;某段功能的代码可能频繁使用到&#xff0c;如果在每个位置都重新实现一遍&#xff0c;会&#xff1a; 1. 使程序变得繁琐 2. 开发效率低下&#xff0c;做了大量重复性的工作 3. 不利于维护&#xff0c;需要…

自动驾驶水泥搅拌车在梁场的应用(下)

自动驾驶水泥搅拌车在梁场的应用&#xff08;下&#xff09; 北京渡众机器人科技有限公司的自动驾驶水泥搅拌车在梁场&#xff08;也称为预制梁场&#xff09;的应用可以带来多方面的优势和效益&#xff1a; 1. 自动化搅拌和运输 在梁场中&#xff0c;通常需要大量的混凝土搅…

探索大型语言模型自动评估 LLM 输出长句准确性的方法

LLM现在能够自动评估较长文本中的事实真实性 源码地址&#xff1a;https://github.com/google-deepmind/long-form-factuality 论文地址&#xff1a;https://arxiv.org/pdf/2403.18802.pdf 这篇论文是关于谷歌DeepMind的&#xff0c;提出了新的数据集、评估方法和衡量标准&am…

零基础学习MySQL---MySQL入门

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、什么是数据库 问&#xff1a;存储数据用文件就可以了&#xff0c;为什么还要弄个数据库呢&#xff1f; 这就不得不提…

收集了很久的全网好用的磁力搜索站列表分享

之前找资源的时候&#xff0c;收集了一波国内外大部分主流的磁力链接搜索站点。每一个站可能都有对应的优缺点&#xff0c;多试试&#xff0c;就能知道自己要哪个了。 全网好用的磁力链接 大部分的时候&#xff0c;我们用国内的就可以了&#xff0c;速度块&#xff0c;而且不…

Free Pascal语言基础学习:定义变量、数据类型、循环语句、case语句、条件判断、with语句、运算符

Pascal是一种结构化编程语言&#xff0c;而Free Pascal作为其现代编译器&#xff0c;不仅支持跨多种操作系统和处理器架构&#xff0c;还提供了高效的内存使用和函数重载等先进功能。Free Pascal继承了Pascal语言的核心特性&#xff0c;同时进行了扩展和优化&#xff0c;使其成…

操作系统真象还原:编写硬盘驱动程序

第13章-编写硬盘驱动程序 这是一个网站有所有小节的代码实现&#xff0c;同时也包含了Bochs等文件 13.1 硬盘及分区表 13.1.1 创建从盘及获取安装的磁盘数 要实现文件系统&#xff0c;必须先有个磁盘介质&#xff0c;虽然咱们己经有个虚拟磁盘 hd60M.img&#xff0c;但它只…

理解MySQL存储引擎:掌握数据存储与管理

在工作或学习过程中&#xff0c;作为一名数据库管理员或开发者&#xff0c;我们常常需处理大量数据&#xff0c;同时确保数据的可靠性与高效性。MySQL作为最受欢迎的开源数据库之一&#xff0c;其强大的性能和灵活性广为人知。而在MySQL背后的存储引擎则起到了至关重要的作用。…

深度学习项目GPU开发环境安装

注安装环境&#xff1a;ubuntu22.04, cuda 11.7, cudnn8.9 1.安装nvidia驱动 看可安装的Nvidia驱动版本&#xff1a;执行 ubuntu-drivers devices 安装合适版本的Nvidia驱动&#xff1a; sudo apt-get install nvidia-driver-515 注意&#xff1a;合适的版本需要尝试&#x…

【区块链+基础设施】银联云区块链服务 | FISCO BCOS应用案例

为了顺应区块链基础设施化的发展趋势&#xff0c;中国银联推出了银联云区块链服务——UPBaaS&#xff0c;为金融行业采用区块链 技术提出了解决方案&#xff0c;微众银行为平台提供 FISCO BCOS 区块链开源技术支持。通过银联云区块链服务&#xff0c;用户可 以用可视化的方式创…

ERROR: No matching distribution found for torch==2.0.1+cu117(比手动下载方便)

ERROR: No matching distribution found for torch2.0.1cu117 遇见这种报错可以把pip install -r requirements.txt修改为 pip install -r requirements.tx --extra-index-url https://download.pytorch.org/whl/cu117 -i https://pypi.tuna.tsinghua.edu.cn/simple或者直接…