SQL自学三部曲_Part3:关于SQL必须要知道的一切

news2024/10/6 13:25:26

文章目录

  • 一、关于SQL必须要知道的一切
    • (1)SQL是什么?
    • (2)你为什么要学SQL?
    • (3)SQL到底要学什么?
  • 二、 SQL学习的三个阶段
    • (1)理解运行原理,串联核心语句
    • (2)积累函数用法,刷题巩固提升
    • (3)拆解企业需求,复杂库表实战
    • 强调一点:一定要学会自己看报错Debug!!!
  • 三、数据架构基础知识
    • (1)服务器
    • (2)架构
    • (3)表格
    • (4)字段
    • (5)值得参考的代码规范
    • (6)SQL代码全局规则补充总结
    • (7)解题思路
  • 系列文章


一、关于SQL必须要知道的一切

(1)SQL是什么?

  • 一大能力
    • 可以对数据库发号施令,建立数据库并对其中的数据进行查询
  • 两大属性
    • 结构化
      • 全称Structured Query Language,也就是结构化查询语言。
      • 1、只能针对结构化数据进行处理,无法处理乱糟糟非结构化数据
        • 非结构化数据 在这里插入图片描述
        • 结构化数据 在这里插入图片描述
      • 2、语言有严格的语法结构和运行顺序(所以学起来非常简单)
        • 语法结构: select–from–where–group by–having–order by–limit
        • 运行顺序: from–where–group by–having–select–order by–limit
    • 标准化
      • 语法标准由ANSI美国国家标准化组织统一制定
      • 所有主流数据库都与ANSI标准相兼容,它们的关键语法都是相同的
        • 比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等

(2)你为什么要学SQL?

  • 普遍的职场要求
    • 数据化运营岗位有要求
    • 高级的产品岗位有要求
    • 更是数据分析师的必备技能
    • 总结
      • SQL作为你跟数据库对话的语言,想要直接从数据库取数,就绝对绕不开它
      • 而掌握SOL就意味着直接掌握企业数据库里的一手无限商机,是人才走向数据化并进行高效信息处理的分水岭
  • 提升效率的神器
    • 自己取数,省去需求排期
      • 在权限内,想看什么数据就看什么数据
    • 一键运行,代码处理数据
      • 将数据的处理过程标准化为代码,一键轻松运行,方便随意修改
    • 连接工具,自动产出报表
      • 直接连接数据库
      • 轻松获取任意数据
      • 自定义各种数据查询
      • 自动刷新各类报表
      • 进行各种高级分析

