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

第一部分:基础知识 9 . 视图 --[MySQL轻松入门教程]

在MySQL中,视图(View)是一个命名的SQL查询,它被存储在数据库目录中。视图可以包含来自一个或多个表的数据,并且可以像真实表一样被查询。下面是对MySQL视图的详细讲解:

创建视图

使用 CREATE VIEW 语句来创建视图。语法如下:

CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION];
  • OR REPLACE:如果已经存在同名视图,则替换之。
  • ALGORITHM:指定MySQL如何实现视图。有三种选项:
    • UNDEFINED:默认值,由MySQL自行选择算法。
    • MERGE:将视图的语句与引用视图的语句合并为一个查询。
    • TEMPTABLE:将结果存入临时表中再进行处理。
  • view_name:要创建的视图名称。
  • column_list:可选参数,用来定义视图中的列名。
  • select_statement:定义视图内容的选择查询语句。
  • WITH CHECK OPTION:确保通过视图对数据进行更新或插入时,新数据仍然满足视图的条件。

下面我将给出三个创建MySQL视图的示例,每个示例都展示了不同的使用场景和目的。

示例 1:简化查询

假设我们有一个名为 employees 的表,其中包含员工的信息,包括他们的部门。如果我们经常需要查询某个特定部门的所有员工信息,可以创建一个视图来简化这个过程。

/* 创建一个名为 'dept_sales_employees' 的视图,该视图包含所有属于销售部门的员工的基本信息。
*/
CREATE VIEW dept_sales_employees AS
SELECT employee_id,   /* 员工ID */first_name,    /* 员工名 */last_name,     /* 员工姓氏 */hire_date      /* 雇佣日期 */
FROM employees      /* 来源表为 'employees' */
WHERE department = 'Sales';  /* 只选择部门为 'Sales' 的记录 */

现在,每次我们需要查看销售部门的所有员工时,只需要查询 dept_sales_employees 视图即可:

SELECT * FROM dept_sales_employees;

示例 2:提高安全性

假设我们有一个包含敏感信息的用户表 users,但我们只希望某些用户能够看到用户的用户名和邮箱地址,而不允许他们访问其他敏感字段(如密码)。我们可以创建一个视图来限制这些用户的访问权限。

/*创建一个名为 'user_public_info' 的视图,该视图旨在限制对用户表中敏感数据的访问,只暴露非敏感字段(如用户ID、用户名和电子邮件),以此来提高系统的安全性。
*/
CREATE VIEW user_public_info AS
SELECT user_id,   /* 用户唯一标识符 */username,  /* 用户名,用于登录或显示 */email      /* 用户的电子邮件地址,用于联系 */
FROM users;     /* 来源表为 'users',包含所有用户的数据 */

通过授予用户对 user_public_info 视图而不是整个 users 表的访问权限,我们可以确保他们只能访问非敏感数据。

示例 3:聚合数据

假设我们有一个订单表 orders,其中包含订单的详细信息,包括客户ID、订单日期和总金额。如果我们要定期生成关于每个客户的总销售额报告,可以创建一个视图来汇总这些信息。

-- 创建一个名为 'customer_sales_summary' 的视图,用于汇总每个客户的总销售额。
CREATE VIEW customer_sales_summary AS
SELECT customer_id,                     -- 客户唯一标识符SUM(total_amount) AS total_sales  -- 对每个客户的订单总额求和,并将结果字段命名为 'total_sales'
FROM orders                           -- 数据来源表是 'orders',它存储了所有订单信息
GROUP BY customer_id;                     -- 按客户ID分组,确保求和是对每个客户的订单分别计算

然后,为了获取所有客户的总销售额,我们可以简单地查询这个视图:

SELECT * FROM customer_sales_summary;

这三个示例分别展示了如何使用视图来简化复杂查询、提高数据访问的安全性以及进行数据聚合。根据实际需求,你可以创建各种各样的视图来满足不同场景下的要求。

