常见的SQL面试题:经典50例

select employee_id, last_name, case department_id when ( select department_id from departments where location_id = 1800 ) then ‘Canada’ else ‘USA’ end “location” from employees; 问题:查询员工的employee_id,last_name,要求按照员工的department_name排序 select employee_id, last_name from employees e1 order by ( select department_name from departments d1 where e1.department_id = d1.department_id ) SQL 优化:能使用 EXISTS 就不要使用 IN 问题:查询公司管理者的employee_id,last_name,job_id,department_id信息 select employee_id, last_name, job_id, department_id from employees where employee_id in ( select manager_id from employees ) select employee_id, last_name, job_id, department_id

离线安装docker、docker_redis_加载离线docker,这操作真香

一、离线安装docker 1、下载离线包 https://link.zhihu.com/?target=https%3A//download.docker.com/linux/static/stable/x86_64/ docker-18.09.8.tgz 2、安装docker 复制docker-18.09.8.tgz到 /usr/bin下(usr/bin是环境变量目录,在路径下可以直接运行docker命令) 解压 tar xvf docker-18.09.8.tgz ls -l docker cp docker/* /usr/bin rm -rf docker docker-18.09.8.tgz 配置docker服务 vim /etc/systemd/system/docker.service 添加 [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID LimitNOFILE=infinity LimitNPROC=infinity TimeoutStartSec=0 Delegate=yes KillMode=process Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-user.target 赋执行权限 chmod +x /etc/systemd/system/docker.service systemctl daemon-reload 3. docker 命令 开机启动 systemctl enable docker.service 启动docker systemctl start docker docker状态 systemctl status docker

MATLAB中cvx工具箱的使用介绍