(3)SQL到底要学什么?

  • HiveSQL/Mysql/PostgreSQL等SQL语言,到底要学哪个?

    • HiveSQL/Mysql/PostgreSQL到底是个啥?
      他们本质上都是各有神通的数据库
      • 最经典的四个基础数据库
        • Mysql【万金油】
          • 采用最常用的标准SQL语言,同时体积小、速度快、开发和运维成本低,并且源码开放,一般中小型网站的开发都选择 MySQL 作为网站数据库。是最最常见的数据库,个人都可以轻松安装使用。
          • 但是它缺乏安全系统,同时不支持热备份,不适合作为大型商业公司的专业数据库。
        • Sql Server【微软生态内的王】
          • 性价比和易用性高,方便拓展,速度还快
          • 但是 SQL Server只能Windows系统上运行,兼容性差,并且由于微软完全重 写了SQL Server的代码,安全性还需要长期的测试
        • Oracle【高端专业】
          • 能在所有主流平台上运行(包括Windows),并且采用完全开放策略,完全支持所有工业标准,安全性极高,拓展、并行和速度性能都很好
          • 但是对硬件的要求高,价格贵,管理维护麻烦,操作比较复杂,需要的技术含量较高
        • PostgreSql【空数据上yyds】
          • 有最先进的开放源码的数据库系统,稳定性极强,能很好地应对崩溃、断电之类的灾难场景。同时性能高速度快,在GIS等地理类型数据的空间处理上首屈一指。
          • 但是需要定期维护和清理mvcc的多版本控制,分布式集群bug很多。并发上pg采用抢占资源的方式,如果有一个大的SOL在跑,可能就会阻塞其他的进程。扩容花费的时间很长(非常致命)。
        • 总结
          Mysql、Sql Server、Oracle、PostgreSql作为四大金刚在中小型公司较
          为常见,是判断一家企业数据实力的好方法。
      • 各家都会有的Hive
        • Hive是基于Hadoop (分布式系统框架,可以理解为Hive是APP,Hadoop是底层系统)的一个数据仓库工具。能将结构化的数据文件映射为一张数据库表,并提供SOL查询功能,实现【存储即查询】
        • 优点是学习成本低,可以通过SQL语句实现查询,可伸缩、可扩展、容错性能极高,可以轻松存储和处理PB以上的海量数据,是大数据存储的首选数据库
        • 缺点是不提供实时查询功能,只适合基于大量不可变数据的处理和分析,并且不优化的话查询速度极慢
        • 总结
          Hive是大多数企业走向大数据的毕竟之路,可以高性价比地存储和处理海量数据。
      • 大厂主流的Cloudera Impala和PrestoDB
        • Presto
          • FaceBook、美团、哈罗等大厂都在用
          • 优点是轻量快速,支持近乎实时的查询,扩展性(甚至能够跨数据源连表查询)和稳定性庸置疑,完全开源发展潜力大,并且文档完善。
          • 缺点是才刚发展十几年,实力还需要验证 (速度比Impala慢一点),非常吃
            内存和服务器资源
        • Impala
          • 金融等海量实时交易场景的主力数据库,阿里、百度等一线大厂都在用
          • 优点是轻量快速,支持近乎实时的查询,计算都在内存中完成,减少延迟和磁盘IO开销,性能极高(基于C++实现,是最快的数据库)
          • 缺点是零容忍查询失误,一错全错,同样非常吃内存和服务器资源
        • 总结
          Presto和Impala都是敏捷分析场景下的高级数据库,速度快,适合直接连接各类分析工具,并且进行实时监控与分析。但是很吃资源,小公司用不起,大公司也要省着用。
    • SQL语言为什么会有很多种?
      • 1、不同的数据库的技术原理不同
      • 2、为了适应各种特定场景,各家的数据库需要开发和定义一些特殊用法
      • 3、各家的部分语法在易用性上进行了升级和"优化”
    • 总结
      • 虽然各家开发的数据库为了适应各种特定场景,都有一些自己定义的特定用法
      • 但是,SQL有统一标准,各家的主要语法都完全相同,我们在初学阶段只要学习最为通用和标准的Mysql
      • 等到入职前或入职后再补充学习公司所用数据库的特定用法即可
        • 毕竟有这么多数据库,超人才能全部学完
          在这里插入图片描述
          在这里插入图片描述
  • 我要不要学习如何搭建数据库?

    • 数据分析师是数据的消费者,而不是创造者
      • 图书馆
        • 数据库
        • 数据
      • 出版社
        • 埋点数据的开发
      • 图书管理员
        • 运行和维护数据库的数据工程师/数仓
      • 研究员和读者
        • 数据分析师
    • 因此,SQL6个部分的语言,分析师只需要掌握数据查询语言,其他了解即可
      • 数据查询语言 (DQL:Data Query Language)
        • 其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DOL (也是所有SQL) 用得最多的动词,其他DOL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DOL保留字常与其它类型的SOL语句一起使用。
        • select–from–where–group by–having–order by–limit
      • 数据操作语言(DML: Data Manipulation Language)
        • 其语句包括动词INSERT、UPDATE和DELETE。它们分别用于添加、修改和删除。
      • 事务控制语言(TCL)
        • 它的语句能确保被DML语句影响的表的所有行及时得以更新。包括COMMIT (提交)命令、SAVEPOINT (保存点) 命令、ROLLBACK (回滚)命令
      • 数据控制语言(DCL)
        • 它的语句通过GRANT或REVOKE实现权限控制,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。
      • 数据定义语言 (DDL)
        • 其语句包括动词CREATE,ALTER和DROP。在数据库中创建新表或修改、删除表(CREAT TABLE 或DROP TABLE);为表加入索引等。
      • 指针控制语言(CCL)
        • 它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。
    • 但是,多懂一些数据库的知识(但不要求会做),会让你更有竞争力
      • 能让你知道怎么更好地提数据需求
        • 生产库
        • 数据湖 (Hive)
        • 数据中心(Presto/Impala/中间库)
        • BI或报表系统
      • 能让你知道问题出在哪
        • 埋点
        • 入库
        • 提取
        • 分析
      • 能让你能优化查询的速度
        • 从整体合理分配运算资源
  • SQL语句要掌握到什么程度?

    • 基础语法
      • select–from–where–group by–having–order by–limit
      • 表链接
      • 子查询
      • 重点是搞懂基础语法背后的SOL运行原理,知道数据库是如何对表格做操作的
    • 各类函数
      • 聚合函数、case when、窗口函数、substr()、replace()nullif()等等等等
      • 重点是不断地学习和积累,尝试新的函数用法
    • 经典组合
      • 日期偏移或窗口函数求同环比、case when做数据转置与透视表、使用数值做复杂的逻辑判断
      • 重点是理解分析需求,熟练掌握表格结构
    • 代码规范
      • 注意规范,多写注释,真的能救你一命