查询视图

查询视图就如同查询普通表一样简单:

SELECT * FROM view_name;

查询视图与查询普通表非常相似。以下是五个查询MySQL视图的示例,每个示例展示了不同的查询场景和技巧。

示例 1:简单查询

假设我们有一个名为 dept_sales_employees 的视图,它包含了所有销售部门员工的信息。我们可以用一个简单的 SELECT 语句来查询所有记录:

-- 查询 'dept_sales_employees' 视图中的所有记录
SELECT * FROM dept_sales_employees;

示例 2:带有条件的查询

如果我们想从 user_public_info 视图中只获取特定用户的公共信息(例如用户ID为5的用户),可以添加一个 WHERE 子句:

-- 查询 'user_public_info' 视图中用户ID为5的用户信息
SELECT * FROM user_public_info 
WHERE user_id = 5;

示例 3:聚合函数和分组

如果我们有一个名为 customer_sales_summary 的视图,它汇总了每个客户的总销售额,我们可以进一步使用聚合函数和 GROUP BY 来分析数据,比如找出销售总额最高的前10名客户:

-- 查询 'customer_sales_summary' 视图中销售额最高的前10名客户
SELECT customer_id, total_sales
FROM customer_sales_summary
ORDER BY total_sales DESC
LIMIT 10;

示例 4:连接其他表

假设我们有一个 product_views 视图,它显示了产品被查看的次数。我们可以将这个视图与实际的产品表 products 连接起来,以获取更多关于产品的信息:

-- 将 'product_views' 视图与 'products' 表连接,获取产品名称及查看次数
SELECT p.product_name, v.view_count
FROM product_views v
JOIN products p ON v.product_id = p.product_id;

示例 5:子查询

如果我们想要查询那些销售额超过某个特定值的客户,并且这些客户也存在于另一个视图 loyal_customers 中,我们可以使用子查询来完成这个任务:

-- 查询 'customer_sales_summary' 视图中销售额大于10000且存在于 'loyal_customers' 视图中的客户
SELECT c.customer_id, c.total_sales
FROM customer_sales_summary c
WHERE c.total_sales > 10000 AND c.customer_id IN (SELECT l.customer_id FROM loyal_customers l
);

这些例子展示了如何利用视图简化复杂查询、结合条件筛选、进行数据聚合、与其他表连接以及执行嵌套查询等多种操作。根据具体需求,你可以灵活运用这些技术来构建更加复杂和功能丰富的查询。

更新视图

在MySQL中,并不是所有的视图都支持更新操作。是否可以更新视图取决于视图的定义,尤其是它所包含的查询语句。如果视图是基于简单的SELECT语句,并且没有使用聚合函数、GROUP BYDISTINCT等元素,则该视图通常是可更新的。下面提供三个更新视图的示例。

示例 1:简单更新

假设我们有一个名为 user_public_info 的视图,它只包含了用户的非敏感信息(如用户ID、用户名和电子邮件)。如果我们需要更新某个用户的用户名,可以直接对视图执行 UPDATE 操作:

-- 更新 'user_public_info' 视图中的用户信息,设置用户ID为5的用户名为 'newusername'
UPDATE user_public_info 
SET username = 'newusername'
WHERE user_id = 5;

示例 2:带有条件的更新

如果我们有一个名为 dept_sales_employees 的视图,它显示了所有销售部门员工的信息。现在我们需要将销售部门中某位员工的雇佣日期更新为新的日期:

-- 更新 'dept_sales_employees' 视图中员工ID为10的雇佣日期为 '2024-01-01'
UPDATE dept_sales_employees 
SET hire_date = '2024-01-01'
WHERE employee_id = 10;

示例 3:批量更新

假设我们有一个名为 customer_sales_summary 的视图,它汇总了每个客户的总销售额。虽然这个视图本身可能不直接支持更新(因为它涉及到聚合),但如果我们创建了一个仅包含客户ID和最新订单金额的视图(例如 customer_latest_order),那么我们可以对这个视图进行批量更新操作。这里假设我们想要将所有客户的最新订单金额增加10%作为促销活动的一部分:

