自由学习记录(5)

git命令行init仓库

mkdir的命令行使用

-pmkdir 命令中的一个选项,表示 "parent" ,意思是创建所有必要的父目录。如果使用 -p,即使父目录不存在,命令也会自动创建它们,而不会报错。

在 Git 中,git init 是一个非常重要的命令,用于创建一个新的 Git 仓库。它会在你指定的目录下初始化一个新的 Git 仓库,使其能够进行版本控制。

导航到你想要创建仓库的目录 。你可以使用 cd 命令来改变当前工作目录。

接着执行 git init 命令: git init

创建位置

  • 创建到当前目录执行 git init 的位置就是你希望创建仓库的目录 。在该目录下,你将看到++一个名为 .git 的隐藏文件夹。这个文件夹包含了 Git 用于管理版本控制的所有信息++。

聚合函数的运用

聚合函数常与 GROUP BY 一起使用,以便对特定分组的数据进行聚合计算。

sql 复制代码
SELECT department_id, AVG(salary)
FROM employees
GROUP BY department_id;

聚合函数可以与 HAVING 子句一起使用,以进一步过滤分组结果。

sql 复制代码
SELECT department_id, AVG(salary)
FROM employees
GROUP BY department_id
HAVING AVG(salary) > 5000;

聚合函数与 GROUP BY 的区别:

  • 不使用 GROUP BY
    • 聚合函数会把表中的所有行当作一个整体进行汇总,返回单个值。
  • 使用 GROUP BY
    • 聚合函数会按照指定的分组条件进行汇总,每个组返回一行结果。

如果你想在不使用 GROUP BY 的情况下显示多行聚合数据,有几种方法可以尝试实现:

使用 GROUP BY 对多个列进行分组时,SQL 会根据这些列的组合生成结果。具体来说,SQL 会将具有相同组合值的行聚集在一起,然后对每个组合执行聚合计算。

组合再分组如果Group by 有多个列

数据库练习

设置整个表变成临时表,括号里全部执行完,再加where约束,这样就可以

窗口函数的练习

select id,category,name,price from goods;

要用聚合函数的话,加over

语法

函数() over (partition by 该表中的字段 order by 通过partition分开后要拿哪个作为排序依据 ASC上往下升|DESC往下降)

语法二

函数() over 窗口名... Window 窗口名 as()

row_number()

主要用途:

  1. 分页 :可以通过 ROW_NUMBER() 给结果集编号,然后结合 LIMITOFFSET 实现分页。
  2. 去重:有时候需要根据某些列对重复行进行编号,并删除重复项。
  3. 数据排序:可以根据不同的列来为数据集创建排序后的编号。

示例:

假设有一个员工表 employees,想要给每个员工按照工资从高到低进行排序并编号:

sql 复制代码
SELECT 
    employee_id,
    first_name,
    salary,
    ROW_NUMBER() OVER (ORDER BY salary DESC) AS row_num
FROM 
    employees;

这个查询会按照工资从高到低给每个员工编号,ROW_NUMBER() 会根据 ORDER BY salary DESC 的规则生成行号。

和其他函数的区别:

  • ROW_NUMBER() 会为每一行生成一个唯一的编号,即使有相同值的行。
  • RANK() 会为相同值的行分配相同的编号,但跳过接下来的编号。
  • DENSE_RANK() 也为相同值的行分配相同的编号,但不会跳过编号。

聚合函数和窗口函数

ROW_NUMBER() 不是一个聚合函数,而是一个窗口函数。窗口函数与聚合函数不同之处在于,窗口函数不会将多行数据聚合成一行,而是为每一行生成相关的结果,例如行号、排名等。

聚合函数(如 SUM()COUNT() 等)会将多行数据合并成单一的值,而 ROW_NUMBER() 不会改变行数,它只是在结果集中为每一行生成一个唯一的行号。

ROW_NUMBER() 一定要配 OVER 使用吗?

  • 是的ROW_NUMBER() 必须配合 OVER 子句使用,因为 OVER 子句定义了窗口函数的"窗口",即如何分区和排序数据。你可以通过 OVER 子句指定如何排序或者分组结果集,来告诉 ROW_NUMBER() 如何为行生成行号。

可以在外面再加一个 ORDER BY 吗?

  • 可以的 ,你可以在外层查询中添加 ORDER BY 来对查询结果进行额外排序。ROW_NUMBER() 内部的 ORDER BY 是用来生成行号的,而外部的 ORDER BY 是用来对整个结果集进行排序的。

ROW_NUMBER() 在 MySQL 中,即使在 OVER()没有指定 ORDER BY ,它也不会报错。确实,它会直接在结果集中基于查询返回的原始顺序 加上行号。也就是说,虽然没有指定排序规则,ROW_NUMBER() 依然会为每一行生成递增的行号,但这些行号是根据数据的默认顺序生成的。

