SQL Server存储过程和触发器的使用
存储过程
(1)创建存储过程,使用Employees表中的员工人数来初始化一个局部变量,并调用这个存储过程。
1. Create PROCEDURE test @number1 int output --输出参数,可以从程序中返回信息
2. As
3. begin
4. Declare @number2 int
5. Set @number2=(Select COUNT(*) from Employees)
6. Set @number1=@number2
7. end
运行结果如下
执行该存储过程,并查看结果。
Declare @num int
EXEC test @num output
Select @num
运行结果如下
(2)创建存储过程,比较两个员工的实际收入,若前者比后者高就输出0,否则输出1。
1. Create PROCEDURE compa @id1 char(6),@id2 char(6),@bj int output
2. as
3. Begin
4. Declare @sr1 float, @sr2 float
5. Select @sr1=income-outcome from salary Where EmployeeID=@id1
6. Select @sr2=income-outcome from salary Where EmployeeID=@id2
7. If @sr1>@sr2
8. Set @bj=0
9. Else
10. Set @bj=1
11. end
12. GO
运行结果如下
(3)创建添加职员记录的存储过程EmployeeAdd。
Create PROCEDURE EmployeeAdd
(
@employeeid char(6),@name char(10),@education char(4), @birthday datetime,
@workyear tinyint,@sex bit,@address char(40), @phonenumber char(12),
@departmentID char(3))
As
Begin
Insert into employees
values(@employeeid,@name,@education,@birthday,@workyear,
@sex,@address,@phonenumber,@departmentID)
end
return
运行结果如下
(4)创建带output游标参数的存储过程,在employees中声明并打开一个游标。
Create PROCEDURE em_cursor @em_cursor cursor VARYING output
As
Begin Set @em_curcor=CURSOR forward_only static FOR Select * from Employees open @em_cursor
end
运行结果如下
声明一个局部游标变量,执行上述存储过程,并将游标赋值给局部游标变量,然后通过该游标变量读取记录
Declare @mycursor cursor
EXEC em_cursor @em_cursor=@mycursor output
Fetch next from @mycursor
While(@@FETCH_STATUS=0)
begin fetch next from @mycursor
end
close @mycursor
deallocate @mycursor
运行结果如下
(5)创建存储过程,使用游标确定一个员工的实际收入是否排在前三名。结果为1表示是,结果为0表示否。
Create PROCEDURE top_three @em_id char(6),@ok bit output
As
Begin Declare @x_em_id char(6) Declare @act_in int,@seq int Declare salary_ids cursor for Select EmployeeID,Income-Outcome from salary order by income-outcome desc Set @seq=0 Set @ok=0 open salary_ids fetch salary_ids into @x_em_id,@act_in While @seq<3 and @ok=0 begin Set @seq=@seq+1 if @x_em_id=@em_id Set @ok=1 fetch salary_ids into @x_em_id,@act_in end close salary_ids deallocate salary_ids
end
运行结果如下
执行该存储过程
Declare @ok bit
EXEC top_three '108991',@ok output
Select @ok
运行结果如下
要求一个员工的工作年份大于6时将其转移到经理办公室工作
1. Select * from dbo.Departments
2. Select * from dbo.Employees
3. Select * from dbo.Salary
4.
5. Create PROCEDURE que1 @id char(6)
6. as
7. Begin
8. Declare @workyear char(6),@dep_id char(3)
9. Select @workyear=workyear from Employees Where EmployeeID=@id
10. Select @dep_id=Departments.departmentID from employees,departments
11. Where employees.DepartmentID=departments.DepartmentID
12. and departmentName='经理办公室'
13. If @workyear>6
14. Update Employees Set departmentID=@dep_id Where EmployeeID=@id
15. end
根据每个员工的学历将收入提高500
1. Create Procedure que2 @id char(6)
2. As
3. Begin
4. Declare @education char(6)
5. Select @education=Education from Employees Where EmployeeID=@id
6. Update salary Set Income=income+500 Where EmployeeID=@id
7. end
使用游标计算本科及以上学历的员工在员工总数中占的比例
1. Declare @edu varchar(10),@part_count int,@all_count int
2. Declare mycursor cursor
3. for Select distinct education,count(education) over(partition by education)as part_count,
4. count(education) over() as all_count from Employees
5. open mycursor
6. fetch next from mycursor into @edu,@part_count,@all_count
7. While @@FETCH_STATUS=0
8. Begin
9. print @edu+'占总人数比例:'+convert(varchar(100),convert(numeric(38,2),@part_count/1.0/@all_count*100)+'%'
10. fetch next from mycursor into @edu,@part_count,@all_count
11. end
12. close mycursor
13. deallocate mycorsor
触发器
对于TGGL数据库,Employees表的DepartmentID列与Departments表的DepartmentID列应满足参照完整性规则。
- 向Employees表添加记录时,该记录的DepartmentID字段值在Departments表中应存在。
- 修改Departments表的DepartmentID字段值时,该字段在Employees表中的对应值也应修改。
- 删除Departments表的记录时,该记录的DepartmentID字段值在Employees表中对应的记录也应删除。
对于上述参照完整性规则,在此通过触发器实现。
(1)向Employees表插入一个记录时,通过触发器检查记录的DepartmentID在Departments中是否存在,不存在则取消插入或修改操作。
1. Create Trigger employeesIns on dbo.Employees
2. for insert,Update
3. as
4. Begin
5. IF((Select DepartmentID from inserted)not in
6. (Select DepartmentID from Departments))
7. Rollback
8. end
运行结果如下
(3)删除Departments中记录的同时删除Employees中DepartmentID对应记录.
Create Trigger DepartmentDelete on dbo.Departments for Delete as Begin Delete from Employees Where DepartmentID=(Select DepartmentID from deleted) end
运行结果如下
(4)创建Instead of触发器,当向salary中插入记录时,先检查EmployeeID列上的值在Employees中是否存在,如果存在则执行插入操作,如果不存在则提示“员工编号不存在”。
1. Create Trigger EM_EXISTS on salary
2. Instead of Insert
3. as
4. Begin
5. Declare @employeeID char(6)
6. Select @employeeID=EmployeeID from inserted
7. If (@employeeID in (Select EmployeeID from Employees))
8. Insert into salary Select * from inserted
9. Else
10. print '员工编号不存在'
11. end
运行结果如下
(5)创建DDL触发器,当删除数据库的一个表时,提示‘不能删除表’,并回滚删除表的操作。
Create Trigger table_delete on Database
After drop_table
as print '不能删除表' rollback transaction
运行结果如下
Employees与salary的EmployeeID应满足完整性规则,请用触发器实现两个表之间的参照完整性。
1. Create Trigger que1_1 on salary
2. for insert,update
3. as
4. Begin
5. If(Select employeeid from inserted)not in
6. (Select EmployeeID from Employees)
7. rollback
8. end
9. Create trigger que1_2 on Employees
10. for update
11. as
12. Begin
13. Update Salary Set zemployeeID=(Select Employeeid from inserted)
14. Where EmployeeID=(Select employeeid from deleted)
15. end
16.
17. Create Trigger que1_3 on Employees
18. for delete
19. as
20. Begin
21. Delete from salary
22. Where EmployeeID=(Select EmployeeID from deleted)
23. End
若将Employees中员工的工作时间增加到1年,则收入增加500,若增加两年则增加1000。
1. Create Trigger que2_1 on Employees
2. After update
3. as
4. Begin
5. Declare @a int,@b int
6. Set @a=(Select workyear from inserted)
7. Set @b=(Select workyear from deleted)
8. If (@a>@b)
9. update salary
10. Set income=income+(@a-@b)*500
11. Where EmployeeID in (Select EmployeeID from inserted)
12. End
创建UPdate触发器,当salary中income增加500时,outcome增加50。
1. Create Trigger que3_1 on salary
2. for update
3. as
4. Begin
5. If((Select income from inserted)-(Select income from deleted)=500)
6. Update salary Set outcome=outcome+50
7. Where EmployeeID=(Select EmployeeId from inserted)
8. end
创建instead of触发器,实现向不可更新视图插入数据。
1. Create VIEW a_view
2. as
3. Select a.EmployeeID,name,workyear,income,outcome from Employees a,salary b
4. Where Employees.employeeID=Salary.EmployeeID
5. Create Trigger que4_1 on a_view
6. Instead of insert
7. as
8. Begin
9. Declare @ei char(6),@name char(10),@wy tinyint,@ic float,@oc float
10. Select @ei=EmployeeID,@name=name,@wy=workyear,@ic=income,@oc=outcome
11. from inserted
12. insert into Employees(EmployeeID,name,workyear)values(@ei,@name,@wy)
13. insert into salary values(@ei,@ic,@oc)
14. end
创建DDl触发器,当删除数据库时,提示无法删除,并回滚删除操作。
1. Create Trigger que5_1 on all server
2. after drop_database
3. as
4. print '不能删除'
5. rollback transaction
6. drop database Hao
相关文章:
SQL Server存储过程和触发器的使用
存储过程 (1)创建存储过程,使用Employees表中的员工人数来初始化一个局部变量,并调用这个存储过程。 1. Create PROCEDURE test number1 int output --输出参数,可以从程序中返回信息 2. As 3. begin 4. D…...
Elastic 的 OpenTelemetry 分发版(EDOT)现已正式发布:开源、可用于生产环境的 OTel
作者:来自 Elastic Miguel Luna 及 Bahubali Shetti Elastic 自豪地宣布正式发布 Elastic OpenTelemetry 分发版(Elastic Distributions of OpenTelemetry - EDOT),其中包含 Elastic 自定义版本的 OpenTelemetry Collector 以及多…...
springMVC-Json交互处理
什么是JSON JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛。 采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也…...
MySQL中的索引
explain关键字, MySQL索引特性 索引的概念 MySQL 索引是一种用于提高数据库查询效率的数据结构 数据库表中存储的数据都是以记录为单位的,如果在查询数据时直接一条条遍历表中的数据记录,那么查询的时间复杂度将会是 O ( N )。索引的价值在…...
AI小白:JavaPython开发环境双轨制搭建指南
文章目录 1 Python深度学习环境配置1.1 Anaconda生态体系建设1.2 JupyterLab高效工作流魔法命令与可视化调试扩展插件配置指南 2 Java深度学习方案:DL4J实战2.1 企业级部署架构设计2.2 集成传统Java系统Spring Boot微服务封装模型性能优化技巧 1 Python深度学习环境…...
《比特城的机密邮件:加密、签名与防篡改的守护之战》
点击下面图片带您领略全新的嵌入式学习路线 🔥爆款热榜 88万阅读 1.6万收藏 第一章:风暴前的密令 比特城的议会大厅内,首席长老艾德文握着一卷足有半人高的羊皮纸,眉头紧锁。纸上是即将颁布的《新纪元法典》——这份文件不仅内…...
Redis之布隆过滤器
面试场景切入 针对于电话号码问题的痛点 布隆过滤器是什么? 由一个初值都为0的bit数组和多个哈希函数构成,用来快速判断集合中是否存在某个元素。 设计思想 本质就是判断具体数据是否存在于一个大的集合中。布隆过滤器是一种类似Set的数据结构&#…...
这是一份简单优雅的Prompt Engineering教程
Prompt Engineering(提示工程)是通过精心设计输入文本(prompt)来引导大型语言模型(LLM)生成更准确、相关且符合预期的输出的技术。其核心在于通过调整提问的措辞、结构、上下文和附加信息,优化模…...
Java基础 4.6
1.成员方法练习 //编写类A:判断一个数是奇数还是偶数,返回boolean //根据行、列、字符打印对应行数和列数的字符,比如:行4 列4 字符# 则打印相应的效果 public class MethodExercise01 {public static void main(String[] args) …...
DApp实战篇:前端技术栈一览
前言 在前面一系列内容中,我们由浅入深地了解了DApp的组成,从本小节开始我将带领大家如何完成一个完整的DApp。 本小节则先从前端开始。 前端技术栈 在前端开发者速入:DApp中的前端要干些什么?文中我说过,即便是在…...
C++中如何比较两个字符串的大小--compare()函数实现
一、现在有一个问题描述:有两个字符串,要按照字典顺序比较它们的大小(注意所有的小写字母都大于所有的大写字母 )。 二、代码 #include <bits/stdc.h> using namespace std;int main() {string str1 "apple";…...
c++中的auto关键字
在 C 中,auto 是一个类型推断关键字(C11 引入),允许编译器根据变量的初始化表达式自动推导其类型。它极大地简化了代码编写,尤其在涉及复杂类型或模板的场景中。以下是 auto 的详细说明: 1. 基本用法 1.1 …...
zk源码—1.数据节点与Watcher机制及权限二
大纲 1.ZooKeeper的数据模型、节点类型与应用 (1)数据模型之树形结构 (2)节点类型与特性(持久 临时 顺序 ) (3)节点的状态结构(各种zxid 各种version) (4)节点的版本(version cversion aversion) (5)使用ZooKeeper实现锁(悲观锁 乐观锁) 2.发布订阅模式࿱…...
交换机和集线器的区别
集线器(Hub)—— 大喇叭广播站 工作原理: 集线器像村里的“大喇叭”,收到任何消息都会广播给所有人。 比如A对B说“你好”,全村人(C、D、E)都能听到,但只有B会回…...
微服务系统记录
记录下曾经工作涉及到微服务的相关知识。 1. 架构设计与服务划分 关键内容 领域驱动设计(DDD): 利用领域模型和限界上下文(Bounded Context)拆分业务,明确服务边界。通过事件风暴(Event Storm…...
同花顺客户端公司财报抓取分析
目标客户端下载地址:https://ft.51ifind.com/index.php?c=index&a=download PC版本 主要难点在登陆,获取token中的 jgbsessid (每次重新登录这个字段都会立即失效,且有效期应该是15天的) 抓取jgbsessid 主要通过安装mitmproxy 使用 mitmdump + 下边的脚本实现监听接口…...
二叉树与红黑树核心知识点及面试重点
二叉树与红黑树核心知识点及面试重点 一、二叉树 (Binary Tree) 1. 基础概念 定义:每个节点最多有两个子节点(左子节点和右子节点) 术语: 根节点:最顶层的节点 叶子节点:没有子节点的节点 深度…...
Rocket-JWT鉴权
目录 一、概述 二、相关依赖 三、环境准备 3.1 创建项目 3.2 读取私钥信息 3.3 token数据负载 3.4 生成token 四、Web鉴权 4.1 验证载体 4.2 接收请求 五、总结 Welcome to Code Blocks blog 本篇文章主要介绍了 [Rocket-JWT鉴权] ❤博主广交技术好友,喜…...
2025 年网络安全终极指南
我们生活在一个科技已成为日常生活不可分割的一部分的时代。对数字世界的依赖性日益增强的也带来了更大的网络风险。 网络安全并不是IT专家的专属特权,而是所有用户的共同责任。通过简单的行动,我们可以保护我们的数据、隐私和财务,降低成为…...
横扫SQL面试——PV、UV问题
📊 横扫SQL面试:UV/PV问题 🌟 什么是UV/PV? 在数据领域,UV(Unique Visitor,独立访客) 和 PV(Page View,页面访问量) 是最基础也最重要的指标&…...
ctf-show-杂项签到题
下载文件,解压需要密码,用010打开没看出什么 然后用Advanced Archive Password Recovery暴力破解,发现没用 怀疑是伪解密,解压出来发现加密受损用随波逐流修复加密文件 打开修复的加密文件直接得flag flag:flag{79d…...
对解释器模式的理解
对解释器模式的理解 一、场景1、题目【[来源](https://kamacoder.com/problempage.php?pid1096)】1.1 题目描述1.2 输入描述1.3 输出描述1.4 输入示例1.5 输出示例 二、不采用解释器模式1、代码2、“缺点” 三、采用解释器模式1、代码2、“优点” 四、思考1、解释器模式的意义…...
高频面试题(含笔试高频算法整理)基本总结回顾64
干货分享,感谢您的阅读! (暂存篇---后续会删除,完整版和持续更新见高频面试题基本总结回顾(含笔试高频算法整理)) 备注:引用请标注出处,同时存在的问题请在相关博客留言…...
python入门之从安装python及vscode开始
本篇将解决三个问题: 1. 如何下载及安装官方python? 2. 如何下载及安装vscode? 3. 如何配置vscode的python环境? 一、python下载及安装 1.搜索python,找到官网并打开 2.找到download,按需选择版本下载 …...
OpenGL学习笔记(模型材质、光照贴图)
目录 光照与材质光照贴图漫反射贴图采样镜面光贴图 GitHub主页:https://github.com/sdpyy OpenGL学习仓库:https://github.com/sdpyy1/CppLearn/tree/main/OpenGLtree/main/OpenGL):https://github.com/sdpyy1/CppLearn/tree/main/OpenGL 光照与材质 在现实世界里&…...
视觉_transform
visual_transform 图像分块 (Patch Embedding) 假设输入图像为 x ∈ R ∗ H ∗ ∗ W ∗ ∗ C ∗ x∈R^{*H**W**C*} x∈R∗H∗∗W∗∗C∗ C 是图像的通道数(例如,RGB图像的 C3) 将图像分割成N个大小为P*CP的patch,每个patch的大…...
Redis的安装及通用命令
二. Redis 的安装及通用命令 1. Ubuntu 安装 Redis (1) 切换到 root 用户: su root(2) 搜索 Redis 软件包 apt search redis(3) 安装 Redis apt install redis(4) 查看 Redis netstat -anp | grep redis(5) 切换到 Redis 目录下 cd /etc/redis/(6) 修改 Redis 配置文件:…...
Python 实现的运筹优化系统代码详解(0-1规划背包问题)
一、引言 在数学建模与实际决策场景的交织领域中,诸多复杂问题亟待高效且精准的解决方案。0-1 规划作为一种特殊且极为重要的优化方法,宛如一把万能钥匙,能够巧妙开启众多棘手问题的解决之门。它专注于处理决策变量仅能取 0 或 1 这两种极端状…...
护网蓝初面试题
《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇网安资料库https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247486065&idx2&snb30ade8200e842743339d428f414475e&chksmc0e4732df793fa3bf39…...
音视频学习(三十二):VP8和VP9
VP8 简介 全称:Video Processing 8发布者:原 On2 Technologies(2010 被 Google 收购)定位:开源视频压缩标准,主要竞争对手是 H.264应用: WebRTC 视频通信HTML5 <video> 标签(…...
美国mlb与韩国mlb的关系·棒球9号位
MLB(Major League Baseball,美国职业棒球大联盟)作为全球最高水平的职业棒球联赛,与韩国市场流行的“MLB”时尚品牌之间存在着授权合作关系,但两者在业务范畴和品牌定位上存在显著差异。 一、品牌授权背景:…...
免费在线PUA测试工具:识别情感操控,守护情感健康
免费在线PUA测试工具:识别情感操控,守护情感健康 你是否曾经在感情中感到困惑、不安,甚至怀疑自己?今天为大家推荐一个专业的PUA测试工具,帮助你识别是否正在经历情感操控。 测试工具链接:PUA测试工具 什么…...
nginx中的try_files指令
try_files 是 Nginx 中一个非常有用的指令,用于按顺序检查文件是否存在,并返回第一个找到的文件。如果所有指定的文件都不存在,则执行回退逻辑,如重定向到一个指定的 URI 或返回一个错误代码。 作用 文件查找:按顺序检…...
[特殊字符] 驱动开发硬核特训 · Day 4
主题:从硬件总线到驱动控制 —— I2C 协议与传感器驱动开发全解析 I2C(Inter-Integrated Circuit)总线是一种广泛用于嵌入式设备的串行通信协议,因其低成本、简单布线和多从设备支持,成为连接各种传感器(温…...
Python 实现玻璃期货数据处理、入库与分析:从代码到应用
Python 实现期货数据处理与分析:从代码到应用 引言 在金融市场中,期货数据的处理和分析对于投资者和分析师来说至关重要。Python 凭借其丰富的库和简洁的语法,成为了处理和分析期货数据的强大工具。本文将详细解读一段用于处理期货持仓和行…...
神经网络之损失函数
引言:损失函数 (Loss Function)是机器学习和深度学习中非常重要的一个概念。用于衡量模型的预测值与真实值之间的差异,从而指导模型优化其参数以最小化这种差异。 一、损失函数作用 量化误差:损失函数是将预测值和真实…...
在Ubuntu内网环境中为Gogs配置HTTPS访问(通过Apache反向代理使用IP地址)
一、准备工作 确保已安装Gogs并运行在HTTP模式(默认端口3000) 确认服务器内网IP地址(如192.168.1.100) 二、安装Apache和必要模块 sudo apt update sudo apt install apache2 -y sudo a2enmod ssl proxy proxy_http rewrite headers 三、创建SSL证书 1. 创建证书存储目录…...
printf
printf() 是 C 和 C 标准库中的一个输出函数,位于 <cstdio> 头文件中。下面为你详细介绍它的相关知识点。 1. 基本使用 printf() 函数的作用是按照指定格式将数据输出到标准输出设备(通常是控制台)。其基本语法如下: cpp …...
Leetcode 311 Sparse Matrix Multiplication 稀疏矩阵相乘
Problem Given two sparse matrices A and B, return the result of AB. You may assume that A’s column number is equal to B’s row number. Example: A [[ 1, 0, 0],[-1, 0, 3] ]B [[ 7, 0, 0 ],[ 0, 0, 0 ],[ 0, 0, 1 ] ]| 1 0 0 | | 7 0 0 | | 7 0 0 | AB …...
mysql和sqlite关于data数据的识别问题
<input type"date" name"birthday" value""> # 表单传入的日期 birthday request.form.get(birthday) # 获取日期 birthday Column(birthday, Date, comment出生日期, nullableTrue) # 数据库的数据字段模型 birthday_str request…...
2024 天梯赛——工业园区建设题解
思路 将点 i i i 视为固定点, 点 j j j 视为灵活点,其中 s i 1 s_{i} 1 si1, s j 0 s_{j} 0 sj0。维护四个队列,其中 q 0 q_{0} q0 和 q 1 q_{1} q1 分别维护还没有被选用的固定点 和 灵活点, Q 0 Q…...
亚马逊AI新功能上线:5大亮点解锁精准消费预测
在人工智能技术不断重塑跨境电商生态之际,全球电商巨头亚马逊(Amazon)再次迈出关键一步。近日,亚马逊正式对其卖家中心推出一系列基于AI的新功能,聚焦于消费数据预测、用户行为洞察、库存智能管理与个性化营销服务等方…...
opus+ffmpeg+c++实现录音
说明: opusffmpegc实现录音 效果图: step1:C:\Users\wangrusheng\source\repos\WindowsProject1\WindowsProject1\WindowsProject1.cpp // WindowsProject1.cpp : 定义应用程序的入口点。 //#include "framework.h" #include "Windows…...
ComfyUI的本地私有化部署使用Stable Diffusion文生图
什么是ComfyUI ? ComfyUI是一个基于节点流程的Stable Diffusion操作界面。以下是关于它的详细介绍: 特点与优势 高度可定制:提供丰富的节点类型,涵盖文本处理、图像处理、模型推理等功能。用户可根据需求自由组合节点࿰…...
【学习笔记17】Windows环境下安装RabbitMQ
一. 下载RabbitMQ( 需要按照 Erlang/OTP 环境的版本依赖来下载) (1) 先去 RabbitMQ 官网,查看 RabbitMQ 需要的 Erlang 支持:https://www.rabbitmq.com/ 进入官网,在 Docs -> Install and Upgrade -> Erlang V…...
【LeetCode 热题100】55:跳跃游戏(详细解析)(Go语言版)
🚀 LeetCode 热题 55:跳跃游戏(Jump Game)完整解析 📌 题目描述 给定一个非负整数数组 nums,你最初位于数组的第一个下标。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一…...
OpenCV轮廓检测全面解析:从基础到高级应用
一、概述 轮廓检测是计算机视觉中的基础技术,用于识别和提取图像中物体的边界。与边缘检测不同,轮廓检测更关注将边缘像素连接成有意义的整体,形成封闭的边界。 轮廓检测的核心价值 - 物体识别:通过轮廓可以识别图像中的独立物体…...
微服务入门:Spring Boot 初学者指南
大家好,这里是架构资源栈!点击上方关注,添加“星标”,一起学习大厂前沿架构! 微服务因其灵活性、可扩展性和易于维护性而成为现代软件架构的重要组成部分。在本博客中,我们将探讨如何使用 Spring Boot 构建…...
Windows环境下开发pyspark程序
Windows环境下开发pyspark程序 一、环境准备 1.1. Anaconda/Miniconda(Python环境) 如果不怕包的版本管理混乱,可以直接使用已有的Python环境。 需要安装anaconda/miniconda(python3.8版本以上):Anaconda…...
嵌入式学习笔记——大小端及跳转到绝对地址
大小端以及跳转到绝对地址 0x100000 嵌入式编程中的大小端详解一、大端模式与小端模式二、判断当前系统是大端还是小端方法一:指针强制类型转换方法二:使用联合体(union) 三、结构体位段和大小端的影响四、大小端影响内存的 memc…...