-- 创建一个视图 'customer_latest_order',用于展示每个客户的最新订单金额
CREATE VIEW customer_latest_order AS
SELECT customer_id, MAX(order_date) AS latest_order_date, total_amount
FROM orders
GROUP BY customer_id;-- 更新 'customer_latest_order' 视图中的最新订单金额,增加10%
UPDATE customer_latest_order 
SET total_amount = total_amount * 1.10;

请注意,最后一个示例中的视图 customer_latest_order 是为了说明目的而构造的,实际情况下,由于涉及到了 MAX() 聚合函数和 GROUP BY 子句,这个视图通常是不可更新的。因此,在实践中,你可能需要直接更新基础表 orders 来实现类似的效果。

重要提示:在尝试更新视图之前,请务必检查视图的定义,确保其符合可更新视图的要求。此外,一些复杂的视图逻辑可能会导致更新行为不符合预期,所以在生产环境中执行更新操作时应格外小心,并总是先在一个测试环境中验证你的更改。

删除视图

使用 DROP VIEW 来删除视图:

DROP VIEW [IF EXISTS] view_name;

在MySQL中,删除视图是一个简单的过程,使用 DROP VIEW 语句可以完成。以下是两个删除视图的示例,展示了不同情况下的用法。

示例 1:删除单个视图

如果你确定不再需要某个特定的视图,并且想要从数据库中移除它,你可以使用以下命令来删除该视图。假设我们有一个名为 dept_sales_employees 的视图:

-- 删除名为 'dept_sales_employees' 的视图
DROP VIEW IF EXISTS dept_sales_employees;

这里使用了 IF EXISTS 子句,以防止在试图删除不存在的视图时产生错误。如果视图存在,它将被删除;如果不存在,则不会执行任何操作,也不会抛出错误。

示例 2:删除多个视图

有时你可能需要一次性删除多个视图。虽然MySQL的 DROP VIEW 语句不直接支持批量删除,但可以通过在一个语句中列出所有要删除的视图名称来实现这一点。每个视图名称之间用逗号分隔。假设我们要删除 user_public_infocustomer_sales_summary 这两个视图:

-- 删除名为 'user_public_info' 和 'customer_sales_summary' 的视图
DROP VIEW IF EXISTS user_public_info, customer_sales_summary;

同样地,这里也使用了 IF EXISTS 来避免因试图删除不存在的视图而引发的错误。如果有任何一个视图不存在,这条语句仍然会尝试删除存在的视图,并且不会因为找不到某些视图而失败。

注意事项

  • 删除视图后,所有依赖于该视图的对象(如其他视图或存储过程)可能会受到影响。
  • 在删除视图之前,请确保已经备份了任何必要的数据或逻辑,因为你无法通过简单的恢复操作来还原已删除的视图。
  • 如果视图被广泛使用或与其他对象紧密耦合,在删除前最好先评估其影响范围。

视图的优点

  • 简化复杂的查询:视图可以封装复杂的逻辑,简化用户查询。
  • 提高安全性:通过视图限制用户访问敏感数据。
  • 提供逻辑独立性:即使基础表结构改变,只要视图逻辑不受影响,基于视图的应用程序无需修改。

视图的局限性

  • 性能问题:由于视图是基于查询的结果集,因此每次查询视图都会重新执行其定义的查询,可能导致性能下降。
  • 维护成本:如果视图依赖于多个表,当这些表发生变化时,可能需要调整视图定义。
  • 部分功能受限:不是所有类型的视图都可以被更新;某些情况下,视图不能完全替代实际的表。

注意事项

  • 视图不保存数据,它们只是保存了查询的定义。这意味着视图本身不会占用额外的存储空间,除非是在使用 TEMPTABLE 算法的情况下。
  • 视图可以嵌套,也就是说,一个视图的定义可以引用另一个视图。
  • 使用视图时要注意权限管理,因为用户必须拥有适当的权限才能查询或修改视图。