sql 复制代码
SELECT ROW_NUMBER() OVER(ORDER BY population ASC)AS 窗口编号,
id,NAME,POPUlation FROM city 
ORDER BY id;

over里有排序规则之后,窗口函数列全部生成好之后,如果自己没有额外的规定排序规则,会按照窗口函数的rownum排序

config

多用户环境的背景

  1. 不同用户的配置 :在一台计算机上,可能有多个开发者使用 Git。每个开发者可能需要使用不同的用户名和邮箱来进行提交。这时,全局配置 (global) 允许每个用户在自己的环境中设置这些信息,而不影响其他用户。

  2. 系统配置的角色 :系统配置 (system) 是由系统管理员设置的,影响所有用户和所有仓库。比如,如果你在一台共享服务器上工作,管理员可能会设置一些系统级别的配置,例如共享的 Git 服务器 URL 或默认的合并工具。

globalsystem 的关系

  • 优先级 :当用户在某个仓库中执行 Git 命令时,Git 会首先查找该仓库的 local 配置,如果没有,则查找 global 配置,再查找 system 配置。因此,global 配置不会为每个用户提供多个设置,但它可以为每个用户在自己的账户下设置。

  • 使用场景

    • Global:适用于个人用户设置所有仓库的默认值。例如,一个开发者可以在他们的用户环境中设置自己的用户名和邮箱,这样在所有的 Git 仓库中都会自动应用这些设置。
    • System:适用于需要管理员或系统级别设置的场景,通常不常修改。

系统管理员也可以为整个系统设置一些默认的配置,这些配置将被所有用户共享。

总结

在多用户环境中,global 配置是针对每个用户的 ,而 system 配置是针对整个系统的 。每个用户可以根据自己的需求设置 global 配置,而不必担心影响其他用户的设置。

1. Local Config

  • 作用 :设置当前仓库的用户名和邮箱,仅影响该特定的仓库
  • 位置.git/config 文件。

2. Global Config

  • 作用 :设置所有仓库的默认用户名和邮箱。对于同一个用户在不同仓库中工作时,使用全局配置可以避免重复设置
  • 位置 :用户主目录下的 .gitconfig 文件。

3. System Config

  • 作用:虽然它的作用是影响所有用户和所有仓库,但通常用于管理员或系统级别的设置。一般情况下,普通用户不需要频繁修改系统配置。
  • 位置 :系统的 Git 安装目录中的 etc/gitconfig 文件。

System 和 Global 的区别

  • 使用范围system 配置适用于系统中的所有用户,而 global 配置只影响当前用户的所有仓库。因此,虽然它们都可以设置默认值,但 system 是针对整个计算机的,而 global 是针对特定用户的。
  • 优先级 :如果在某个仓库中同时存在 localglobalsystem 配置,local 配置的优先级最高,其次是 global,最后是 system

在提交时识别出是谁的命令

1. 配置用户信息

查看你config了些什么git config --global --list

bash 复制代码
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
//输入你的用户名和邮箱

可以乱填吗?

  • 可以乱填 ,Git 本身不会限制你填写什么内容。无论你在 user.nameuser.email 中设置的是什么,Git 都会正常工作。这只是影响到你本地的提交记录,远程仓库可能会要求真实的邮箱和身份信息进行协作,但 Git 本身不会强制这些要求。

2. 设置默认编辑器

  • 你可以指定在 Git 操作中使用的默认文本编辑器,例如:

3. 配置别名

  • 可以为常用的 Git 命令设置简短别名,以提高效率:

4. 查看配置

  • 查看当前的 Git 配置,可以使用

5. 全局与局部配置

  • 使用 --global 参数设置的配置会应用到所有仓库,而不使用该参数时,设置只会应用于当前仓库。

Git

可以将已经添加到暂存区的更改取消回来。这个过程称为"从暂存区中移除",可以使用以下 Git 命令:

1. 从暂存区取消文件

  • 使用 git reset 命令可以将已添加到暂存区的文件移除。以下是基本用法:
bash 复制代码
git reset <file>

2. 取消所有文件的暂存

  • 如果你想取消所有已暂存的更改,可以使用:
bash 复制代码
git reset

3. 查看状态

  • 在执行取消操作之前,可以使用 git status 命令查看当前的工作区和暂存区状态。这可以帮助你确认哪些文件已暂存,以及你要取消哪些文件的暂存状态。

4. 恢复到最后一次提交

  • 如果你想要将工作区的修改也丢弃,可以使用:
bash 复制代码
git checkout -- <file>

为她乐就乐在这今朝

相关推荐
西岸行者5 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意5 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码5 天前
嵌入式学习路线
学习
毛小茛5 天前
计算机系统概论——校验码
学习
babe小鑫5 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms5 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下5 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。5 天前
2026.2.25监控学习
学习
im_AMBER5 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J5 天前
从“Hello World“ 开始 C++
c语言·c++·学习