SQL 基础教程

主键原则 不使用业务相关的数据作为主键 没有必要的情况下,我们尽量不使用联合主键,因为它给关系表带来了复杂度的上升 外键原则 不用外键约束,用程序逻辑做外键关联 关系 一对多 class 表 id name 1 class1 2 class2 student 表 id name class_id 1 zhangsan 1 2 lisi 2 3 wangwu 2 多对多 class 表 id name 1 class1 2 class2 teacher 表 id name 1 teacher-Wang 2 teacher-Zhang 3 teacher-Li class_student 表 id class_id teacher_id 1 1 1 2 1 2 3 2 1 4 2 3 一对一 也可以用一张大表 拆成两张表,可以把不经常查的内容区分开来 索引 定义 索引是关系数据库中对某一列或多个列的值进行预排序的数据结构。...

February 26, 2026 · 3 min · 496 words · Jachy

TCP/IP 四层模型详解

TCP/IP 模型是互联网的基础协议模型,它将网络通信分为四个层次,每个层次负责特定的功能。从下到上依次为: 1. 链路层(Link Layer) 功能:负责在物理介质上传输数据帧。 任务:与 OSI 模型中的物理层和数据链路层相对应,负责将数据封装成帧,并进行错误检测和纠正。 示例:以太网、无线局域网。 常用命令 命令 用途 示例 ifconfig 或 ip 查看和配置网络接口 ifconfig 或 ip addr show arp 查看和管理 ARP 表 arp -a ethtool 查看和设置以太网设备参数 ethtool eth0 2. 网络层(Internet Layer) 功能:负责将数据包从源节点传输到目标节点。 任务:提供逻辑地址(如 IP 地址),实现数据包的分段和重组。 示例:IP 协议。 常用命令 命令 用途 示例 ping 测试主机之间的连通性 ping 8.8.8.8 traceroute 或 tracepath 显示数据包到达目标主机的路径 traceroute 8.8.8.8 route 或 netstat -r 查看和管理路由表 route -n 或 netstat -nr 3. 传输层(Transport Layer) 功能:负责端到端的可靠数据传输。...

July 7, 2025 · 1 min · 145 words · Jachy

Cron 定时任务详解

Cron 表达式格式 * * * * * * - - - - - - | | | | | | | | | | | +----- day of week (0 - 6) (Sunday=0 or 7) | | | | +------- month (1 - 12) | | | +--------- day of month (1 - 31) | | +----------- hour (0 - 23) | +------------- minute (0 - 59) +--------------- second (0 - 59) 字段说明 位置 字段 范围 1 秒 0 - 59 2 分 0 - 59 3 时 0 - 23 4 日 1 - 31 5 月 1 - 12 或 JAN-DEC 6 星期 0 - 6 或 SUN-SAT(0 和 7 都代表星期天) 7 年(可选) 留空或 1970 - 2099 特殊字符 字符 说明 * 表示任何时间,或者任何值 - 表示一个范围 , 表示一个列表中的值或值范围的分隔符 / 表示起始时间开始触发,然后每隔固定时间触发一次 示例 表达式 说明 0 0 12 * * 每天的中午 12 点触发 15 10 * * * 每天的上午 10 点 15 触发 0 0/5 14 * * 每天的 14 点开始,每 5 分钟触发一次,直到 14:55 0 0 1,15 * * 每月的 1 日和 15 日的午夜 12 点触发 0 0 1 * * sun 每个星期天的午夜 12 点触发 Cron 表达式非常灵活,可以用来创建各种复杂的时间调度规则。

May 11, 2024 · 1 min · 185 words · Jachy

Makefile 入门

基本语法 声明变量:xxx=xxx 声明命令:xxx: 不输出:前面加个 @ 示例 VERSION=0.0.1 install: ## 安装依赖 go mod tidy installSlient: ## 安装依赖,不输出 @go mod tidy list: ## 显示全部依赖 go list -m all local-list: ## 显示本地依赖 go list cmdb/... ver: ## 打印版本 echo $(VERSION) 常用技巧 使用 ## 添加注释 使用 $(变量名) 引用变量 使用 @ 静音执行命令

November 20, 2023 · 1 min · 47 words · Jachy

加密算法入门

目录 对称加密 非对称加密 哈希算法 对称加密 特点: 加密过程每一步可逆 加密/解密用同一组密钥 异或是最简单的对称加密算法 异或运算:按位异或运算符 ^ 是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为 1。 如: var a, key = 2, 1 var b = a ^ key fmt.Printf("a: %b, key: %b, b: %b\n", a, key, b) // a: 10, key: 01, b: 11 DES 数据加密标准 DES(Data Encryption Standard)数据加密标准,是目前最为流行的加密算法之一,密钥是 64 位。 对原始数据(明文)进行分组,每组 64 位,最后一组不足 64 位时,按一定规则补充 对每组进行 DES 运算 AES 加密方式 AES(Advanced Encryption Standard)高级加密标准,旨在取代 DES。 非对称加密 特点: 使用公钥加密,使用私钥解密 公钥和私钥不同 公钥可以公布给所有人 私钥只有自己保存 相比于对称加密,运算速度非常慢 RSA 加密方式 RSA 三个字母取自三个创始人名字。...

November 20, 2023 · 1 min · 111 words · Jachy