二、 SQL学习的三个阶段

(1)理解运行原理,串联核心语句

  • 学习目标
    • 熟练掌握核心语句的运行原理
      • 知道有哪些语句
      • 语句各自的功能和限制
      • 语句执行时的运行步骤
    • 哪怕多层嵌套也能应对明确的取数需求
  • 提升方法
    • 只学核心语句的运行原理
    • 先用Excel分步处理数据,再用SQL实现
    • 尽可能地在一次查询中练习多个核心语句
    • 尽可能做复杂的子查询嵌套、表连接、窗口函数

(2)积累函数用法,刷题巩固提升

  • 学习目标
    • 知道常用SOL常用函数的语法和功能
      • 数值处理函数
        • round(数值型字段,n) :对数值型字段取小数点后n位小数
          • n为正整数时,取小数点后n位小数
            • round(3141.592,2) = 3141.59
          • n为负整数时,取小数点前n位小数
            • round(3141.592,-2) = 3100
            • round(3151.592,-2) = 3200
            • 注意: round()是四舍五入,不是直接截取,截取用left
        • abs(数值型字段):取数值型字段的绝对值
          • abs(-666) = 666
        • coalesce(字段,数值):将字段中的null填充为默认数值
          • coalesce(expression1, expression2, … expression-n)
            • 表示如果第一个不为空取第一个,否则判断下一个,以此类推,如果全部为空,则返回null值
        • isnull(exper)
          • 判断exper是否为空,是则返回1,否则返回0
        • ifnull(exper1,exper2)
          • 判断exper1是否为空,是则用exper2代替
        • nullif(exper1,exper2)
          • 如果exprl=expr2成立,那么返回值为null,否则返回值为expr1
      • 数据类型转化
        • cast(字段 as 要转换成的数据类型)
          • cast(日期 as date)
          • 常用转化类型:date、text、int
          • Mysql所有数据类型:https://www.runoob.com/mysql/mysql-data-types.html
      • 字符处理函数
        • substring(字段,从第n位开始取,往后取m位)=mid()
          • 可以直接处理时间类型的数据
          • substring(‘MySQL LEFT’,7,4) = mid(‘MySQL LEFT’,7,4) = LEFT
        • left(字段,从左边一位开始往后取几位)、right()
          • left(‘MySQL LEFT’,5) = MYSQL
          • right(‘MySQL LEFT’,4) = LEFT
        • concat()
          • 连接括号内任意的字符串
          • 也可以直接处理时间类型的数据,因为时间类型的数据本质就是字符串
        • replace(字段,需要替换的字符,替换后的结果)
          • replace(abbc,‘bb’,‘cc’) = accc
        • substring_index()
          • substring_index(‘https://help.codingce.com’, ‘.’, -2) = codingce.com
        • ucase(需要大写的字段)
          • ucase(‘mysql’) = MYSQL
        • lcase(需要小写的字段)
          • lcase(‘MYSQL’) = mysql
        • len():返回某个文本字段的长度
          • length(‘Hello World’) = 11
        • position()可以获取某一字符在字符串中的位置
          • position(‘world’ in ‘Hello world’) = 7
      • 时间函数
        • 时间格式date_format
          • date_format() - 格式化某个字段的显示方式
          • MySQL时间数据的默认格式
            • https://www.w3school.com.cn/sql/func_date_format.asp
            • DATE - 格式:YYYY-MM-DD
            • DATETIME - 格式:YYYY-MMDD HH:MM:SS
            • TIMESTAMP - 格式:YYYYMM-DD HH:MM:SS
            • YEAR - 格式:YYYY或YY
          • date()month()year()
            • date():提取日期或日期/时间表达式的日期部分
            • month():取月份返回一个数字
            • year():取年份返回一个数字
          • now()curdate()curtime()
            • now():返回当前的日期和时间
            • curdate():返回当前的日期
            • curtime():返回当前的时间
        • 时间偏移date_add
          • date_add():在日期中添加或减去指定的时间间隔
          • date_add(date,interval n 时间单位):在日期往后偏移n个时间单位(可以为负数)
          • date_sub(date,interval n 时间单位):在日期往前偏移n个时间单位(可以为负数)
        • 时间差值datediff
          • datediff(date1,date2):函数返回两个日期之间的天数
            • SELECT DATEDIFF(‘2008-12-30’,‘2008-12-29’) AS DiffDate
            • 返回1
            • datediff取时间间隔 (秒、日、月、天)
          • timestampdiff(时间单位,开始时间,结束时间):返回结束时间和开始时间之间有多少个时间单位
            • timestampdiff(month,date1,date2):日期2和日期1之间相差几个月
            • timestampdiff(second,date1,date2):日期2和日期1之间相差多少秒
      • 逻辑函数
        • if(condition, value if true, value if false):单一条件判断
        • case when 条件1 then 数值1 when 条件2 then 数值2 else 数值3 end:多个条件判断
        • 逻辑函数的经典用法
          • 数值替换
          • 条件计算
          • 任意多选
          • 行列转置
    • 会搜索并学习和使用新函数
    • 能灵活使用函数进行各种数据处理
    • 可以脱离数据库,手撕代码
  • 提升方法
    • 把常用函数的写法都写3-5遍
    • 多刷题!多刷题!多刷题!有的题都刷一遍

(3)拆解企业需求,复杂库表实战

  • 学习目标
    • 能将需求转化为明确数据字段
    • 能独立梳理出数据字典
      • describe 数据库
      • 然后整理到自己的Excel字段中
      • 不断完善字段的定义和计算口径
    • 能独立完成宽表的制作
      • 将最常见的数据需求写成几段常用的SOL代码
      • 使用【with 临时表名as(查询语句)】创建临时表
        • 临时表相当于一段被提前运行的子查询
        • 运行结果可以通过临时表名,被用于后续的查询语句中
      • 使用【create view 视图名 as (查询语)】创建视图
        • 视图相当于一张永久的临时表,每次被查询时都会运行对应的查询语句
        • 视图本身是一张虚拟表,通过视图看到的数据存储在相应的数据库表中,视图本身不存储数据
        • 经常被使用的查询可以被定义为视图,可以简单地理解视图表就是一段查询代码的输出结果
        • 视图表显示的数据可以来自多个表,也可以来自视图
        • 可以对视图进行查询、修改和删除(select、insert、update、delete),同时相应的数据库表的数据也会发生变化
        • 通过视图,被授予该视图权限的用户只能查询和修改他们所见到的数据,用户可以被限制在数据的不同子集上,提升安全性
    • 积累复杂库表关系下的处理经验
    • 积累复杂场景下函数和语句的组合用法
  • 提升方法
    • 在企业级数据库中处理真实的数据需求
      • 快速复现同事的SQL代码
      • 最快速度围绕核心字段整理出数据字典
      • 制作几张宽表,解决最高频的取数需求
      • 随着业务发展,逐步补充关键字段
    • 自己主动发现数据需求,推进数据建设
      • 能输出价值后,提最少的数据需求
      • 最后,梳理指标体系推进数据建设

强调一点:一定要学会自己看报错Debug!!!

  • 不会Debug,不是懒,就是基本功不扎实
  • 不要害怕报错
  • 先检查基础语法、大小写、空格、书写错误
  • 先定位报错的位置linex
  • 认真翻译报错信息
  • 思考可能的报错原因(80%的报错都是因为语句用法不熟和粗心),排除粗心原因
  • 百度寻找对应解决方法
  • 加强积累,把你报错的过程和思路记录下来,巩固报错部分较为生疏的语法,很快你就能一眼知道报错原因,报错会越来越少

三、数据架构基础知识

在这里插入图片描述

(1)服务器

  • 数据库中一切数据和信息所存储的地方,可以理解为你的电脑硬盘
  • 服务器往往有对应的物理主机和访问地址,连接数据库时主机后面所填的就是访问地址

(2)架构

  • 服务器中具体的数据库,用于存储不同用途的表格,可以理解为电脑中的文件夹
  • 常见的架构有ods/edw/edw_s/ddm,他们各自有不同的储存特点。
    • ods (Operational Data Store):操作型数据仓库
      • 同步业务生产过程中的所有数据,比edw更加详细,冗余和复杂度也更高
    • edw (Enterprise Data Warehouse):企业数据库
      • 已处理完成并进行过汇总的,可供业务直接使用的企业数据库
    • edw_s:安全级别更高的企业数据库
      • 存储安全级别较高的敏感或机密数据,例如用户的身份证号、手机号、真实姓名
      • 加密性更高,一般需要独立授权
    • ddm (Distributed Database Middleware):局部数据库
      • 专门针对某个具体的应用或需求建设的局部数据库,只关心自己需要的数据。不会全盘考虑企业整体的数据架构和应用,每个应用都有自己的DM。所以DM可以基于仓库建设也可以独立建设。

(3)表格

  • 存在于不同架构中具体的数据表格,可以理解为文件夹中的Exce
  • 真实场景中“架构.表格”的形式存储表名更加方便跨数据库取数
  • 对表格使用默认统一的别名,更方便后续的代码移植 (用a b c的话还需要修改select后的字段前缀)

(4)字段

  • 表格中不同列,可以理解为Excel中的列
  • 拿到数据库权限后的第一件事就是整理自己的Dictionary,梳理常用的表格和字段含义
    在这里插入图片描述

(5)值得参考的代码规范

  • 只有select和from不换行,直接写成一行 在这里插入图片描述

  • 核心语句换行,join 连接表换行,on 连接键换行,多连接键也换行

  • where/having 多条件and/or 换行,单条件语句不换行,例如: between and、sif.branch in(‘上海分行’,‘北京分行’)

  • group by 后字段不换行,order by 后字段不换行

  • 括号内不加空格,函数的括号前不加空格,括号内不加空格,例如:(‘上海分行’,‘北京分行’)、sum(amount)

  • 运算符前后加空格: = 、>= 、<= 、> 、< 、!= 、- 、+

  • 含乘除的运算符前后不加空格:*、/、%
    在这里插入图片描述

  • select 后只有一个字段不换行,select 后的 * 算作一个字段来看

  • distinct 不换行,后面的字段大于一个,字段换行
    在这里插入图片描述

  • 子查询缩进-select后子查询,括号换行,子查询缩进在括号后,括号上下对齐
    在这里插入图片描述

  • 子查询缩进-from后子查询,括号换行,括号与from同一缩进,括号中的查询缩进在括号后
    在这里插入图片描述

  • 子查询缩进-from后两个子查询连接,join前后空行,保证两个被连接的子查询与 from和join 在同一缩进,括号上下对齐
    在这里插入图片描述

  • 子查询缩进-where后子查询,括号不换行,括号在in/运算符后,子查询缩进在括号
    在这里插入图片描述

  • union前后为完整查询语句,且需要前后空行,完整查询语句不需要括号
    在这里插入图片描述

  • 窗口函数不换行
    在这里插入图片描述

  • 函数嵌套,函数除了 case when 其余函数和函数的多重嵌套都写一行
    在这里插入图片描述

  • case when 函数,仅有一对when和then时,全部写一行
    在这里插入图片描述

  • case when 函数,when 后仅一个条件时,when 和 then 在同一行,若 when 后有多个条件时 then 换行,且前后的 then 都换行,保持代码块内格式统一

  • case when 函数,else 和 end 在同一行,case when 函数在本身有换行时,外面嵌套的函数,后半个括号要换行与前半个括号上下对齐
    在这里插入图片描述

  • case when 函数嵌套,then 换行与 when 对产
    在这里插入图片描述

  • with as 中间表,表名换行,括号换行,代码缩进在括号后,多个中间表时加空行区分
    在这里插入图片描述

  • 别名尽量统一缩进
    在这里插入图片描述

  • 代码结束处加;

    • 不同公司要求不一样,数据建设好的都不用,因为可以直接识别select
  • 多写注释

    • 单行注释:# 注释内容
    • 多行注释:/*注释内容*/
    • crtl+/:可以快捷注释整行

记住:多换行,多缩进

(6)SQL代码全局规则补充总结

  • 在阅读SQL代码和书写时,可以先从from和join语句看起,明确用了哪些表,然后看select查询和创建了哪些字段,接下来细致研究代码细节,最后看where的筛选逻辑
  • 在各个库中,表和字段别名尽量统一,方便代码移植,减少使用a,b来别名,别名要有含义
  • 命令和变量名称冲突时需要在变量两侧加``(在左上角~那)做区分,’ ’ (单引号在区分字符串时使用)," ”(已有单引号时用双引号包含单引号)
  • 表和变量名中不要出现空格,可使用下划线_替代

(7)解题思路

  1. 尽可能使用分步实现法,顺着题目一步步写
  2. 写SQL代码时应该尽量脱离数据库,在脑海里完成代码的组合和调试
  3. 遇到特别复杂的逻辑,一次查询无法解决,可以直接上子查询,然后再慢慢优化
  4. 遇到暂时想不清楚的地方,可以先搁置,最后基于其他步骤已成型的代码进行推导
  5. 实在不行就画图,或者用Excel表格先处理出来,再一步步用SQL实现
  6. 完成代码后一定要尽量优化自己的代码,这样逻辑才能越来越好
  7. 不断反复练习,最终能在读题时就在脑海里理清代码逻辑


系列文章

SQL自学三部曲_Part1:云端数据库配置&Excel/Tableau连接数据库
SQL自学三部曲_Part2:十大必学语法(一)
SQL自学三部曲_Part2:十大必学语法(二)
SQL自学三部曲_Part3:关于SQL必须要知道的一切

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

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

相关文章

基于IDEA创建Maven工程及注意事项

Java全能学习面试指南&#xff1a;https://javaxiaobear.cn 1. 概念梳理Maven工程的GAVP Maven工程相对之前的项目&#xff0c;多出一组gavp属性&#xff0c;gav需要我们在创建项目的时候指定&#xff0c;p有默认值&#xff0c;我们先行了解下这组属性的含义&#xff1a; Ma…

Apache Airflow (八) :DAG任务依赖设置

&#x1f3e1; 个人主页&#xff1a;IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 &#x1f6a9; 私聊博主&#xff1a;加入大数据技术讨论群聊&#xff0c;获取更多大数据资料。 &#x1f514; 博主个人B栈地址&#xff1a;豹哥教你大数据的个人空间-豹…

Django测试环境搭建及ORM查询(创建外键|跨表查询|双下划线查询 )

文章目录 一、表查询数据准备及测试环境搭建模型层前期准备测试环境搭建代码演示 二、ORM操作相关方法三、ORM常见的查询关键字四、ORM底层SQL语句五、双下划线查询数据查询&#xff08;双下划线&#xff09;双下划线小训练Django ORM __双下划线细解 六、ORM外键字段创建基础表…

JS进阶——作用域、解构、箭头函数

1、作用域 作用域&#xff08;scope&#xff09;规定了变量能够被访问的“范围”&#xff0c;离开了这个“范围”变量便不能被访问。 1.1 局部作用域 局部作用域可分为函数作用域和块作用域。 1.1.1 函数作用域 在函数内部声明的变量只能在函数内部被访问&#xff0c;外部无…

把jar包打到本地仓库然后上传到私服

1.首先把需要打成maven的包放到本地 2.然后本地配置maven的环境变量 没有配置的话可以看看下面这个&#xff0c;教程很详细 Windows系统配置maven环境_windows配置maven环境变量-CSDN博客 3.WinR cmd 输入如下的指令&#xff1a; mvn install:install-file -Dfile.\device…

汇川伺服【选型目录】

sv680旗舰&#xff1a; 编码器位数&#xff1a;26bit 电机额定转速&#xff1a;3000r【3k】圈脉冲&#xff1a; sv670标准&#xff1a; 编码器位数&#xff1a;23bit【台达B3:23bit&#xff0c;台达A2&#xff1a;bit】 电机额定转速&#xff1a;3000r【3k】圈脉冲&#xff1…

python科研绘图:帕累托图(Pareto chart)

目录 帕累托图基本构成 绘制帕累托图的步骤 帕累托图&#xff08;Pareto chart&#xff09;是将出现的质量问题和质量改进项目按照重要程度依次排列而采用的一种图表。以意大利经济学家V.Pareto的名字而命名的。帕累托图又叫排列图、主次图&#xff0c;是按照发生频率大小顺序…

ncbi-datasets-cli-高效便捷下载NCBI数据

文章目录 简介安装datasets download下载基因组/基因序列按照GCA list文件编号下载下载大基因组genome完整参数gene参数 datasets summary下载元数据dataformat将json转换成表格格式通过json文件解析其他字段问题 简介 NCBI Datasets 可以轻松从 NCBI 数据库中收集数据。使用命…

FISCOBCOS入门(十)Truffle自定义测试helloworld

在windos终端内安装truffle npm install -g truffle truffle --version 出现上图情况也没问题 下面就可以进行我们的操作了 创建一个文件truffle 创建一个空工程 truffle init 在contracts内加入HelloWorld合约 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; c…

瑞吉外卖Day05

1.新增套餐 service层 Service public class SetmealServiceImpl extends ServiceImpl<SetmealMapper, Setmeal> implements SetmealService {Autowiredprivate SetmealDishService setmealDishService;/*** 新增套餐&#xff0c;同时保存套餐和菜品的关系** param set…

【你哥电力电子】从耦合电感到变压器

从耦合电感到变压器 2023年7月12日 dk 文章目录 从耦合电感到变压器1. 耦合电感1.1 一个等效1.2 自感、互感与漏感1.3 耦合系数2. 变压器3. 其他模型的推导方法3.1 T型等效电路3.2 其他等效电路4. 小结下链1. 耦合电感 1.1 一个等效 通电导线的周围会产生磁场,磁场可以通过…

IntelliJ IDE 插件开发 |(一)快速入门

前言 IntelliJ IDEA 作为 Java 开发的首选 IDE&#xff0c;其强大、方便之处不必多说。不过&#xff0c;由于个人或者团队的个性化需求&#xff0c;我们或多或少会想对其功能进行拓展&#xff0c;这时就需要开发插件&#xff08;在 IntelliJ 平台下的所有 IDE 均可运行&#x…

SpringBoot配置数据库密码加密的方法

由于系统安全的考虑,配置文件中不能出现明文密码的问题,本文就给大家详细介绍下springboot配置数据库密码加密的方法,下面话不多说了,来一起看看详细的介绍吧,需要的朋友可以参考下 1.导入依赖 <!--数据库密码加密--> <dependency><groupId>com.github.uli…

Greek Alphabet Letters Symbols

Upper CaseLower CaseGreek Letter NameEnglish EquivalentSoundΑαAlphaa ΒβBetab ΓγGammag ΔδDeltad ΕεEpsilone ΖζZetaz ΗηEtah ΘθThetath ΙιIotai ΚκKappak ΛλLambdal ΜμMum ΝνNun ΞξXix ΟοOmicrono ΠπPip ΡρRhor Σσ,…

Apache SCXML2 RCE漏洞

文章目录 前言源码利用上传恶意xml文件构造payload搭建Apache服务器 远程RCE 前言 在做 [HDCTF 2023]BabyJxVx 遇到的知识点&#xff0c;但是没公网的服务器只能作罢&#xff0c;写下这篇文章记录 源码利用 public String Flag(RequestParam(required true) String filenam…

Leetcode刷题详解——扫雷游戏

1. 题目链接&#xff1a;529. 扫雷游戏 2. 题目描述&#xff1a; 让我们一起来玩扫雷游戏&#xff01; 给你一个大小为 m x n 二维字符矩阵 board &#xff0c;表示扫雷游戏的盘面&#xff0c;其中&#xff1a; M 代表一个 未挖出的 地雷&#xff0c;E 代表一个 未挖出的 空方…

基于django电影推荐系统

基于django电影推荐系统 摘要 该Django电影推荐系统是一个简单而基础的框架&#xff0c;旨在展示系统的基本组件。系统包括两个主要模型&#xff0c;即Movie和Rating&#xff0c;用于存储电影信息和用户评分。视图层包括展示电影列表和电影详情的功能&#xff0c;使用模板进行页…

linux高级篇基础理论二(详细文档、LAMP、SHELL、sed正则表达式)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。 ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xff1a;云计算技…

大数据架构Lambda-架构师(六十九)

随着信息时代技术的发展&#xff0c;数据量的快速增加逐渐飙升到了惊人的数量级别。并且数据的采集与处理技术还在更新加快。大数据中&#xff0c;结构化占比百分之15左右&#xff0c;其余百分之85都是非结构化数据&#xff0c;他们大量存在于社交网络、互联网和电子商务等领域…