视图是数据库设计中一种强大的工具,它能够帮助优化查询,提高安全性和简化应用程序开发。正确理解和使用视图对于数据库管理员和开发者来说都是非常重要的。

相关文章:

第一部分:基础知识 9 . 视图 --[MySQL轻松入门教程]

在MySQL中,视图(View)是一个命名的SQL查询,它被存储在数据库目录中。视图可以包含来自一个或多个表的数据,并且可以像真实表一样被查询。下面是对MySQL视图的详细讲解: 创建视图 使用 CREATE VIEW 语句来创建视图。语法如下: CREATE [OR REPLACE] [ALGORITHM = {UNDEFIN…...

用GPT零负担学单片机之点亮一颗cpu 第3节 训练or特征匹配?用GPT开发嵌入式

用GPT零负担学单片机之点亮一颗cpu 第3节 训练or特征匹配?AI写代码 大家好,我是小杰学长 如果你是大学生 遇到电子技术 学习 成长 入行难题 我曾经通过大学比赛赚钱 从事嵌入式AI 航天军工 用特别的学习和求职方法线下半年带50+学弟学妹入行开发 主页佳喔威信,给你提供一定资…...

2.6、vue2中侦听属性的变化

2.6.1、侦听属性作用侦听属性的变化其实就是监视某个属性的变化。当被监视的属性一旦发生改变时,执行某段代码。2.6.2、watch配置项监视属性变化时需要使用watch配置项 可以监视多个属性,监视哪个属性,请把这个属性的名字拿过来即可。 i.可以监视Vue的原有属性 ii.如果监视的…...

enable_shared_from_this

用途 struct S {shared_ptr<S> dangerous(){return shared_ptr<S>(this); // dont do this!} };int main() {shared_ptr<S> sp1(new S);shared_ptr<S> sp2 sp1->dangerous();return 0; }考虑以上代码&#xff0c;从一个被shared_ptr管理的struc…...

重生之我在异世界学智力题(2)

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言智力题&#xff1a;逃离孤岛智力题&a…...

深入解析下oracle的number底层存储格式

oracle数据库中&#xff0c;number数据类型用来存储数值数据&#xff0c;它既可以存储负数数值&#xff0c;也可以存储正数数值。相对于其他类型数据&#xff0c;number格式的数据底层存储格式要复杂得多。今天我们就详细探究下oracle的number底层存储格式。 一、环境搭建 1.…...

prometheus

1.安装&#xff0c;tar包&#xff0c;解压即用 tar xf prometheus-2.33.3.linux-amd64.tar.gz -C /app/tools/ 2.创建软链接 ln -s prometheus-2.33.3.linux-amd64/ /app/tools/prometheus 3.进入目录 cd /app/tools/prometheus 4.运行 ./prometheus 5.此时&#xff0…...

C# 23种设计模式(1)单例模式(单件模式)

一、单例模式介绍 单例模式&#xff08;Singleton Pattern&#xff09;是一种创建型设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点。这个模式在需要一个对象被共享且全局唯一的情况下非常有用&#xff0c;比如配置对象、日志对象、数据库连接…...

Javaweb:HTML、CSS

学习 资源1 学习资源 2 黑马javaweb HTML 1、基础标签、样式 图片标签&#xff1a;<img> src:绝对路径、相对路径(绝对磁盘路径&#xff0c;网络路径&#xff1b;./当前目录&#xff09;width:宽度&#xff08;百分比&#xff09;height:高度&#xff08;百分比&…...

SmartDV将SDIO系列IP授权给RANiX开发车联网(V2X)产品

双方的合作将增强符合ISO 26262标准的车联网&#xff08;V2X&#xff09;系统的通信和连接能力&#xff0c;加速实现更安全、更智能的汽车系统和车辆创新 加利福尼亚州圣何塞市&#xff0c;2024年12月——灵活、高度可配置、可定制化的半导体设计知识产权&#xff08;IP&#…...

【Android】创建型设计模式—单例模式、工厂模式、建造者模式

单例模式 单例模式&#xff08;Singleton Pattern&#xff09;是一种创建型设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供全局访问点。 单例模式类图&#xff1a; #mermaid-svg-kzf6IdXdYeNOHtP0 {font-family:"trebuchet ms",verdana,arial,sa…...

ida9pro压缩包

资源类型的博客大部分都是为了自己某天换新机了用 下载链接2&#xff1a;ida9.zip 下载链接1&#xff1a;https://mega.nz/folder/yiAiVDAa#T0kogEE7ufqy0x0EpCuOLQ 主目录下该文件为证书文件 ida9中选择它&#xff0c;就可以了...

前端入门之VUE--vue组件化编程

前言 VUE是前端用的最多的框架&#xff1b;这篇文章是本人大一上学习前端的笔记&#xff1b;欢迎点赞 收藏 关注&#xff0c;本人将会持续更新。 文章目录 2、Vue组件化编程2.1、组件2.2、基本使用2.2.1、VueComponent 2、Vue组件化编程 2.1、组件 组件&#xff1a;用来实现…...

C++是如何工作的?

首先来看一个最基本的C程序段。 #include <iostream>int main() {std::cout << "HelloWorld" << std::endl;std::cin.get(); } 第一行 #include 的含义是预处理的意思&#xff0c;这条语句的作用是将一个名为iostream的文件拷贝到源代码中这个…...

JavaScript中的this, 究竟指向什么?

在JavaScript代码的不同位置中&#xff0c;this所指向的数据是不一样的。比如大部分同学都知道&#xff0c;在对象的函数属性方法中&#xff0c;this指向对象本身&#xff1b;在构造函数中&#xff0c;this指向要生成的新对象。事实上&#xff0c;this指向的逻辑不止这几种&…...

JavaWeb学习(3)(Servlet详细、Servlet的三种实现方式(面试)、Servlet的生命周期、传统web.xml配置Servlet(了解))

目录 一、Servlet详细。 &#xff08;1&#xff09;基本介绍。 &#xff08;2&#xff09;基本作用。 1、接收客户端请求数据。 2、处理请求。 3、完成响应结果。 二、Servlet的三种实现方式。 &#xff08;1&#xff09;实现javax.servlet.Servlet接口。 1、基本介绍。 2、代码…...

【图像去雾数据集】URHI数据集介绍

URHI数据集对应论文&#xff1a;RESIDE: A Benchmark for Single Image Dehazing&#xff08;2017&#xff09; URHI数据集下载链接&#xff1a;https://sites.google.com/site/boyilics/website-builder/reside 为便于下载&#xff0c;将上述官方提供的链接中百度云链接粘贴如…...

Playwright中Page类的方法

导航和页面操作 goto(url: str, **kwargs: Any): 导航到一个URL。 reload(**kwargs: Any): 重新加载当前页面。 go_back(**kwargs: Any): 导航到会话历史记录中的前一个页面。 go_forward(**kwargs: Any): 导航到会话历史记录中的下一个页面。 set_default_navigation_tim…...

算力介绍与解析

算力&#xff08;Computing Power&#xff09;是指计算机系统在单位时间内处理数据和执行计算任务的能力。算力是衡量计算机性能的重要指标&#xff0c;直接影响计算任务的速度和效率。 算力的分类和单位 a. 基础算力&#xff1a;以CPU的计算能力为主。适用于各个领域的计算。…...

CentOS 上如何查看 SSH 服务使用的端口号?

我们知道&#xff0c;linux操作系统中的SSH默认情况下&#xff0c;端口是使用22&#xff0c;但是有些线上服务器并不是使用的默认端口&#xff0c;那么这个时候&#xff0c;我们应该如何快速知道SSH使用的哪个端口呢&#xff1f; 1、通过配置文件查看 cat /etc/ssh/sshd_confi…...

每日算法Day03

1.19.删除链表的倒数第N个节点 算法链接: 19. 删除链表的倒数第 N 个结点 - 力扣&#xff08;LeetCode&#xff09; 类型: 链表 难度: 中等 思路&#xff1a;采用双指针法&#xff0c;控制两个指针之间的距离为n个节点 易错点&#xff1a;返回节点的确定和头节点的处理&…...

【漏洞复现】Apache Solr 身份认证绕过导致任意文件读取漏洞复现(CVE-2024-45216)

🏘️个人主页: 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦 【漏洞复现】Apache Solr 身份认证绕过导致任意文件读取漏洞复现(CVE-2024-45216) 一、漏洞概述1.1漏洞简介1.2组件描述1.3漏洞描述二、漏洞复现2.1 应用协议2.2 环境…...

若依将数据库更改为SQLite

文章目录 1. 添加依赖项2. 更新配置文件 application-druid.yml2.1. 配置数据源2.2. 配置连接验证 3. 更新 MybatisPlusConfig4. 解决 mapper 中使用 sysdate() 的问题4.1. 修改 BaseEntity4.2. 修改 Mapper 5. 更新 YML 配置 正文开始&#xff1a; 前提条件&#xff1a;在您的…...

ubuntu远程桌面开启opengl渲染权限

背景 最近用windows的【远程桌面连接】登录ubuntu后&#xff08;xrdp协议&#xff09;&#xff0c;发现gl环境是集显的&#xff0c;但是本地登录ubuntu桌面后是独显&#xff08;英伟达&#xff09;&#xff0c;想要在远程桌面上也用独显渲染环境。 一、查看是独显还是集显环境…...

Scala的泛型

需求:定义一个名为getMiddleEle 的方法用它来获取当前的列表的中间位置的值中间位置的下标 长度/2目标:getMiddleEle(List(1,2,3,4,5)) > 5/2 2 > 下标为2的元素是:3 getMiddleEle(List(1,2,3,4)) > 4/2 2 > 下标为2的元素是:3格式如下: 定义一个函数的格式:def…...

每隔一秒单片机向电脑发送一个16进制递增数据

SCON0x50 SM00 SM11&#xff08;工作方式为方式一&#xff09; REN1允许单片机从电脑接收数据 TB8 RB8 SM2是方式2和方式3直接配置为0 TI为发送中断请求标志位 由硬件配置为1 必须由 软件复位为0&#xff0c;RI为接收中断请求标志位&#xff0c;同理TI UART.c #include &l…...

轻量级日志管理平台:Grafana Loki搭建及应用(详细篇)

前言 Grafana Loki是Grafana Lab团队提供的一个水平可扩展、高可用性、多租户的日志聚合系统&#xff0c;与其他日志系统不同的是&#xff0c;Loki最初设计的理念是为了为日志建立标签索引&#xff0c;而非将原日志内容进行索引。 现在目前成熟的方案基本上都是&#xff1a;L…...

React和Vue.js的相似性和差异性是什么?

React和Vue.js都是现代前端开发中广泛使用的JavaScript框架&#xff0c;它们都旨在提高开发效率和组件化开发。以下是他们的一些相似性和差异性&#xff1a; 相似性 组件化&#xff1a;两者都支持组件化开发&#xff0c;允许开发者将UI拆分成独立的、可复用的组件。虚拟DOM&a…...

跨域 Cookie 共享

跨域请求经常遇到需要携带 cookie 的场景&#xff0c;为了确保跨域请求能够携带用户的认证信息或其他状态&#xff0c;浏览器提供了 withCredentials 这个属性。 如何在 Axios 中使用 withCredentials 为了在跨域请求中携带 cookie&#xff0c;需要在 Axios 配置中设置 withCr…...

全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之计数器与累加器(一)

学习背景&#xff1a; 在现实生活中一些需要计数的场景下我们会用到计数器&#xff0c;如空姐手里记录乘客的计数器&#xff0c;跳绳手柄上的计数器等。累加器是累加器求和&#xff0c;以得到最后的结果。计数器和累加器它们虽然是基础知识&#xff0c;但是应用广泛&#xff0…...

红黑树(Red-Black Tree)

一、概念 红黑树&#xff08;Red Black Tree&#xff09;是一种自平衡的二叉搜索树&#xff0c;通过添加颜色信息来确保在进行插入和删除操作时&#xff0c;树的高度保持在对数级别&#xff0c;从而保证了查找、插入和删除操作的时间复杂度为 O(log n)。这种树可以很好地解决普…...

火电厂可视化助力提升运维效率

图扑智慧火电厂综合管理平台实现对火电厂关键设备和系统的实时监控和数据分析。图扑可视化不仅优化了运维流程&#xff0c;还增强了安全管理&#xff0c;有效提升了电厂整体运营效率。...

application.yml 和 bootstrap.yml

在 Spring Boot 中&#xff0c;application.yml 和 bootstrap.yml 都是用来配置应用程序的属性文件&#xff0c;通常用于环境配置、服务配置等。但是&#xff0c;它们有一些不同的用途和加载顺序。以下是它们之间的主要区别&#xff1a; 1. application.yml&#xff1a; 主要…...

电子应用设计方案-49:智能拖把系统方案设计

智能拖把系统方案设计 一、引言 随着人们生活水平的提高和对清洁效率的追求&#xff0c;智能拖把作为一种创新的清洁工具应运而生。本方案旨在设计一款功能强大、操作便捷、清洁效果出色的智能拖把系统。 二、系统概述 1. 系统目标 - 实现自动清洁地面&#xff0c;减轻用户劳…...

Model Context Protocol 精选资源列表

Model Context Protocol 精选资源列表 Model Context Protocol 精选资源列表什么是MCP&#xff1f;教程社区说明服务器实现&#x1f4c2; 浏览器自动化☁️ 云平台&#x1f4ac; 社交&#x1f464; 数据平台&#x1f5c4;️ 数据库&#x1f4bb; 开发者工具&#x1f9ee; 数据科…...

Windows 11 12 月补丁星期二修复了 72 个漏洞和一个零日漏洞

微软于 2024 年 12 月为 Windows 11 发布的补丁星期二修复了其产品生态系统中的 72 个漏洞&#xff0c;包括 Windows 通用日志文件系统驱动程序中一个被积极利用的零日漏洞。 这个严重漏洞可以通过基于堆的缓冲区溢出授予攻击者系统权限&#xff0c;使其成为此版本中优先级最高…...

Python毕业设计选题:基于Hadoop 的国产电影数据分析与可视化_django+spider

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 免费电影管理 在线论坛 留言反馈 看板展示 系统…...

蓝桥杯我来了

最近蓝桥杯报名快要截止了&#xff0c;我们学校开始收费了&#xff0c;我们学校没有校赛&#xff0c;一旦报名缴费就是省赛&#xff0c;虽然一早就在官网上报名了&#xff0c;但是一直在纠结&#xff0c;和家人沟通&#xff0c;和朋友交流&#xff0c;其实只是想寻求外界的支持…...

大模型qiming面试内容整理-编码能力评估

编码能力评估是大模型相关岗位面试中非常关键的一环,面试官通常希望通过这个环节了解候选人对编程语言、算法与数据结构的掌握情况,以及其在实践中解决实际问题的能力。以下是编码能力评估的常见内容和类型,特别是针对机器学习、大模型和深度学习方向: 编程语言熟练度 ● P…...

Vivado ILA数据导出MATLAB分析

目录 ILA数据导出 分析方式一 分析方式二 有时候在系统调试时&#xff0c;数据在VIVADO窗口获取的信息有限&#xff0c;可结合MATLAB对已捕获的数据进行分析处理 ILA数据导出 选择信号&#xff0c;单击右键后&#xff0c;会有export ILA DATA选项&#xff0c;将其保存成CS…...

Linux内核 -- 字符设备之read write poll基本实现

Linux字符设备&#xff1a;read、write和poll函数实现及完整代码 1. read函数 原型 ssize_t read(struct file *file, char __user *buf, size_t count, loff_t *pos);实现步骤 检查用户缓冲区&#xff1a;使用copy_to_user将数据从内核空间复制到用户空间。返回已读取的字…...

linux部署ansible自动化运维

ansible自动化运维 1&#xff0c;编写ansible的仓库&#xff08;比赛已经安装&#xff0c;无需关注&#xff09; 1、虚拟机右击---设置---添加---CD/DVD驱动器---完成---确定 2、将ansible.iso的光盘连接上&#xff08;右下角呈绿色状态&#xff09; 3、查看光盘挂载信息 df -h…...

springboot421社区医疗服务可视化系统(论文+源码)_kaic

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装社区医疗服务可视化系统软件来发挥其高效地信息处理的作用…...

vue渲染时闪光白屏问题怎么解决(笔记)

Vue渲染时出现闪光白屏问题&#xff0c;可能是因为页面内容需要较长时间才能加载完成&#xff0c;而在加载期间&#xff0c;页面会显示白屏或者空白内容&#xff0c;给用户体验带来负面影响。 解决方法&#xff1a; 为标签绑定 v-cloak 在样式中写 v-clock {displa&#xff…...

duxapp 2024-12-09 更新 PullView可以弹出到中间,优化CLI使用体验

UI库 修复 Button 禁用状态失效的问题Modal 组件即将停用&#xff0c;请使用 PullView 基础库 PullView side 新增 center 指定弹出到屏幕中间PullView 新增 duration 属性&#xff0c;指定动画时长新增 useBackHandler hook 用来阻止安卓端点击返回键 RN端 修复 windows …...

vue调试插件vue Devtools下载安装

Vue.js Devtools_6.6.3_Chrome插件下载_极简插件 进图官网点击推荐下载下载该调试工具 解压缩找到扩展程序开启开发者模式 将解压缩的文件拖拽到该页面空白处&#xff0c;点击添加扩展程序 点击详情允许访问文件网址 页面右键检查可以发现已经成功添加该页面调试插件...

.net core使用AutoMapper

AutoMapper 是一个用于 .NET 平台的对象映射工具&#xff0c;它简化了不同对象类型之间的转换过程。在软件开发中&#xff0c;尤其是在分层架构的应用程序里&#xff0c;常常需要在不同的对象模型之间进行数据传递&#xff0c;例如从数据库实体到视图模型、DTO&#xff08;数据…...

HTTP头注入

注入类漏洞经久不衰&#xff0c;多年保持在owasp Top 10的首位。今天就聊聊那些被人遗忘的http头注入。用简单的实际代码进行演示&#xff0c;让每个人更深刻的去认识该漏洞。 3|0HOST注入 在以往http1.0中并没有host字段&#xff0c;但是在http1.1中增加了host字段&#xff…...

110.【C语言】编写命令行程序(1)

目录 1.前置知识 "命令"的含义 运行C语言程序 2.介绍 main函数的参数 实验1 执行结果 实验2 执行结果 修改代码 实验3 分析 方法:遍历数组argv[]中的所有参数 执行结果 修改代码 执行结果 1.前置知识 "命令"的含义 WINR输入cmd,在cmd窗口下…...

k8s 之 StatefulSet

深入理解StatefulSet&#xff08;一&#xff09;&#xff1a;拓扑状态 k8s有状态与无状态的区别 无状态服务&#xff1a;deployment Deployment被设计用来管理无状态服务的pod,每个pod完全一致.什么意思呢? 无状态服务内的多个Pod创建的顺序是没有顺序的. 无状态服务内的多…...