目录 1. CVX安装与启动 2. CVX语法规则 3. CVX支持的函数与运算符 4. 问题求解与结果处理 5. 高级功能与技巧 MATLAB中的CVX(Convex Optimization Toolbox)是一款专门用于解决凸优化问题的工具箱。凸优化是数学优化的一个分支,它研究的是具有凸可行域和凸目标函数的优化问题。这些问题在许多工程领域和科学应用中都有广泛的应用,如信号处理、控制理论、机器学习、金融工程等。CVX为MATLAB用户提供了简洁易用的语法,使得非专业的优化专家也能方便地表述和求解凸优化问题。CVX是一个专为解决凸优化问题而设计的MATLAB工具箱,它允许用户使用MATLAB的语言来描述和求解凸优化问题。CVX将凸优化问题的建模和求解过程简化,让研究人员和工程师能够更容易地实现复杂的凸优化算法,而无需深入了解底层的优化理论或算法细节。 1. CVX安装与启动 安装:访问CVX官方下载页面(https://cvxr.com/cvx/download/),根据自己的MATLAB版本选择合适的CVX安装包进行下载。下载后按照安装指南进行安装,通常包括解压、设置MATLAB路径等步骤。 启动:在MATLAB命令窗口中输入 cvx_setup 并回车,该命令会进行必要的初始化设置。如果一切正常,CVX将成功加载,准备接受用户的凸优化问题描述。 2. CVX语法规则 CVX使用特殊的MATLAB语法来描述凸优化问题,主要包括以下几个关键部分: 变量声明:使用 cvx_variable 函数声明变量。例如,声明一个长度为N的向量变量 x: N = 10; x = cvx_variable(N); 约束表达式:使用MATLAB的常规数学运算符(如 +, -, .*, .^, >=, <=, ==)以及特定的凸运算符(如 norm, quad_form, sum_square 等)来构建约束条件。约束条件通常用 subject to 语句括起。例如,一个简单的不等式约束: A = randn(N,N); b = randn(N,1); constraint = [A*x <= b, sum(x) == 1, x >= 0]; 目标函数:定义凸目标函数,可以是凸函数的最小化或凹函数的最大化。例如,最小化二次函数: f = x'*x; 问题定义与求解:使用 cvx_begin 和 cvx_end 语句包围整个问题描述,并指定问题类型(最小化或最大化)。最后调用 cvx_solve 函数求解问题。完整示例:

Java Web实现登录注册(超详细附代码)

相信刚学Javaweb的小伙伴第一个接触的个人小项目都是从项目的登录注册开始的。 下面一个小项目中的登录注册将会带大家从零开始学习怎么设计登录注册流程. 2.登录注册设计流程 3.注册的数据流程 那么我们的前端数据是怎么传向后端的? 1.首先这里我们是用 表单传递 通过form提交 2.在这里,我们输入自己的姓名和密码,点击注册按钮。此时输入的这三个数据,我们可以看做成是一个表单的数据,这些数据会提交到服务器上: 3.此时,一个叫Tomcat的东西会处理这个请求, 4.得到请求之后,Tomcat会将这个请求交由Servlet来进行处理 5.Servlet调用Dao层写的各种实现方法,与数据库进行交互(curd调用仔) 那么下面就是注册操作的主要调用流程图 register.jsp registServlet UserDB 第一步 第二步 第三步 4.登录的数据流程 登录操作的主要调用流程图 Login.jsp LoginServlet UserDB 第一步 第二步 第三步 第四步 5.部分代码的展示 5.1注册 register.jsp注册页面 通过表单实现跳转到servlet <meta name=“viewport” content=“width=device-width”,initial-> world message board of the future Register ${message} 复制代码 RegisterServlet.java 业务层:处理注册业务 package Sevlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import javaBean.User; import useBean.UserDB; @WebServlet(“/RegistServlet”) public class RegistServlet extends HttpServlet {

黑翅鸢优化算法(BKA)-2024年SCI一区新算法-公式原理详解与性能测评 Matlab代码免费获取

声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 目录 原理简介 一、种群初始化 二、攻击行为 三、迁徙行为 算法伪代码 性能测评 参考文献 完整代码 黑翅鸢优化算法(BKA)是一种新型的元启发式算法(智能优化算法),灵感来源于黑翅鸢迁徙和捕食行为,BKA以其优异的性能证明了其在CEC-2022和CEC-2017测试函数的66.7、72.4和77.8%的情况下能够获得最佳性能!该成果由Wang Jun等人于2024年3月发表在SCI人工智能一区顶刊《Artificial Intelligence Review》上! 由于发表时间较短,谷歌学术上还没人引用!你先用,你就是创新! 原理简介 灵感:黑翅鸢是一种小鸟,上半身是蓝灰色的,下半身是白色的。它们的显著特征包括迁移和掠食行为。它们以小型哺乳动物、爬行动物、鸟类和昆虫为食,具有很强的悬停能力。受其狩猎技能和迁徙习惯的启发,作者建立了一个基于黑翼鸢的算法模型。 一、种群初始化 首先,与大多数优化算法一样,均匀地分配每只黑翅鸢的位置: 其中i为1 ~ pop之间的整数,BKlb和BKub分别为第j维黑翼鸢的下界和上界,rand为[0,1]之间随机选取的值。 在初始化过程中,BKA选择适应度值最好的个体作为初始群体中的leader XL,这被认为是黑翼鸢的最优位置。下面是初始领导者XL的数学表示,以最小值为例。 二、攻击行为 黑翅鸢是草原小型哺乳动物和昆虫的捕食者,在飞行过程中根据风速调整翅膀和尾巴的角度,静静地悬停观察猎物,然后迅速俯冲攻击。该策略包括不同的攻击行为,用于全局探索和搜索。图a为黑翼风筝在空中盘旋时的攻击状态,图b为黑翼风筝在空中盘旋时的攻击状态。下面是黑翼鸢攻击行为的数学模型: yij(t)和yij(t+1)分别表示第i只黑翼鸢在第j维和(t+1)次迭代步骤中的位置;r为0~1之间的随机数,p为0.9的常数;T是迭代的总次数,t是到目前为止已经完成的迭代次数。 三、迁徙行为 鸟类迁徙是一种受气候和食物供应等环境因素影响的复杂行为。鸟类迁徙是为了适应季节变化,许多鸟类在冬季从北方向南迁徙,以获得更好的生存条件和资源。迁移通常由领导者领导,他们的导航技能对团队的成功至关重要。我们提出了一个基于鸟类迁徙的假设:如果当前种群的适应度值小于随机种群的适应度值,那么领导者将放弃领导并加入迁徙种群,这表明它不适合领导种群前进。相反,如果当前种群的适应度值大于随机种群的适应度值,则会引导种群到达目的地。这种策略可以动态地选择优秀的领导者,以确保迁移的成功。 下图为黑翼鸢迁徙过程中领头鸟的变化情况。 以下是黑翼鸢迁徙行为的数学模型: 其中,Ljt表示到目前为止第t次迭代的第j维黑翼风筝的领先得分者。yij(t)和yij(t+1)分别表示第i只黑翼鸢在第j维和(t+1)次迭代步骤中的位置;Fi表示任一黑翼鸢在第t次迭代中获得的第j维当前位置;Fri表示第t次迭代中任意黑翼鸢在第j维随机位置的适应度值;C(0,1)代表柯西突变。定义如下: 一维柯西分布是具有两个参数的连续概率分布。一维柯西分布的概率密度函数为: 当δ=1, μ=0时,其概率密度函数成为标准形式。精确公式如下: 算法伪代码 为了使大家更好地理解,这边给出算法伪代码,非常清晰! 如果实在看不懂,不用担心,可以看下代码,再结合上文公式理解就一目了然了! 性能测评 原文作者在CEC-2022和CEC-2017五个实际工程设计问题中的应用表明了它在解决现实世界中约束挑战方面的实际潜力,并表明与现有优化技术相比,它具有显著的竞争优势。 这边为了方便大家对比与理解,采用23个标准测试函数,即CEC2005,并与经典的算术优化算法AOA进行对比!这边展示其中5个测试函数的图,其余十几个测试函数大家可以自行切换尝试! 可以看到,BKA的效果还是非常不错的!基本在所有函数上都超过了AOA算法,仅有部分函数差于AOA算法,收敛速度也非常快,大家应用到各类预测、优化问题中是一个不错的选择~ 参考文献 [1]Wang J, Wang W, Hu X, et al. Black-winged kite algorithm: a nature-inspired meta-heuristic for solving benchmark functions and engineering problems[J]. Artificial Intelligence Review, 2024, 57(4): 1-53.

出门一笑, “栈” 落江横 (Java篇)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能接受我们这个概念 !!! 前言 说完数据结构的链表小专题,小编今天带来了我们这节非常有意思的 栈 一种非常有意思的数据结构,实不相蛮,栈也是我们线性表中的一种结构哦 💥 💥 💥 目录 栈的初识Stack 类栈的实现 一. 栈的初识 1. 栈的简介 栈:一种特殊的线性表,其 只允许在固定的一端进行插入和删除元素操作。 进行 数据插入和删除操作的一端 称为栈顶 ,另一端称为栈底。栈中的数据元素遵守 后进先出 LIFO(Last In First Out)的原则。 而利用我们的 栈 对数据操作时 我们主要有两种方式 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在 栈顶 。 出栈:栈的删除操作叫做 出栈 。出数据在栈顶。 鱼式疯言 我们可以贴近生活去理解我们的栈 压入子弹和出子弹的时候,就是栈的 出栈和入栈 羽毛球入球桶和出球桶, 就是栈的 出栈和入栈 二. Stack 类 1.Stack 的简介 在我们的Java的数据结构的集合类中, 内部就提供了那么一种 栈 的类 我们就成为 Stack 类,而这个类就实现了我们 栈的所需要的功能 2. Stack 的使用 <1>. 入栈 class Test { public static void main(String[] args) { Stack<Integer> s=new Stack<>(); s.

“队列” 无罪,只是太美(Java篇)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能接受我们这个概念 !!! 前言 在上一篇文章中我们讲解了可爱又有意思的 栈 的学习 , 而在这篇文章中小编主要讲解 栈 的 “双胞胎兄弟” —————— 队列 小编在这里先留三个问题哈 什么是 队列 ? 队列 的特点有什么呢 ? 今天讲的 队列 和 栈 有我们异同呢 ? 目录 队列的初识Queue 类队列的实现 一. 队列的初识 1. 队列的简介 队列:只允许在 一端进行插入数据操作,在另一端进行删除数据 操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列:进行删除操作的一端称为 队头(Head/Front) 二.Queue 类 在Java中, 我们的 队列 就是Java中的 Queue , 而Queue 是个接口,底层是通过 链表 实现的。 主要核心还是先入队的先出队,先入先出 下面来具体使用一下我们 Queue 类吧 💖 💖 💖 1. 入队列 class Test2 { public static void main(String[] args) { Queue<Integer> q= new LinkedList<>(); q.

利用DBCA创建一个数据库(Oracle 19c)

目录 一、背景 二、创建步骤 1、打开DBCA来创建一个TEACHING数据库 2、创建数据库 3、创建模式选择 4、部署类型选择 5、数据库标识 6、存储选项 7、快速恢复选项 8、网络配置 9、Data Value选项 10、配置选项 11、管理选项 12、用户身份证明 13、创建选项 14、概要 15、进度页 16、完成 三、总结 一、背景 最近新学了Oracle数据库,在课程后面的实训项目中,需要创建一个TEACHING数据库,遂以此为背景,来创建一个名为TEACHING的数据库。 二、创建步骤 1、打开DBCA来创建一个TEACHING数据库 2、创建数据库 在数据库操作上面选择创建数据库,然后点击下一步即可。 3、创建模式选择 在创建模式上面选择高级配置,然后点击下一步即可。 tips: 典型配置:典型配置是一种简化的数据库创建流程,它会自动选择一个默认的配置选项,包括数据库类型、字符集、存储选项等等,用户只需要确认或修改这些选项即可。 高级配置:高级配置提供了更对灵活性和定制化选项,用户可以自定义数据库的各个方面,包括数据库类型、字符集、存储配置、内存分配、监听器等。 4、部署类型选择 在部署类型上选择Oracle 单实例数据库,在为数据库选择模板上,选择一般用途或事务处理,然后点击下一步即可。 5、数据库标识 在数据库标识中来创建全局数据库名和SID,这里我选择不勾选创建为容器数据库(毕竟只是上课使用),然后下一步即可。 tips: 全局数据库名:全局数据库名称是一个唯一的标识符,用于唯一地标识 Oracle 数据库。它由数据库名称和域名组成。 SID:SID 是 Oracle 数据库实例的唯一标识符,用于在操作系统级别识别和区分不同的数据库实例。每个 Oracle 数据库实例都有一个唯一的 SID。 创建为容器数据库:不勾选创建为容器数据库则创建的是一个传统的单实例数据库,勾选了创建数据容器选项,将创建一个包含一个或多个数据容器的多租户数据库。 6、存储选项 在存储选项处,选择为数据库存储属性使用模板文件,然后点击下一步即可。 7、快速恢复选项 在快速恢复选项处,我没有勾选指定快速恢复区和启动归档两个选项,当然,后续也能在SQL * PLUS中进行开启。 tips: 在SQL * PLUS中指定快速恢复区和启用归档 指定快速恢复区: 1、指定快速恢复区的路径: alter system set db_recovery_file_dest='快速恢复区路径' scope=spfile; 2、指定快速恢复区的大小: alter system set db_recovery_file_dest_size = 10G scope=spfile; 3、将数据库进行重启:

【热门话题】Stable Diffusion:本地部署教程

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 Stable Diffusion:本地部署教程一、引言二、环境准备1. 硬件配置2. 软件环境3. 代码获取 三、模型加载与验证1. 模型加载2. 模型验证 四、数据准备与处理五、模型推理与应用1. 单次推理2. 批量推理 六、性能优化与监控1. GPU利用率优化2. 内存管理3. 日志与监控 七、总结 Stable Diffusion:本地部署教程 一、引言 Stable Diffusion作为一种先进的深度学习模型,近年来在图像生成、自然语言处理等领域展现出了强大的能力。它利用扩散过程模拟数据分布,以稳定的方式生成高质量的输出。本文旨在为对Stable Diffusion感兴趣的开发者提供一份详细的本地部署教程,帮助您在自己的计算环境中高效、顺利地运行这一前沿模型。 二、环境准备 1. 硬件配置 CPU:推荐使用具有多核和高主频的处理器,如Intel Xeon或AMD Ryzen系列。GPU:由于Stable Diffusion涉及大量并行计算,建议至少配备一块NVIDIA RTX系列显卡(如RTX 3060及以上),并确保已安装最新版的CUDA和CuDNN库。内存:至少16GB RAM,对于大规模任务,建议32GB或更高。存储:需预留足够的硬盘空间存放模型文件、数据集以及中间结果,推荐使用SSD以提升I/O性能。 2. 软件环境 操作系统:支持Linux(如Ubuntu 20.04)和Windows。本文将以Ubuntu为例进行说明。Python:安装Python 3.8或以上版本,可使用conda或pyenv进行管理。依赖库: torch:PyTorch深度学习框架,与CUDA版本对应。torchvision:提供图像处理相关工具。diffusers:Hugging Face提供的Diffusion模型库。其他模型特定依赖,如tqdm、numpy等。 pip install torch torchvision diffusers tqdm numpy 3. 代码获取 从GitHub或其他官方渠道下载Stable Diffusion模型源码及预训练权重。确保克隆的仓库包含模型定义、推理脚本以及必要的权重文件。 git clone https://github.com/author/repo.git cd repo 三、模型加载与验证 1. 模型加载 在源码目录中找到模型加载脚本(通常命名为load_model.py或类似),按照以下步骤操作:

栈的详解和例题(力扣有效括号)

感谢各位大佬的光临,希望和大家一起进步,望得到你的三连,互三支持,一起进步 个人主页:LaNzikinh-CSDN博客 收入专栏:初阶数据结构_LaNzikinh篮子的博客-CSDN博客 文章目录 前言一.什么是栈二.栈的实现三.例题(力扣)总代码 前言 之前讲了,很多关于栈的习题,还有栈与队列的互相转换,还是补一篇栈的详解 一.什么是栈 栈(stack)是一种只允许在一端进行插入和删除操作的线性表。这一端称为栈顶,另一端称为栈底。栈的特点是后进先出(LIFO),即最后进入的元素最先出来。栈可以用来存储局部变量和一些数据,当函数或线程执行完毕,栈就会释放空间。 二.栈的实现 这样的实现它分为两种,一种是用数组去实现栈,另一种就是用链表去实现栈,我们这里主要讲的是用数组去实现栈,用链表实现栈又叫做链式栈,如果用尾做为栈顶那么尾插尾删就要设计成双向链表,否则删除数据效率会很低。 2.1结构 注意:初始化时把top=0的话,top可以看成有栈中的元素总数,不是栈顶的元素下标!! typedef int STDataType; typedef struct stack { STDataType* a; int top; int capacity }ST; 其实就可以把它看成一个顺序表,top就是size的意思,它用来控制栈顶的元素的 2.2初始化 初始化时,top给的是0的话,意味着top栈顶数据的指向下一个,top给-1的话,意味着top就是栈顶数据 void stackInit(ST* ps) { assert(ps); ps->a = NULL; ps->top = 0;//ps->top=-1; ps->capacity = 0; } 2.3放入数据 这里和顺序表的扩容和插入一模一样 void stackPush(ST* ps, STDataType x) { assert(ps); //检查扩容 if (ps->top == ps->capacity) { int newcapacity = ps->capacity == 0 ? 4 : ps->capacity * 2; STDataType* tmp = (STDataType*)realloc(ps->a,sizeof(STDataType) * newcapacity); assert(tmp); ps->a = tmp; ps->capacity = newcapacity; } ps->a[ps->top] = x; ps->top++; } 2.

【数据库】国产达梦数据库与mysql特点、区别、发展前景

国产达梦数据库与mysql的区别 国产达梦数据库(DM)和 MySQL 是两种不同的关系型数据库管理系统(RDBMS),它们有许多区别,包括特性、功能、性能、可用性、适用场景等。以下是它们之间的一些主要区别: 公司背景: MySQL:MySQL 最初由瑞典的 MySQL AB 公司开发,后来被 Sun Microsystems 收购,随后 Sun 被 Oracle 收购。MySQL 是一个开源项目,但由于 Oracle 的控制,有一些相关的开发方向和许可证变化。达梦数据库:达梦数据库是中国大陆的一种关系型数据库管理系统,由达梦软件公司(DmSoftware)开发。它是国内领先的数据库解决方案提供商之一,专注于企业级数据库系统的研发与服务。 开源性: MySQL:MySQL 是一个开源数据库,采用 GPL(通用公共许可证)或商业许可证。达梦数据库:达梦数据库是一个闭源商业产品,需要购买许可证使用。 功能和特性: MySQL:MySQL 提供了广泛的功能和特性,包括标准的 SQL 支持、存储过程、触发器、视图、复制、集群等。达梦数据库:达梦数据库也提供了类似的功能,同时还具有一些针对大型企业级应用的高级功能,如分区表、分布式数据库、高可用性等。 性能: MySQL:MySQL 在许多应用场景下具有良好的性能表现,尤其在 Web 应用程序中广泛应用。达梦数据库:达梦数据库在某些特定场景下可能具有更好的性能,尤其在处理大规模数据和高并发访问时。 生态系统和支持: MySQL:由于 MySQL 是一个开源项目,因此有一个庞大的社区支持,提供了丰富的文档、教程、插件等资源。同时也有许多第三方工具和服务与 MySQL 兼容。达梦数据库:达梦数据库的生态系统相对较小,但在国内拥有一定的用户群体和合作伙伴网络,提供相应的支持和服务。 总的来说,MySQL 是一个开源的、被广泛采用的关系型数据库管理系统,适用于各种规模的应用场景;而达梦数据库是一款商业闭源的数据库产品,具有一些特定的高级功能,适用于一些对性能和可用性有更高要求的企业级应用场景。选择哪种数据库取决于具体的需求、预算、技术栈以及对功能和性能的优先级。 国产达梦数据库介绍、发展前景 国产达梦数据库是中国大陆自主研发的企业级关系型数据库管理系统(RDBMS),由达梦软件公司(DmSoftware)开发。它旨在为企业级用户提供可靠、高性能、安全的数据库解决方案,并在国内企业级数据库市场中占据一定份额。 以下是国产达梦数据库的一些主要特点和功能: 高性能: 达梦数据库在处理大规模数据和高并发访问时具有优秀的性能表现,能够满足企业级应用的需求。 安全性: 提供了多层次的安全保障措施,包括权限管理、数据加密、安全审计等功能,保障用户数据的安全性和完整性。 可扩展性: 达梦数据库支持分布式数据库架构,能够灵活扩展以适应不断增长的数据规模和用户需求。 高可用性: 提供了高可用性解决方案,包括主备复制、自动故障转移、灾备备份等功能,确保数据库系统的稳定运行。 兼容性: 达梦数据库兼容 SQL 标准,并提供了丰富的 SQL 扩展功能,同时还支持多种编程语言和开发框架。 国产达梦数据库在中国国内具有一定的用户基础和市场份额,尤其在政府、金融、电信、制造等行业得到广泛应用。随着中国国内软件产业的发展和自主创新的推动,国产数据库产品也逐渐受到更多企业和机构的关注和认可。 未来,国产达梦数据库有望在中国国内数据库市场中继续发展壮大。随着数字化转型的加速推进,企业对数据库的性能、安全性和可靠性要求将更加严格,这为国产数据库产品提供了更广阔的发展空间。同时,国产达梦数据库还将面临来自国际竞争对手的挑战,需要不断提升产品技术水平和服务质量,以满足用户需求并保持竞争优势。 mysql数据库介绍、发展前景 MySQL 是一种开源的关系型数据库管理系统(RDBMS),广泛用于各种规模的应用中,从小型网站到大型企业应用都有涉及。以下是 MySQL 数据库的一些主要特点和发展前景: 开源性: MySQL 是一个开源项目,由瑞典的 MySQL AB 公司开发,并于 1995 年首次发布。目前由 Oracle 公司维护。其开源的特性使得用户可以免费获取并自由修改、分发 MySQL 的源代码,这为其在开发社区中获得了广泛的支持。

【JAVASE】带你了解面向对象三大特性之一(继承)

✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:再无B~U~G-CSDN博客 1.继承 1.1 为什么需要继承 Java 中使用类对现实世界中实体来进行描述,类经过实例化之后的产物对象,则可以用来表示现实中的实体,但是现实世界错综复杂,事物之间可能会存在一些关联,那在设计程序是就需要考虑。 比如: 狗和猫,它们都是一个动物 。 使用 Java 语言来进行描述,就会设计出: // Dog.java public class Dog{ string name; int age; float weight; public void eat(){ System.out.println(name + "正在吃饭"); } public void sleep(){ System.out.println(name + "正在睡觉"); } void Bark(){ System.out.println(name + "汪汪汪~~~"); } } // Cat.Java public class Cat{ string name; int age; float weight; public void eat(){ System.out.println(name + "正在吃饭"); } public void sleep() { System.out.println(name + "

【附源码】基于flask框架图书管理系统 (python+mysql+论文)

系统程序文件列表 系统的选题背景和意义 选题背景: 随着科技的不断发展,信息化管理已经成为了各个行业的重要工具。在图书管理领域,传统的手工管理方式已经无法满足现代化图书馆的需求。为了提高图书管理的效率和准确性,开发一个基于现代技术的图书管理系统变得尤为重要。本毕业设计题目旨在利用前端技术(HTML+CSS+JavaScript+Vue)和后端技术(Python+Flask)以及MySQL数据库,构建一个功能齐全、操作简便的图书管理系统,以满足图书馆的日常管理需求。 选题意义: 图书管理系统作为图书馆的核心管理工具,其重要性不言而喻。首先,一个高效、准确的图书管理系统可以提高图书馆的管理效率,减少人工操作的错误和繁琐性。通过自动化的借阅、归还、查询等功能,可以大大节省工作人员的时间和精力,提高工作效率。其次,图书管理系统可以提供丰富的数据统计和分析功能,帮助图书馆管理者了解图书的借阅情况、读者的阅读偏好等信息,从而更好地进行图书采购和管理决策。此外,一个用户友好的图书管理系统还可以提升读者的使用体验,方便读者进行图书查询、借阅和归还等操作。总之,开发一个功能完善、易于使用的图书管理系统对于提高图书馆管理水平、促进读者阅读活动具有重要意义。 综上所述,本毕业设计题目旨在开发一个基于现代技术的图书管理系统,以提高图书馆的管理效率和准确性,同时也为读者提供更好的使用体验。通过采用前端技术(HTML+CSS+JavaScript+Vue)和后端技术(Python+Flask)以及MySQL数据库,可以实现系统的功能设计和数据处理,使得整个系统具有较好的可扩展性和稳定性。在开发过程中,将使用VSCode作为开发工具,Navicat作为数据库管理工具,以实现系统的快速开发和调试。 以上选题背景和意义内容是根据本选题撰写,非本作品实际的选题背景、意义或功能。各位童鞋可参考用于写开题选题和意义内容切勿直接引用。本成品的实际功能和技术以下列内容为准。 系统部署环境: 开发环境方面,我们选择了PyCharm作为主要的集成开发环境(IDE)。PyCharm是一个强大的Python IDE,它提供了丰富的开发工具和插件支持,包括对Flask框架的友好支持。这有助于提高开发效率,优化代码结构,并确保代码质量。 前端部分,系统继续采用Vue.js框架。Vue.js是一个渐进式的JavaScript框架,它非常适合构建动态的用户界面。Vue.js的轻量级特性、简单的上手难度以及强大的响应式数据绑定机制,使得前端开发既灵活又高效。 后端框架方面,我们决定采用Flask框架。Flask是一个用Python编写的轻量级Web应用框架。它基于Werkzeug WSGI工具箱和Jinja2模板引擎,提供了一个易于理解和扩展的架构。Flask的简洁性和灵活性使其成为快速开发小型项目的理想选择,同时也能够扩展以支持更复杂的应用需求。 开发技术: 本系统采用Python语言,并基于Flask框架构建。Flask是一个轻量级的Web应用框架,它提供了一个简单而灵活的架构,允许开发者快速搭建和部署Web应用程序。Python版本为3.7.7,这是一个稳定且广泛支持的版本,确保了系统的兼容性和安全性。 数据库方面,选择了MySQL 5.7,这是一个成熟且功能丰富的关系型数据库管理系统,适用于处理大量数据和复杂的查询操作。特别强调的是,系统必须使用MySQL 5.7版本,以确保与特定功能和性能优化的兼容性。 在数据库管理工具的选择上,使用了Navicat 11,这是一个用户友好且功能强大的数据库管理软件,它支持多种数据库系统,包括MySQL,并提供了图形化界面,使得数据库的管理和维护工作更加便捷。 开发流程: 1.在Windows系统上安装Python 3.7.7并配置环境变量,使用pip安装Flask等依赖库。 2.使用PyCharm作为IDE,创建基于flask框架的项目,并搭建后端应用。 3.利用Vue.js框架进行前端开发,构建用户界面。 4.使用Navicat 11连接本地MySQL 5.7数据库,创建和维护数据模型。 5.通过win10进行本地测试,确保前后端功能正常交互。 程序界面: 源码文末获取↓↓↓↓:

【数据集处理】中国地面气候资料日值数据集(V3.0)(python)

提取txt文件中相同站点数据,将数据按文件顺序按列追加写入 Excel 中, Excel 文件名为站点编号 import os import pandas as pd # 定义目录和文件路径 directory = r'G:\EVP' output_directory = r'G:\datasets0' # 循环遍历目录下的所有文件 for filename in os.listdir(directory): if filename.endswith(".TXT"): file_path = os.path.join(directory, filename) # 读取文件的第一列数字编号 with open(file_path, 'r') as file: first_column = file.readline().strip().split()[0] # 假设编号在第一列并且以空格分隔 # 写入数据到 Excel output_filename = os.path.join(output_directory, f"{first_column}.xlsx") if os.path.exists(output_filename): # 如果文件已存在,则将数据追加到现有的Excel文件中 existing_data = pd.read_excel(output_filename) else: # 如果文件不存在,则创建新的Excel文件并写入数据 existing_data = pd.DataFrame() # 读取数据并写入 Excel with open(file_path, 'r') as file: lines = file.

微信小程序实战项目开发(天气预报项目实战):内涵开发说明文档、需求文档 && 手把手分步骤教你写出自己的小程序项目 && 天气预报小程序 && 时实请求获取天气 && 自定义功能 && 完整的源代码

文章目录 微信小程序开发实现天气预报 一、项目需求分析需求分析实现思路分析详解如下:1、创建项目、全局配置 json 文件2、在 wxml文件中完成布局3、wxss的实现美化效果颜色渐变效果:鼠标 hover 浮动阴影效果:圆角效果底部按钮button使用flex布局实现对天气信息采用分模块化的配色,同时添加了动画效果 4、业务逻辑的实现全部逻辑代码如下js代码分步介绍:获取天气详细信息模块将获取到的数据渲染到页面中: 二、完整代码实现1、wxml代码2、wxss代码3、js代码 4、效果图: 微信小程序开发实现天气预报 一、项目需求分析 需求分析 静态页面设计:要求界面美观 → 在wxss代码文件中对 wxml代码文件进行合理布局和美化,舒适的交互效果.功能逻辑完善:能够使用到 wx.request 请求接口实现天气预报查询的功能 主要使用到的技术栈如下: wxml:中使用了 picker 组件标签来完成了我们城市选择wxss:我们使用了简单的布局:background-image、动画效果等常用属性完成页面的美化app.json:该项目由于考虑到为一个页面,所以在全局配置文件中对页面的 window进行了配置,从而实现顶部的下拉、背景、文字和颜色的效果js:文件中我们主要的使用了 wx.request 方法请求和风天气的WebAPI 后端接口 实现了最直观的业务逻辑。 实现思路分析详解如下: 1、创建项目、全局配置 json 文件 创建小程序项目,使用JavaScript开发,这一点注意了即可。 项目创建成功后,我第一时间对 json 文件中的代码进行阅读和配置,这也是项目开发的第一步和后续操作防止出现问题的重要手段 代码如下: "window": { "navigationBarBackgroundColor": "#00FFFF", "navigationBarTextStyle": "black", "navigationBarTitleText": "WeatherQuery", "backgroundColor": "#00FA9A", "backgroundTextStyle": "light", "enablePullDownRefresh": true } 同时需要注意的是:pages配置值的时候注意我们天气页面的位置,需要放在第一个,否则会出现跑错的问题!(最好建议除非有多个页面,不然除了需要的直接删掉就好了)。 2、在 wxml文件中完成布局 实现代码如下: <view class="father_View_box"> <!-- 显示当前查询城市 --> <view class="at_present_query_city"> <text class="ar_present_hint_text">当前查询城市:</text> <text class="city_text">{{city}}</text> </view> <!

python中的print(f‘‘)具体用法

在Python中,print(f'') 是格式化字符串(f-string)的语法,它允许你在字符串中嵌入表达式,这些表达式在运行时会被其值所替换。f 或 F 前缀表示这是一个格式化字符串字面量。 在 f'' 或 F'' 中的大括号 {} 内,你可以放入任何有效的Python表达式。当 print 函数执行时,这些表达式会被求值,并且其结果会被插入到字符串的相应位置。 下面是一些使用 print(f'') 的例子: 例子 1:基本用法 name = "Alice" print(f"Hello, {name}!") # 输出:Hello, Alice! 例子 2:算术运算 x = 5 y = 10 print(f"The sum of {x} and {y} is {x + y}.") # 输出:The sum of 5 and 10 is 15. 例子 3:访问字典元素 person = {"name": "Bob", "age": 30} print(f"{person['name']} is {person['age']} years old.") # 输出:Bob is 30 years old.

Python函数(一):函数的声明、调用以及参数的使用

目录 为何要用到函数 函数的定义和调用 函数的参数 参数的传递 参数的类型 return语句 为何要用到函数 通常我们编写一段代码是为了实现特定的功能,比如想得到一段数字序列中的最大值、最小值和平均值并输出一个字典,编写一段代码如下: num = [96, 85, 69, 82, 52, 99, 72] max_num = max(num) #求解最大值 min_num = min(num) #求解最小值 mean_num = sum(num)/len(num) #求解平均值 dict1 = {'max': max_num, 'min': min_num, 'mean': "%.2f" % mean_num} print(dict1) #输出为{'max': 99, 'min': 52, 'mean': '79.29'} 但如果之后有多个列表需要进行以上操作,需要反复使用该段代码,让文件的语句量非常长,如果在编写大型程序的时候会更麻烦,显然我们更希望能用一行语句反复调用上述代码,这就需要用到函数。 函数的声明和调用 在python中,声明一个函数的格式如下: def 函数名(参数1, 参数2 ...): <函数体> 由此我们可以将上面的代码抽象成一个函数。 def function1(num): max_num = max(num) #求解最大值 min_num = min(num) #求解最小值 mean_num = sum(num)/len(num) #求解平均值 dict1 = {'max': max_num, 'min': min_num, 'mean': "

基于python豆瓣电影爬虫数据可视化分析推荐系统(完整系统源码+数据库+详细文档+论文+详细部署教程)

文章目录 基于python豆瓣电影爬虫数据可视化分析推荐系统(完整系统源码+数据库+详细文档+论文+详细部署教程)一、 选题背景二、研究目的三、开发技术介绍1、Django框架2、LDA3、机器学习推荐算法4、大数据爬虫5、大数据Echarts可视化 四、系统设计思想五、部分代码讲解六、系统实现七、源码文档等资料获取 基于python豆瓣电影爬虫数据可视化分析推荐系统(完整系统源码+数据库+详细文档+论文+详细部署教程) 摘要:本文介绍了一个基于大数据可视化的电影评论分析推荐系统,采用Python和Django构建。通过爬取豆瓣电影评论数据,利用数据清洗和处理技术,建立了一个全面的电影信息数据库。使用Python中强大的数据处理库进行统计分析,常见的一些库pandas/numpy/pyecharts/matplotlib/echarts等数据分析可视化工具,将结果以直观的可视化图表展示,深入挖掘用户对电影的评价与趋势。基于分析结果,我们设计了推荐算法,通过Django搭建的Web界面向用户推荐个性化的电影选择。该项目结合了大数据、数据可视化和机器学习推荐算法的技术,为电影爱好者提供了更智能、直观的电影推荐体验,展示了Python在构建复杂系统中的强大应用能力。 一、 选题背景 随着大数据技术的不断发展和普及,人们在日常生活中产生的数据量呈爆炸性增长。电影评论数据作为一种丰富的信息源,包含了观众对电影的各种评价和喜好。在这个信息爆炸的时代,如何从海量的电影评论中提炼有价值的信息,为用户提供更智能、个性化的电影推荐服务成为一个备受关注的问题。 本项目选取豆瓣作为数据源,结合Python和Django等先进技术,构建了一个综合性的豆瓣电影评论可视化分析推荐系统。通过对大规模评论数据的采集和处理,我们能够深入挖掘用户的观影趋势、口碑评价等信息。在这个基础上,利用数据可视化技术,以直观的图表和图形展示用户的观影偏好,为用户提供了更深入的电影分析服务。 该项目旨在结合大数据、可视化和推荐系统的技术优势,为电影爱好者提供一种全新的电影探索和选择方式,提升用户体验。通过对豆瓣电影评论数据的深度挖掘,我们能够更好地理解用户的需求,为他们提供更精准、个性化的电影推荐,推动了电影推荐系统的发展和创新。同时,项目的实施也展示了Python/Django等技术在构建复杂大数据系统中的卓越应用,为相关领域的研究和应用提供了有益的经验。 二、研究目的 1.深入挖掘电影评论数据: 通过构建基于Python/Django的豆瓣电影评论可视化分析推荐系统,旨在深入挖掘电影评论数据中蕴含的用户偏好、口碑评价等信息。通过对评论数据的系统性分析,揭示用户对电影的喜好和趋势。 2.构建全面的电影信息数据库: 通过爬取豆瓣电影评论数据,进行数据清洗和处理,构建一个全面而准确的电影信息数据库。该数据库将包含丰富的电影元数据,为系统提供充足的信息基础,支持后续的分析和推荐。 3.实现数据可视化展示: 利用Python中强大的数据处理和可视化库,将分析结果以直观的图表、图形展示给用户。通过直观的可视化展示,使用户更容易理解电影数据背后的信息,为用户提供更深入的电影分析服务。 4.设计智能化的电影推荐算法: 基于对电影评论数据的深度分析,设计智能化的推荐算法。通过考虑用户的历史喜好、观影习惯等因素,为用户提供个性化、精准的电影推荐服务,提升用户体验。 5.展示Python/Django在大数据应用中的优越性: 通过该项目的实施,展示Python和Django等先进技术在大数据应用中的卓越性能。强调这些技术在构建复杂系统、处理大规模数据时的高效性和可扩展性,为相关领域的研究和应用提供实用经验。 总体而言,研究旨在通过构建综合性的电影评论可视化分析推荐系统,挖掘电影评论数据的潜在价值,提升用户对电影的选择和理解体验,同时突显Python/Django等技术在大数据领域的应用前景。 三、开发技术介绍 1、Django框架 Django(发音为"jan-go")是一个高级的Python web框架,它鼓励快速开发和干净、可重用的设计。以下是Django框架的一些详细介绍: MVC 架构: Django 遵循经典的 Model-View-Controller(MVC)软件设计模式,但采用了稍微不同的结构。在Django中,这个模式被称为Model-View-Template(MVT)。Model(模型): 负责数据存储和检索。定义数据模型,通过对象关系映射(ORM)将数据模型映射到数据库表。View(视图): 处理用户请求,从模型中检索数据,并将数据传递给模板进行渲染。Template(模板): 定义如何呈现数据。Django模板系统使得在HTML中嵌套Python代码变得简单,支持动态生成内容。 ORM(对象关系映射): Django的ORM系统允许使用Python代码而不是SQL语句来定义和查询数据库模型。模型类(Model)是Django ORM的核心。通过定义模型类,可以在数据库中创建表,并通过模型类实例来执行数据库操作,而无需直接编写SQL语句。 自动化 Admin 界面: Django自带一个强大的自动生成管理后台的功能。通过简单地定义模型,可以得到一个功能齐全的管理界面,用于添加、编辑和删除数据库中的记录。这减少了开发人员为管理任务编写额外代码的需要,提高了开发效率。 表单处理: Django提供了用于处理表单的内置模块。这些表单可以用于在网站上收集用户输入,并在服务器端进行验证和处理。表单处理是构建用户交互的重要组成部分,而Django的表单系统使其变得简单而强大。 URL 映射: Django使用URL模式将URL映射到相应的视图函数。这使得URL的定义变得清晰,易于维护。URL映射是通过在项目的urls.py文件中定义URL模式来完成的,这样使得项目具有清晰的URL结构。 中间件: 中间件是Django处理请求和响应的钩子。它可以在请求到达视图之前或离开视图之后执行一些操作。例如,中间件可以用于身份验证、缓存、安全性等方面的处理,以便更好地组织和维护项目。 安全性: Django具有内置的安全功能,包括防止跨站脚本攻击(XSS)、跨站请求伪造(CSRF)和点击劫持等安全漏洞。框架通过提供安全性相关的库和设置,帮助开发者编写更安全的Web应用。 模块化: Django是一个模块化的框架,允许开发者使用或不使用框架的特定组件。这使得Django可以根据项目的需要灵活扩展和定制。 总体而言,Django是一个全功能的、高度可定制的Web框架,适用于各种规模的项目。它提供了一系列工具和功能,帮助开发者快速构建稳健、可扩展的Web应用程序。 2、LDA Latent Dirichlet Allocation(LDA)是一种用于主题建模的概率图模型。它是由David Blei、Andrew Ng和Michael Jordan在2003年提出的。LDA假设文档是由多个主题的混合生成的,而每个主题又是由多个单词的混合生成的。在LDA中,文档和主题都被看作潜在(latent)的变量,通过观察到的单词来推断它们的分布。 LDA模型的主要概念: 文档(Documents): LDA假设每个文档都是由多个主题的混合生成的。文档中的每个单词都是从某个主题中抽取得到的。主题(Topics): 主题是单词的分布。每个主题都可以被看作是一个概念或主题类别,它包含了文档中的一些单词。单词(Words): 文档中的每个单词都由某个主题生成的概率分布和在该主题下选择某个词的概率共同决定。Dirichlet分布: LDA使用了Dirichlet分布来建模文档-主题和主题-单词的分布。Dirichlet分布是一个多变量概率分布,常被用来建模多项分布的参数。 LDA模型生成文档的过程可以用以下步骤表示: 对于每个文档,从主题分布中抽取一个主题的概率分布。对于文档中的每个单词: 从上面抽取的主题分布中抽取一个主题。从该主题的单词分布中抽取一个单词。 LDA的学习过程通常使用EM算法或变分推断等方法,通过最大化似然函数来估计模型参数。

基于python机器学习算法的农作物产量可视化分析预测系统(完整系统源码+数据库+详细文档+论文+部署教程)

文章目录 基于python机器学习算法的农作物产量可视化分析预测系统一、项目简介二、开发环境三、项目技术四、功能结构五、功能实现模型构建封装类用于网格调参训练模型系统可视化数据请求接口模型评分 0.5*mse 六、系统实现七、总结 基于python机器学习算法的农作物产量可视化分析预测系统 一、项目简介 基于集成学习算法XGBoost农作物产量可视化分析预测系统,旨在帮助农民和相关从业者更好地预测农作物产量,以优化农业生产。该系统主要包括四个功能模块。 首先,农作物数据可视化模块利用Echarts、Ajax、Flask、PyMysql技术实现了可视化展示农作物产量相关数据的功能。 其次,产量预测模块使用pandas、numpy等技术,通过对气象和农作物产量关系数据集的分析和训练,实现了对农作物产量的预测功能。该模块可以对当前或未来某一时间段的农作物产量进行预测,并提供预测结果的可视化展示。 然后,用户登录与用户注册模块使用layui、Flask、PyMysql技术实现了用户登录和注册功能。用户可以通过登录系统后,利用该系统提供的预测和可视化功能,更好地规划和管理自己的农业生产。 最后,数据管理模块使用layui、Flask、PyMysql技术,实现了用户管理、公告管理和农作物数据管理等功能。系统管理员可以通过后台界面对用户信息、公告信息和农作物数据进行管理和维护,保证系统的正常运行和信息安全。 本系统的实现对农业生产的优化具有积极的意义。通过对气象和农作物产量关系数据的分析和训练,该系统可以帮助用户更好地了解不同作物产量随时间变化的趋势和规律,提高农作物的产量和品质,促进农业生产的可持续发展。 二、开发环境 开发环境版本/工具PYTHON3.x开发工具PyCharm2021操作系统Windows 10内存要求16GB浏览器Firefox数据库MySQL 8.0数据库工具Navicat Premium 15项目框架FLASK、layui 三、项目技术 后端:Flask、sklearn、PyMySQL、MySQL、urllib 前端:Jinja2、Jquery、Ajax、layui 四、功能结构 农作物产量大屏数据可视化模块:通过ECharts实现数据可视化,展示农作物产量的趋势、关联因素等。 机器学习预测农作物产量模型构建与训练:使用Scikit-learn、Pandas、NumPy构建机器学习模型,对农作物产量进行预测。 用户登录与注册:通过Flask、PyMySQL、LAYUI实现用户登录和注册功能。 系统后台管理模块: ​ 用户模块:管理用户信息,权限等。 ​ 公告模块:发布和管理系统相关公告信息。 ​ 农作物数据管理模块:存储和管理与农作物产量预测相关的数据集。 ​ 预测可视化后台交互:提供用户与预测数据的交互界面,使用Ajax请求后端数据接口展示数据可视化结果。 系统结构图 五、功能实现 模型构建 def model(X_data,y_label,testst,prediction): """模型搭建 """ global params_xgb #模型参数,设置全局变量便于调参 n_splits = 25 res = [] kf = KFold(n_splits = n_splits, shuffle=True, random_state=520) for i, (train_index, test_index) in enumerate(kf.split(X_data)): print('第{}次训练...'.format(i+1)) train_data = X_data.iloc[train_index] train_label = y_label.

【AI ChatDev】你当投资人,让AI帮你在几分钟内完成程序开发

最近,斯坦福大学教授吴恩达分享了一些他对Agent的看法。提到了Agentic Workflow。接着,提到了四种设计模式。 ReflectionTool usePlanningMulti-agent collaboration 在Multi-agent collaboration中,提到了ChatDev。今天,我们一起来看下ChatDev。 ChatDev的安装比较简单,详细步骤看下文。我们这里直接看使用效果。 简单的web登录功能 开发 我们想让ChatDev写一个简单的web登录功能,包含登录、登出、注册功能。 python run.py --name "demo" --task "写一个web界面,带有用户管理,login/logout/register功能的页面" 然后程序就开始运行了。。。 CEO,CPO,CTO相继出马给你干活。。。你是投资人,他们都是打工人。。。 需求分析,技术方案确定后,程序员开始写代码。。。 代码写完,审核。。。 循环几次,dev,review。。。 之后,软件测试。。。也是n轮。。。 顾问给意见。。。 CPO把用户手册都写了。。。 整个过程,5分钟,程序就开发完了。。。 运行 Error 程序写完了,试下,看看有没有问题。 发现了3个问题: 代码报错 原来是flask版本太老,更新至最新版本 RuntimeError: Working outside of application context. This typically means that you attempted to use functionality that needed the current application. To solve this, set up an application context with app.app_context(). See the documentation for more information. 代码报错,修改一下,搞定。