<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>期末救急 on RunicDolphin806</title>
        <link>https://rd806.github.io/categories/final_test/</link>
        <description>Recent content in 期末救急 on RunicDolphin806</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <copyright>RunicDolphin806</copyright>
        <lastBuildDate>Sun, 15 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://rd806.github.io/categories/final_test/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>形式化方法</title>
        <link>https://rd806.github.io/passage/software/formal_methods/</link>
        <pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate>
        
        <guid>https://rd806.github.io/passage/software/formal_methods/</guid>
        <description>&lt;h2 id=&#34;集合论&#34;&gt;集合论
&lt;/h2&gt;&lt;p&gt;集合是一个无顺序的结构，包含 $0$ 个或多个对象。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;常用的集合&lt;/th&gt;
          &lt;th&gt;描述&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;$\textbf{N}$&lt;/td&gt;
          &lt;td&gt;自然数集：$\textbf{N} = \{ 0, 1, 2, \cdots \}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$\textbf{Z}$&lt;/td&gt;
          &lt;td&gt;整数集：$\textbf{Z} = \{\cdots, -2, -1, 0, 1, 2, \cdots\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$\textbf{R}$&lt;/td&gt;
          &lt;td&gt;实数集&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$\oslash$&lt;/td&gt;
          &lt;td&gt;空集：$\oslash = \{\} = \{x \mid \textbf{False}\}$ &lt;br&gt; 也可表示为： $\lnot\ \exist\ x : x \in \oslash$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;集合间的运算&#34;&gt;集合间的运算
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;运算&lt;/th&gt;
          &lt;th&gt;含义&lt;/th&gt;
          &lt;th&gt;表达式&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;$$S \subset T$$&lt;/td&gt;
          &lt;td&gt;集合 $S$ 是 $T$ 的真子集&lt;/td&gt;
          &lt;td&gt;$S \subseteq T$ 但是 $T \nsubseteq S$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$|S|$&lt;/td&gt;
          &lt;td&gt;集合 $S$ 中元素的个数&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$$A \cup B$$&lt;/td&gt;
          &lt;td&gt;集合 $A$ 与 $B$ 的并集&lt;/td&gt;
          &lt;td&gt;$A \cup B = \{x \mid x \in A \lor x \in B\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$$A \cap B$$&lt;/td&gt;
          &lt;td&gt;集合 $A$ 与 $B$ 的交集&lt;/td&gt;
          &lt;td&gt;$A \cap B = \{x \mid x \in A \land x \in B\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$$A - B$$&lt;/td&gt;
          &lt;td&gt;集合 $A$ 与 $B$ 的差，在集合 $A$ 但不在集合 $B$ 中的元素&lt;/td&gt;
          &lt;td&gt;$$A - B = \{x \mid x \in A \land x \notin B\} = \{x \mid \lnot(x \in A \to x \in B)\}$$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$$\overline{A}$$&lt;/td&gt;
          &lt;td&gt;集合 $A$ 相对于全集 $U$ 的补集&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$$A \oplus B$$&lt;/td&gt;
          &lt;td&gt;集合 $A$ 与 $B$ 的对称差&lt;/td&gt;
          &lt;td&gt;在集合 $A$ 和 $B$ 但不在其交集的元素&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;


&lt;blockquote class=&#34;alert alert-note&#34;&gt;
    &lt;p&gt;集合内的元素也可以是集合，例如 $S = \{ x | x \subseteq \{1, 2, 3\} \} = \{\oslash, \{1\}, \{2\}, \{3\}, \{1,2\}, \{1,3\}, \{2,3\}, \{1,2,3\}\}$&lt;/p&gt;
&lt;p&gt;注意：$1 \ne \{1\} \ne \{\{1\}\}$&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;特别地，若 $A \cap B = \oslash$，则称集合 $A$ 和 $B$ 不连接（disjoint）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;幂集&#34;&gt;幂集
&lt;/h3&gt;&lt;p&gt;集合 $S$ 的所有子集称作集合 $S$ 的幂集，记作 $P(S) = \{x \mid  x \subseteq S\}$。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;例如，$P(\{a,b\}) = \{\oslash, \{a\}, \{b\}, \{a,b\}\}$&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;我们有以下结论：$\mid P(S) \mid = 2^{\mid S \mid}$&lt;/p&gt;
&lt;h3 id=&#34;笛卡尔积&#34;&gt;笛卡尔积
&lt;/h3&gt;&lt;p&gt;定义 $A \times B :\equiv \{(a,b) \mid a \in A \land b \in B\}$ 为集合 $A$ 与 $B$ 的笛卡尔积。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;例如，$\{a,b\} \times \{1,2\} = \{(a,1), (a,2), (b,1), (b,2)\}$&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;具有以下结论：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;$|A \times B| = |A| \cdot |B|$。&lt;/li&gt;
&lt;li&gt;$\lnot \forall AB: A \times B = B \times A$，即笛卡尔积不具备交换律。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;集合间的关系&#34;&gt;集合间的关系
&lt;/h3&gt;&lt;p&gt;集合 $A$ 与 $B$ 之间的关系 $R$ 是 $A \times B$ 的一个子集，记作：$R: A \leftrightarrow B$&lt;/p&gt;
&lt;p&gt;通常，我们用 $aRb$ 表示 $(a,b) \in R$，即元素 $a$ 与 $b$ 具备关系 $R$。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;常见的关系&lt;/th&gt;
          &lt;th&gt;表示&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;空关系&lt;/td&gt;
          &lt;td&gt;$\oslash$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;恒等关系&lt;/td&gt;
          &lt;td&gt;$\mathrm{i}d_A : \{(a,a) \mid (a \in A)\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;逆关系&lt;/td&gt;
          &lt;td&gt;$R^{-1} :\equiv \{(b,a) \mid (a,b) \in R\}$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;关系的性质&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;性质&lt;/th&gt;
          &lt;th&gt;定义&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;自反性&lt;/td&gt;
          &lt;td&gt;对于 $A$ 上的关系 $R$，$\forall a \in A$，都有 $aRa$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;对称性&lt;/td&gt;
          &lt;td&gt;当且仅当关系 $R$ 满足 $R = R^{-1}$，即 $(a,b) \in R \leftrightarrow (b,a) \in R$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;反对称性&lt;/td&gt;
          &lt;td&gt;当且仅当关系 $R$ 满足 $(\forall a)(\forall b) ((a \in A \land b \in A) \Rightarrow ((a,b) \in R \land (b,a) \in R) \Rightarrow a = b)$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;传递性&lt;/td&gt;
          &lt;td&gt;当且仅当关系 $R$ 满足 $\forall a,b,c$，都有 $(a,b) \in R \land (b,c) \in R \rightarrow (a,c) \in R$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;当集合上的关系同时满足一些性质时，则称该关系为一种特殊的关系。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;特殊关系&lt;/th&gt;
          &lt;th&gt;定义&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;等价关系&lt;/td&gt;
          &lt;td&gt;同时满足自反性、对称性和传递性&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;偏序关系&lt;/td&gt;
          &lt;td&gt;同时满足自反性、反对称性和传递性&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;通过集合论，我们可以形式化地给出自然数的定义：&lt;/p&gt;
$$
\begin{array}{c}\begin{align*}
0 &amp;= \oslash \\
1 &amp;= \{0\} = \{\oslash\} = \oslash \cup \{\oslash\} = 0 \cup \{0\} \\
2 &amp;= \{0, 1\} = \{\oslash, \{\oslash\}\} = 1 \cup \{1\} = 0 \cup \{0\} \cup \{1\} \\
3 &amp;= \{0, 1, 2\} = \{\oslash, \{\oslash\}, \{\oslash \cup \{\oslash\}\}\} = 2 \cup \{2\} = 0 \cup \{0\} \cup \{1\} \cup \{2\} \\
&amp; \cdots \\
n+1 &amp;= n \cup \{n\}
\end{align*}
\end{array}$$&lt;/blockquote&gt;
&lt;h3 id=&#34;函数&#34;&gt;函数
&lt;/h3&gt;&lt;p&gt;函数定义为从集合 $A$ 到集合 $B$ 的一种对应关系，记作 $f: A \rightarrow B$。&lt;/p&gt;
&lt;h2 id=&#34;集合的描述&#34;&gt;集合的描述
&lt;/h2&gt;&lt;h3 id=&#34;数据类型&#34;&gt;数据类型
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;某个类型的所有可能成员都具备一些共同特征，这时我们称它们属于同一个类型。&lt;/p&gt;
&lt;p&gt;Z语言就是在类型的集合论上建立起来的。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;类型集合&lt;/th&gt;
          &lt;th&gt;定义&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;BuildIn types&lt;/td&gt;
          &lt;td&gt;Z语言的内置类型，无需定义即可使用。&lt;br&gt; Integer：记作 $Z$，可使用 &amp;ldquo;+, -, *, div, mod&amp;rdquo; 运算 &lt;br&gt; Natural：Integer类型的子集，记作 $N$，必须为非负数。$N1$ 则表示正整数&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Basic types&lt;/td&gt;
          &lt;td&gt;在名称周围添加方括号来声明，可附带注释。例如：&lt;br&gt; $[\mathrm{PERSON}] \qquad \text{the set of all persons}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Free types&lt;/td&gt;
          &lt;td&gt;通过列举其元素来定义的数据类型，例如：&lt;br&gt; $\text{freeType} ::= \text{element}_1 \mid \text{element}_2 \mid \cdots \text{element}_n$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;变量&#34;&gt;变量
&lt;/h3&gt;&lt;p&gt;Z语言的每个变量名在赋值前必须先声明，格式为 $v: \text{TYPE}$&lt;/p&gt;
&lt;p&gt;示例：$\text{chauffeur}: \text{PERSON}$&lt;/p&gt;
&lt;h3 id=&#34;集合&#34;&gt;集合
&lt;/h3&gt;&lt;p&gt;Z语言中的集合可以通过在括号内列举它的所有值来声明。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;集合中的元素值的类型必须是先前声明过的类型，否则视为非法值。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;运算&lt;/th&gt;
          &lt;th&gt;表示&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;幂集&lt;/td&gt;
          &lt;td&gt;$\mathbb{P} S$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;差&lt;/td&gt;
          &lt;td&gt;$S \backslash T$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;并集&lt;/td&gt;
          &lt;td&gt;$S \cup T$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;交集&lt;/td&gt;
          &lt;td&gt;$S \cap T$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;划分&lt;/td&gt;
          &lt;td&gt;$S \cup T = U \land S \cap T = \oslash$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;用集合描述系统&#34;&gt;用集合描述系统
&lt;/h3&gt;&lt;p&gt;特点：以状态的转换为核心描述系统行为；系统的操作（函数）通过描述其执行如何改变系统状态来定义。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;步骤&lt;/th&gt;
          &lt;th&gt;操作&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;①&lt;/td&gt;
          &lt;td&gt;定义描述目标系统状态的变量以及与这些变量相关的任何不变的性质&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;②&lt;/td&gt;
          &lt;td&gt;定义初始操作，将变量的值设置为满足不变性质的某个初始状态&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;③&lt;/td&gt;
          &lt;td&gt;定义对状态的操作，满足在改变状态的同时保持不变的性质&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;④&lt;/td&gt;
          &lt;td&gt;定义查询操作，使其在不改变系统状态的前提下获取系统信息&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;案例：乘客登机系统&lt;/p&gt;
&lt;h2 id=&#34;模式&#34;&gt;模式
&lt;/h2&gt;&lt;p&gt;模式是一种结构化的规格说明。&lt;/p&gt;
&lt;h3 id=&#34;模式表达&#34;&gt;模式表达
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;格式&lt;/th&gt;
          &lt;th&gt;表示&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;图表格式&lt;/td&gt;
          &lt;td&gt;$\begin{array}{l} \text{SchemaName} \\ \left| \begin{array}{l} \text{Declarations} \\ \hline \text{Predicate} \\ \hline \end{array} \right.\end{array}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;文字格式&lt;/td&gt;
          &lt;td&gt;$\text{SchemaName} == [\ \text{Declarations} \mid \text{Predicate} \ ]$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;内容&lt;/th&gt;
          &lt;th&gt;规范&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;声明&lt;/td&gt;
          &lt;td&gt;每行声明均被视为以分号结尾，若干行构成一个序列&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;谓词&lt;/td&gt;
          &lt;td&gt;若干行谓词被视为以运算符连接&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;不含谓词部分的模式&lt;/td&gt;
          &lt;td&gt;只声明新变量，不施加约束谓词&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;局部变量&lt;/td&gt;
          &lt;td&gt;模式里声明的变量，在其他模式里引用时需要明确包含该定义的模式&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;全局变量&lt;/td&gt;
          &lt;td&gt;在规格说明始终可以引用，以公理定义声明；值不能被规格说明运算改变&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;模式推演&#34;&gt;模式推演
&lt;/h3&gt;&lt;p&gt;模式可作为单元，进行类似逻辑运算的操作&lt;/p&gt;
&lt;h4 id=&#34;修饰&#34;&gt;修饰
&lt;/h4&gt;&lt;p&gt;修饰（Decoration）：表示一个模式在执行了某些操作后的值，可表示为&lt;/p&gt;
$$\begin{array}{l} \text{S} \\ \left\| \begin{array}{l} a,b:N \\ \hline a &lt; b \\ \hline \end{array} \right. \end{array} \begin{array}{l} \text{S&#39;} \\ \left\| \begin{array}{l} a&#39;,b&#39;:N \\ \hline a&#39; &lt; b&#39; \\ \hline \end{array} \right. \end{array}$$&lt;h4 id=&#34;包含&#34;&gt;包含
&lt;/h4&gt;&lt;p&gt;包含（Inclusion）： 一个模式的声明可以包含另一个模式，会将被包含模式的声明和谓词合并，可表示为&lt;/p&gt;
$$\begin{array}{l} \text{IncludeS} \\ \left\| \begin{array}{l} c:N \\ S \\ \hline c&lt;10 \\ \hline \end{array} \right.\end{array}$$&lt;h4 id=&#34;合取与析取&#34;&gt;合取与析取
&lt;/h4&gt;&lt;p&gt;合取（Conjunction）：将两个模式取交，得到一个新模式，其声明原来两个模式的合并，谓词是原来两个模式的与&lt;/p&gt;
&lt;p&gt;析取（Disjunction）：将两个模式取并，得到一个新模式，其声明原来两个模式的合并，谓词是原来两个模式的或&lt;/p&gt;
&lt;h4 id=&#34;delta--xi&#34;&gt;Delta &amp;amp; Xi
&lt;/h4&gt;&lt;p&gt;Delta convention 表示模式的改变，可以类比为复制一份，可表示为&lt;/p&gt;
$$\begin{array}{l} \Delta\text{S} \\ \left\| \begin{array}{l} a,b:N \\ a&#39;,b&#39;:N \\ \hline a &lt; b \\ a&#39; &lt; b&#39; \\ \hline \end{array} \right.\end{array}$$&lt;p&gt;Xi convention 表示模式的改变，可以类比为复制一份，它的声明比Delta convention更强，可表示为&lt;/p&gt;
$$\begin{array}{l} \Xi\text{S} \\ \left\| \begin{array}{l} a,b:N \\ a&#39;,b&#39;:N \\ \hline a &lt; b \\ a&#39; &lt; b&#39; \\ a=a&#39; \\ b=b&#39; \\ \hline \end{array} \right.\end{array}$$&lt;h4 id=&#34;其他&#34;&gt;其他
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;运算&lt;/th&gt;
          &lt;th&gt;含义&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;重命名（Renaming）&lt;/td&gt;
          &lt;td&gt;$$\text{newSchemaName} ==\\ \text{oldSchemaName} [\text{newName1/oldName1}, \text{newName2/oldName2}, \cdots]$$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;隐藏（Hide）&lt;/td&gt;
          &lt;td&gt;隐藏声明中的变量，让它只存在于谓词的运算符中，语法：$$\text{newSchemaName} == \text{oldSchemaName} \ (\text{varName1}, \text{ varName2}, \cdots) $$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;投影（Project）&lt;/td&gt;
          &lt;td&gt;隐藏除指定变量之外的变量，语法：$$\text{newSchemaName} == \text{oldSchemaName} \uparrow (\text{varName1}, \text{varName2}, \cdots)$$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;合成（Composition）&lt;/td&gt;
          &lt;td&gt;表示执行 $S$ 后执行 $T$，隐藏了中间变量&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;输入和输出变量&#34;&gt;输入和输出变量
&lt;/h3&gt;&lt;p&gt;输入变量：变量名 + ?&lt;/p&gt;
&lt;p&gt;输出变量：变量名 + !&lt;/p&gt;
&lt;p&gt;举例：&lt;/p&gt;
$$\begin{array}{l} \text{Add} \\ \left\| \begin{array}{l} a?,b?:N \\ sum!:N \\ \hline sum! = a? + b? \\ \hline \end{array} \right.\end{array}$$&lt;h2 id=&#34;谓词量词与关系&#34;&gt;谓词、量词与关系
&lt;/h2&gt;&lt;h3 id=&#34;谓词与量词&#34;&gt;谓词与量词
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;谓词&lt;/th&gt;
          &lt;th&gt;定义&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;零元谓词&lt;/td&gt;
          &lt;td&gt;事实的陈述，独立于单个变量&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;一元谓词&lt;/td&gt;
          &lt;td&gt;反映对象（个体）的特性&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;二元谓词&lt;/td&gt;
          &lt;td&gt;一对对象（个体）的关系&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;量词&lt;/th&gt;
          &lt;th&gt;记号&lt;/th&gt;
          &lt;th&gt;含义&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;全称量词&lt;/td&gt;
          &lt;td&gt;$$\forall \ \text{declaration} \mid \text{constraint} \cdot \text{predicate}$$&lt;/td&gt;
          &lt;td&gt;$\text{declaration}$ 给出一些变量，$\text{contraint}$ 约束为确定的值，$\text{predicate}$ 均为真&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;存在量词&lt;/td&gt;
          &lt;td&gt;$$\exist \ \text{declaration} \mid \text{constraint} \cdot \text{predicate}$$&lt;/td&gt;
          &lt;td&gt;$\text{declaration}$ 给出一些变量，$\text{contraint}$ 约束为确定的值，$\text{predicate}$ 对于一些值为真&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;唯一量词&lt;/td&gt;
          &lt;td&gt;$$\exist_1 \ \text{declaration} \mid \text{constraint} \cdot \text{predicate}$$&lt;/td&gt;
          &lt;td&gt;只存在一个值使得 $\text{declaration}$ 为真&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;集合推导：通过给定条件（谓词）来定义集合。表示为 $\{\text{declaration} \mid \text{constraint} \cdot \text{expression}\}$&lt;/p&gt;
&lt;p&gt;例如：$\{x: Z \mid \text{Even}(x) \cdot x^2 \}$ 表示偶数的平方的集合。&lt;/p&gt;
&lt;h3 id=&#34;z中的关系&#34;&gt;Z中的关系
&lt;/h3&gt;&lt;h4 id=&#34;声明关系&#34;&gt;声明关系
&lt;/h4&gt;$$R: X \leftrightarrow Y \quad (X \leftrightarrow Y == \mathbb{P}(X \times Y))$$&lt;p&gt;举例：&lt;/p&gt;
$$\begin{align*} &amp;[\text{COUNTRY}] \quad \text{the set of all countries} \\ &amp;[\text{LANGUANGE}] \quad \text{the set of all languages} \\ &amp;\text{speaks}: \text{COUNTRY} \leftrightarrow \text{LANGUAGE} \end{align*}$$&lt;blockquote&gt;
&lt;p&gt;映射与关系&lt;/p&gt;
&lt;p&gt;$x \mapsto y == (x,y)$ 表示 $x$ 与 $y$ 有关&lt;/p&gt;
&lt;p&gt;有以下等价关系：&lt;/p&gt;
$$xRy == x \mapsto y \in R == (x,y) \in R$$&lt;/blockquote&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;概念&lt;/th&gt;
          &lt;th&gt;内容&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;定义域（Domain）&lt;/td&gt;
          &lt;td&gt;$\text{dom} R == \{a \mid (\exist \ b)((a,b) \in R) \}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;值域（Range）&lt;/td&gt;
          &lt;td&gt;$\text{ran} R == \{b \mid (\exist \ a)((a,b) \in R)\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;像（Image）&lt;/td&gt;
          &lt;td&gt;对于 $S \subseteq \text{dom} R$，$R(|S|)$ 是 $S$ 对应值的集合&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;常用关系&#34;&gt;常用关系
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;关系&lt;/th&gt;
          &lt;th&gt;记法&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;中缀关系&lt;/td&gt;
          &lt;td&gt;$\_\ R\ \_ : X \leftrightarrow Y$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;反转关系&lt;/td&gt;
          &lt;td&gt;$R\sim \ : Y \leftrightarrow X$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;组合关系&lt;/td&gt;
          &lt;td&gt;若 $R: X \leftrightarrow Y$，$Q: Y \leftrightarrow Z$，则 $R;Q: X \leftrightarrow Z$，$Q \circ R == R;Q$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;恒等关系&lt;/td&gt;
          &lt;td&gt;$\text{id} X == \{x:X \cdot x \mapsto x\}$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;限制&lt;/th&gt;
          &lt;th&gt;记号&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;定义域限制&lt;/td&gt;
          &lt;td&gt;$S \triangleleft R$，表示关系 $R$ 的定义域限制在 $S$ 内&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;值域限制&lt;/td&gt;
          &lt;td&gt;$R \triangleright S$，表示关系 $R$ 的值域限制在 $S$ 内&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;定义域去除&lt;/td&gt;
          &lt;td&gt;$S \ntriangleleft R$，表示关系 $R$ 的定义域去掉 $S$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;值域去除&lt;/td&gt;
          &lt;td&gt;$R \ntriangleright S$，表示关系 $R$ 的值域去掉 $S$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;闭包&lt;/th&gt;
          &lt;th&gt;记号&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;传递闭包&lt;/td&gt;
          &lt;td&gt;$x R^+ y$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;自反传递闭包&lt;/td&gt;
          &lt;td&gt;$R^* = R^+ \cup \text{id} X$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;案例：使用关系定义家庭成员关系
&lt;/p&gt;
$$\begin{align*} &amp; \text{[PERSON]} \\ &amp; \text{father, mother}: \text{PERSON} \leftrightarrow \text{PERSON} \\ &amp; \text{parent}: \text{PERSON} \leftrightarrow \text{PERSON} \\ &amp; \text{sibling}: \text{PERSON} \leftrightarrow \text{PERSON} \\ &amp; \text{ancestor}: \text{PERSON} \leftrightarrow \text{PERSON} \\ \\ &amp; \text{parent}: \text{father} \cup \text{mother} \\ &amp; \text{sibling}: (\text{parent}; \text{parent}\sim) \ \backslash \text{id} \ \text{PERSON} \\ &amp; \text{ancestor}: \text{parent}^+ \\ \end{align*}$$&lt;/blockquote&gt;
&lt;h2 id=&#34;函数-1&#34;&gt;函数
&lt;/h2&gt;&lt;h3 id=&#34;定义&#34;&gt;定义
&lt;/h3&gt;&lt;p&gt;Z语言中的函数是一种特殊的关系，可为一对一或多对一。定义域有限的函数也称作映射。&lt;/p&gt;
&lt;p&gt;记法：$f: X + \rightarrow Y$（从 $X$ 到 $Y$ 的函数）&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;当 $x \in \text{dom}f$ 且最多只对应一个 $y$ 时，等价于关系 $f: X \leftrightarrow Y, x \in \text{dom}f \Rightarrow \exist_1 y:Y \cdot xfy$&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;若 $\text{source}$ 不全在 $\text{domain}$ 中，则称为部分函数；&lt;/p&gt;
&lt;p&gt;若 $\text{source}$ 全在 $\text{domain}$ 中，则称为全函数。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;分类&lt;/th&gt;
          &lt;th&gt;定义&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;单射&lt;/td&gt;
          &lt;td&gt;一对一的关系，部分函数中记作 $f: X &amp;gt;+ \rightarrow Y$，全函数中记作 $f: X &amp;gt; \rightarrow Y$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;满射&lt;/td&gt;
          &lt;td&gt;函数的值域是整个 $\text{target}$，部分函数记作 $f: X + \rightarrow &amp;gt; Y$，全函数中记作 $f: X \rightarrow &amp;gt; Y$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;双射&lt;/td&gt;
          &lt;td&gt;既是单射又是满射的函数，记作 $f: X &amp;gt; \rightarrow &amp;gt; Y$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;函数重写&#34;&gt;函数重写
&lt;/h3&gt;&lt;p&gt;对于一个已知函数，指定其定义域的一个子集，在对应的值域赋予其新的值。&lt;/p&gt;
&lt;p&gt;例如，若 $f: X +\rightarrow Y$，$g: X +\rightarrow Y$，其中 $f$ 被 $g$ 重写为新的函数 $f \oplus g$，则有：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;$f \oplus g == (\text{dom} g \ntriangleleft f) \cup g$（即 $f$ 的定义域去掉 $g$ 的定义域，再并上 $g$）&lt;/li&gt;
&lt;li&gt;当 $x$ 在 $f$ 的定义域而不在 $g$ 的定义域中时，$f \oplus g\ x = f \ x$&lt;/li&gt;
&lt;li&gt;当 $x$ 在 $g$ 的定义域中时，$f \oplus g\ x = g \ x$&lt;/li&gt;
&lt;/ol&gt;
</description>
        </item>
        <item>
        <title>数据库系统</title>
        <link>https://rd806.github.io/passage/cs/database/</link>
        <pubDate>Sat, 14 Mar 2026 00:00:00 +0000</pubDate>
        
        <guid>https://rd806.github.io/passage/cs/database/</guid>
        <description>&lt;img src="https://rd806.github.io/passage/cs/database/mysql.jpg" alt="Featured image of post 数据库系统" /&gt;&lt;p&gt;数据库系统研究的是：&lt;strong&gt;如何用计算机有效地组织和管理数据&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;关系数据模型&#34;&gt;关系数据模型
&lt;/h2&gt;&lt;h3 id=&#34;数据库与dbms&#34;&gt;数据库与DBMS
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;概念&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;数据（Data）&lt;/td&gt;
          &lt;td&gt;数据库存储的基本对象，数字、文本、图形、音频、视频等均可看作数据&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;语义&lt;/td&gt;
          &lt;td&gt;数据的标签，具备语义的数据才可成为信息&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;数据库（Database）&lt;/td&gt;
          &lt;td&gt;长期存储在计算机内的、有组织的、可共享的数据的集合&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;数据库管理系统（DBMS）&lt;/td&gt;
          &lt;td&gt;位于用户与操作系统之间的一层数据管理软件，通过调用系统资源操作和管理数据&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;关系数据模型-1&#34;&gt;关系数据模型
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;概念&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;关系数据模型&lt;/td&gt;
          &lt;td&gt;用于描述数据的符号语言，它包括结构、操作和约束等3个部分。&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;关系（Relation）&lt;/td&gt;
          &lt;td&gt;二维的表格&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;属性（Attribute）&lt;/td&gt;
          &lt;td&gt;关系列的表头，描述了该列内容的实际含义&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;模式（Scheme）&lt;/td&gt;
          &lt;td&gt;关系与其属性的范式&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;元组（Tuples）&lt;/td&gt;
          &lt;td&gt;关系的具体内容&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;域（Domains）&lt;/td&gt;
          &lt;td&gt;关系的数据类型&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;键（Key）&lt;/td&gt;
          &lt;td&gt;关系的其中一个元素&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/database/images/%E5%85%B3%E7%B3%BB%E6%95%B0%E6%8D%AE%E6%A8%A1%E5%9E%8B.png&#34;
	width=&#34;1128&#34;
	height=&#34;479&#34;
	srcset=&#34;https://rd806.github.io/passage/cs/database/images/%E5%85%B3%E7%B3%BB%E6%95%B0%E6%8D%AE%E6%A8%A1%E5%9E%8B_hu_1514a4afd7f466db.png 480w, https://rd806.github.io/passage/cs/database/images/%E5%85%B3%E7%B3%BB%E6%95%B0%E6%8D%AE%E6%A8%A1%E5%9E%8B_hu_3850caad09c48f5.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;关系数据模型&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;235&#34;
		data-flex-basis=&#34;565px&#34;
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;关系数据库语言&#34;&gt;关系数据库语言
&lt;/h2&gt;&lt;p&gt;关系代数用于在关系数据模型上查询和修改数据，它的输入和输出均为关系，因此可视为一个封闭的代数系统。&lt;/p&gt;
&lt;p&gt;SQL语句的核心就是关系代数。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;SQL的功能远低于C语言和Java，为什么使用它？&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;关系代数的用途十分广泛。&lt;/li&gt;
&lt;li&gt;SQL的编译十分便捷，易于优化。&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;关系代数ra&#34;&gt;关系代数（RA）
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;代数&lt;/strong&gt;（Algebra）是操作数（Operands）和运算符（Operators）的集合。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;通过关系代数的运算符和各种关系相连接。可以得到关系表达式。例如：&lt;/p&gt;
$$ R(t,y,l,i,s,p) := \sigma_{\mathrm{length} \leqslant 100}(\mathrm{Movies}) $$&lt;p&gt;
&lt;/p&gt;
$$ S(t,y,l,i,s,p) := \sigma_{\mathrm{studioName=&#39;Fox&#39;}}(\mathrm{Movies}) $$&lt;p&gt;
&lt;/p&gt;
$$ Answer(title, year) := \pi_{t,y}(R \cap S) $$&lt;p&gt;事实上，所有表达式都可以写成&lt;a class=&#34;link&#34; href=&#34;https://rd806.github.io/p/data-structure-tree&#34; &gt;树
    
    

&lt;/a&gt;的形式。上式即可表达为：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/database/images/%E5%85%B3%E7%B3%BB%E4%BB%A3%E6%95%B0%E8%A1%A8%E8%BE%BE%E5%BC%8F.png&#34;
	width=&#34;391&#34;
	height=&#34;397&#34;
	srcset=&#34;https://rd806.github.io/passage/cs/database/images/%E5%85%B3%E7%B3%BB%E4%BB%A3%E6%95%B0%E8%A1%A8%E8%BE%BE%E5%BC%8F_hu_f63a982b25c80920.png 480w, https://rd806.github.io/passage/cs/database/images/%E5%85%B3%E7%B3%BB%E4%BB%A3%E6%95%B0%E8%A1%A8%E8%BE%BE%E5%BC%8F_hu_9bd145048072a858.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;关系代数表达式&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;98&#34;
		data-flex-basis=&#34;236px&#34;
	
&gt;&lt;/p&gt;
&lt;h4 id=&#34;集合运算&#34;&gt;集合运算
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;集合操作&lt;/th&gt;
          &lt;th&gt;符号&lt;/th&gt;
          &lt;th&gt;作用&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;并（Union）&lt;/td&gt;
          &lt;td&gt;$R \cup S$&lt;/td&gt;
          &lt;td&gt;关系 $R$ 和 $S$ 中所有的内容，相同的只出现一次&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;交（Intersection）&lt;/td&gt;
          &lt;td&gt;$R \cap S$&lt;/td&gt;
          &lt;td&gt;关系 $R$ 和 $S$ 中共同存在的内容&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;差（Difference）&lt;/td&gt;
          &lt;td&gt;$R - S$&lt;/td&gt;
          &lt;td&gt;关系 $R$ 中存在但不在关系 $S$ 中&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;对应的SQL语言：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;R&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;UNION&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;S&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;--- 并
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;R&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;INTERSECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;S&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;--- 交
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;R&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;EXCEPT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;S&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;--- 差
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/database/images/%E9%9B%86%E5%90%88%E8%BF%90%E7%AE%97.png&#34;
	width=&#34;888&#34;
	height=&#34;530&#34;
	srcset=&#34;https://rd806.github.io/passage/cs/database/images/%E9%9B%86%E5%90%88%E8%BF%90%E7%AE%97_hu_e5d47e6fab3e483c.png 480w, https://rd806.github.io/passage/cs/database/images/%E9%9B%86%E5%90%88%E8%BF%90%E7%AE%97_hu_52f11bcdb1a34a37.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;集合运算&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;167&#34;
		data-flex-basis=&#34;402px&#34;
	
&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;集合运算中的关系 $R$ 和 $S$ 的属性必须相同且排列顺序一致，且每个属性在两者中的域（数据类型）必须相同。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;投影运算&#34;&gt;投影运算
&lt;/h4&gt;&lt;p&gt;从关系 $R$ 生成一个仅包含 $R$ 部分属性的新关系（Project），可表示为 $\pi_{A_1, A_2, \cdots, A_n}(R)$&lt;/p&gt;
&lt;p&gt;对应的SQL语言：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;A1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;A2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;...,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;An&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;R&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/database/images/%E6%8A%95%E5%BD%B1%E8%BF%90%E7%AE%97.png&#34;
	width=&#34;977&#34;
	height=&#34;580&#34;
	srcset=&#34;https://rd806.github.io/passage/cs/database/images/%E6%8A%95%E5%BD%B1%E8%BF%90%E7%AE%97_hu_eff64346f6be825f.png 480w, https://rd806.github.io/passage/cs/database/images/%E6%8A%95%E5%BD%B1%E8%BF%90%E7%AE%97_hu_1e0011c9803b5c06.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;投影运算&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;168&#34;
		data-flex-basis=&#34;404px&#34;
	
&gt;&lt;/p&gt;
&lt;h4 id=&#34;选择运算&#34;&gt;选择运算
&lt;/h4&gt;&lt;p&gt;生成关系 $R$ 满足条件 $C$ 的元组子集作为一个新关系，结果关系的模式与原关系的相同（SELECTION）。可表示为：$\sigma_{C}(R)$&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;用集合表示则可写作：$\sigma_{C}(R) = \{ t | t \in R \land C(t) = \mathrm{true} \}$&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;对应的SQL语言：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;R&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;C&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/database/images/%E9%80%89%E6%8B%A9%E8%BF%90%E7%AE%97.png&#34;
	width=&#34;977&#34;
	height=&#34;623&#34;
	srcset=&#34;https://rd806.github.io/passage/cs/database/images/%E9%80%89%E6%8B%A9%E8%BF%90%E7%AE%97_hu_c49455beddff3f1f.png 480w, https://rd806.github.io/passage/cs/database/images/%E9%80%89%E6%8B%A9%E8%BF%90%E7%AE%97_hu_836f5bb61cff01da.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;选择运算&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;156&#34;
		data-flex-basis=&#34;376px&#34;
	
&gt;&lt;/p&gt;
&lt;h4 id=&#34;笛卡尔积&#34;&gt;笛卡尔积
&lt;/h4&gt;&lt;p&gt;选择关系 $R$ 的一个元素为有序对的第一个元素，关系 $S$ 的一个元素为第二个元素，以此类推形成的新关系（Cartesian Product）。可表示为：$R \times S$&lt;/p&gt;
&lt;p&gt;对应的SQL语言：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;R&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;CROSS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;JOIN&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;S&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/database/images/%E7%AC%9B%E5%8D%A1%E5%B0%94%E7%A7%AF.png&#34;
	width=&#34;1022&#34;
	height=&#34;648&#34;
	srcset=&#34;https://rd806.github.io/passage/cs/database/images/%E7%AC%9B%E5%8D%A1%E5%B0%94%E7%A7%AF_hu_6c6b60bee755741f.png 480w, https://rd806.github.io/passage/cs/database/images/%E7%AC%9B%E5%8D%A1%E5%B0%94%E7%A7%AF_hu_8d0f83bb61a32cfa.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;笛卡尔积&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;157&#34;
		data-flex-basis=&#34;378px&#34;
	
&gt;&lt;/p&gt;
&lt;h4 id=&#34;自然连接&#34;&gt;自然连接
&lt;/h4&gt;&lt;p&gt;设 $A_1, A_2, \cdots, A_n$ 为关系 $R$ 和 $S$ 中所有共同属性，当两者的共同属性的内容完全一致时则合并为一个关系，合并的结果应包含关系 $R$ 和 $S$ 中的所有属性（Natural Joins）。可表示为：$R \bowtie S$&lt;/p&gt;
&lt;p&gt;对应的SQL语言：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;R&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;NATURAL&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;JOIN&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;S&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/database/images/%E8%87%AA%E7%84%B6%E8%BF%9E%E6%8E%A5.png&#34;
	width=&#34;1010&#34;
	height=&#34;455&#34;
	srcset=&#34;https://rd806.github.io/passage/cs/database/images/%E8%87%AA%E7%84%B6%E8%BF%9E%E6%8E%A5_hu_8cbbbce04077da66.png 480w, https://rd806.github.io/passage/cs/database/images/%E8%87%AA%E7%84%B6%E8%BF%9E%E6%8E%A5_hu_23018dc791c2ed7a.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;自然连接&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;221&#34;
		data-flex-basis=&#34;532px&#34;
	
&gt;&lt;/p&gt;
&lt;h4 id=&#34;theta-连接&#34;&gt;$\theta$-连接
&lt;/h4&gt;&lt;p&gt;关系 $R$ 与 $S$ 先做笛卡尔积，在从中选择满足条件 $C$ 的部分（Theta-Joins）。可表示为 $ R \bowtie_{C} S $&lt;/p&gt;
&lt;p&gt;对应的SQL语言：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;R&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;INNER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;JOIN&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;S&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ON&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;C&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/database/images/Theta%E8%BF%9E%E6%8E%A5.png&#34;
	width=&#34;1027&#34;
	height=&#34;633&#34;
	srcset=&#34;https://rd806.github.io/passage/cs/database/images/Theta%E8%BF%9E%E6%8E%A5_hu_a881c67a3b0e5f41.png 480w, https://rd806.github.io/passage/cs/database/images/Theta%E8%BF%9E%E6%8E%A5_hu_f000d61c30a4ce46.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Theta连接&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;162&#34;
		data-flex-basis=&#34;389px&#34;
	
&gt;&lt;/p&gt;
&lt;h4 id=&#34;重命名&#34;&gt;重命名
&lt;/h4&gt;&lt;p&gt;将关系 $R$ 重命名为关系 $S$，$R$ 中对应的属性重命名为 $A_1, A_2, \cdots, A_n$。可表示为 $\rho_{S(A_1, A_2, \cdots, A_n)}(R)$&lt;/p&gt;
&lt;p&gt;对应的SQL语言：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a_1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;AS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;A_1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a_2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;AS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;A_2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;...,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a_n&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;AS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;A_n&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;R&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;AS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;S&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/database/images/%E9%87%8D%E5%91%BD%E5%90%8D.png&#34;
	width=&#34;1012&#34;
	height=&#34;601&#34;
	srcset=&#34;https://rd806.github.io/passage/cs/database/images/%E9%87%8D%E5%91%BD%E5%90%8D_hu_49266adc3287b2bf.png 480w, https://rd806.github.io/passage/cs/database/images/%E9%87%8D%E5%91%BD%E5%90%8D_hu_e478b9852f74d46e.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;重命名&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;168&#34;
		data-flex-basis=&#34;404px&#34;
	
&gt;&lt;/p&gt;
&lt;h3 id=&#34;sql语言&#34;&gt;SQL语言
&lt;/h3&gt;&lt;p&gt;SQL语句分类：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;分类&lt;/th&gt;
          &lt;th&gt;全称&lt;/th&gt;
          &lt;th&gt;说明&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;DDL&lt;/td&gt;
          &lt;td&gt;Data Definition Language&lt;/td&gt;
          &lt;td&gt;数据定义语言，用于定义数据库对象&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DML&lt;/td&gt;
          &lt;td&gt;Data Manipulation Language&lt;/td&gt;
          &lt;td&gt;数据操作语言，用于数据库中数据的增删改&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DQL&lt;/td&gt;
          &lt;td&gt;Data Query Language&lt;/td&gt;
          &lt;td&gt;数据查询语言，用于查询数据库中表的记录&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DCL&lt;/td&gt;
          &lt;td&gt;Data Control Language&lt;/td&gt;
          &lt;td&gt;数据控制语言，用于创建数据库用户、控制数据库访问权限&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;sql的数据类型&#34;&gt;SQL的数据类型
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;数字类型&lt;/th&gt;
          &lt;th&gt;大小&lt;/th&gt;
          &lt;th&gt;描述&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;TINYINT&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;1 byte&lt;/td&gt;
          &lt;td&gt;小整数集&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;SMALLINT&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;2 bytes&lt;/td&gt;
          &lt;td&gt;大整数集&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;MEDIUMINT&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;3 bytes&lt;/td&gt;
          &lt;td&gt;大整数集&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;INT&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;4 bytes&lt;/td&gt;
          &lt;td&gt;大整数集&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;BIGINT&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;8 bytes&lt;/td&gt;
          &lt;td&gt;极大整数集&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;FLOAT&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;4 bytes&lt;/td&gt;
          &lt;td&gt;单精度浮点数集&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;DOUBLE&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;8 bytes&lt;/td&gt;
          &lt;td&gt;双精度浮点数集&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;DECIMAL&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;依赖精度值（总数位）和标度值（小数位）&lt;/td&gt;
          &lt;td&gt;精确定点数&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;字符串类型&lt;/th&gt;
          &lt;th&gt;大小&lt;/th&gt;
          &lt;th&gt;描述&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;CHAR()&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;0-255 bytes&lt;/td&gt;
          &lt;td&gt;定长字符串&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;VARCHAR()&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;0-65,535 bytes&lt;/td&gt;
          &lt;td&gt;变长字符串&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;TINYBLOB&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;0-255 bytes&lt;/td&gt;
          &lt;td&gt;二进制数据&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;TINYTEXT&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;0-255 bytes&lt;/td&gt;
          &lt;td&gt;短文本字符串&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;BLOB&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;0-65,535 bytes&lt;/td&gt;
          &lt;td&gt;二进制长文本数据&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;TEXT&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;0-65,535 bytes&lt;/td&gt;
          &lt;td&gt;长文本数据&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;MEDIUMBLOB&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;0-16,777,215 bytes&lt;/td&gt;
          &lt;td&gt;二进制中等长度文本数据&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;MEDIUMTEXT&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;0-16,777,215 bytes&lt;/td&gt;
          &lt;td&gt;中等长度文本数据&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;LONGBLOB&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;0-4,294,967,295 bytes&lt;/td&gt;
          &lt;td&gt;二进制极大文本数据&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;LONGTEXT&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;0-4,294,967,295 bytes&lt;/td&gt;
          &lt;td&gt;极大文本数据&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;日期类型&lt;/th&gt;
          &lt;th&gt;大小&lt;/th&gt;
          &lt;th&gt;格式&lt;/th&gt;
          &lt;th&gt;描述&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;DATA&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;3&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;YYYY-MM-DD&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;日期值&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;TIME&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;3&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;HH:MM:SS&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;时间值或持续时间&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;TEAR&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;1&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;YYYY&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;年份值&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;DATETIME&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;8&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;YYYY-MM-DD HH:MM:SS&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;混合日期和时间值&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;TIMESTAMP&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;4&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;YYYY-MM-DD HH:MM:SS&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;时间戳&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;空值&lt;code&gt;NULL&lt;/code&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;出现情况&lt;/td&gt;
          &lt;td&gt;值本身未知、值不适用于目标对象、用作保留值&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;运算法则&lt;/td&gt;
          &lt;td&gt;对&lt;code&gt;NULL&lt;/code&gt;进行算术操作，结果仍为&lt;code&gt;NULL&lt;/code&gt; &lt;br&gt; 对&lt;code&gt;NULL&lt;/code&gt;进行逻辑操作，结果为&lt;code&gt;UNKNOWN&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;空值&lt;code&gt;NULL&lt;/code&gt;不是常量，不可将其用作操作数。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;布尔类型&lt;/th&gt;
          &lt;th&gt;约定值&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;TRUE&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;1&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;FALSE&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;0&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UNKNOWN&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;1/2&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;布尔操作的法则：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;AND&lt;/code&gt;操作符返回两者约定值较小的那个。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OR&lt;/code&gt;操作符返回两者约定值较大的那个。&lt;/li&gt;
&lt;li&gt;布尔变量&lt;code&gt;v&lt;/code&gt;反转后为&lt;code&gt;1-v&lt;/code&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;例如，若执行SQL语句&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Movies&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;length&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;120&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;OR&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;length&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;120&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;若某些元组的&lt;code&gt;length&lt;/code&gt;值为&lt;code&gt;NULL&lt;/code&gt;，条件的返回值则为&lt;code&gt;UNKNOWN&lt;/code&gt;，将不会出现在结果中。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;ddl&#34;&gt;DDL
&lt;/h4&gt;&lt;p&gt;数据定义语言，用于定义数据库对象&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;查询&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;/* -- 数据库操作 -- */&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 查询所有数据库
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SHOW&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DATABASES&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 查询当前数据库
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;DATABASE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 查询当前数据库中所有表
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SHOW&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;/* -- 表操作 -- */&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 查询表结构
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;DESC&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 查询指定表的建表语句
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;17&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SHOW&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;CREATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;创建&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;/* -- 数据库操作 -- */&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 创建数据库
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;CREATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;DATABASE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;IF&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;NOT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;EXISTS&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;数据库名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;DEFAULT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CHARSET&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字符集&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;COLLATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;排序规则&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 使用数据库
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;USE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;数据库名&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;/* -- 表操作 -- */&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 创建表
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;CREATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;类型&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;PRIMARY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;KEY&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;COMMENT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;这是主键&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;类型&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;COMMENT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;字段2注释&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;类型&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;COMMENT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;字段3注释&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;...&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;COMMENT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;表注释&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;17&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 示例
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;19&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;CREATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;movie&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;CHAR&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;30&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;21&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;address&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;VARCHAR&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;255&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;22&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cert&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;INT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;PRIMARY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;KEY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;COMMENT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;主键&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;23&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;networth&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;INT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;24&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;25&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;26&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;CREATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;studio&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;27&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;CHAR&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;50&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;PRIMARY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;KEY&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;28&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;address&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;VARCHAR&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;255&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;29&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;presc&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;INT&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;30&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FOREIGN&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;KEY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;presc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;REFERENCES&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;movie&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;COMMENT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;外键&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;31&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;MySQL中建议使用字符集&lt;code&gt;UTF8mb4&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;参见：&lt;a class=&#34;link&#34; href=&#34;https://rd806.github.io/p/mysql/#mysql%e7%9a%84%e6%95%b0%e6%8d%ae%e7%b1%bb%e5%9e%8b&#34; &gt;MySQL的数据类型
    
    

&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;修改&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;--- 添加字段
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;ALTER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ADD&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;类型&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;长度&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;COMMENT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;注释&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;约束&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;--- 修改数据类型
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;ALTER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;MODIFY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;新数据类型&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;长度&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;--- 修改字段名和字段类型
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;ALTER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CHANGE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;旧字段名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;新字段名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;类型&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;长度&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;COMMENT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;注释&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;约束&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;--- 修改表名
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;ALTER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;RENAME&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TO&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;新表名&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;删除&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;--- 删除字段
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;ALTER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;DROP&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段名&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 删除表
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;DROP&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;IF&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;EXISTS&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 删除指定表，并重新创建该表
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;TRUNCATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;--- 删除数据库
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;DROP&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;DATABASE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;IF&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;EXISTS&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;数据库名&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;dml&#34;&gt;DML
&lt;/h4&gt;&lt;p&gt;数据操作语言，用于数据库中数据的增删改。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;添加数据（Insertion）&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 给指定字段添加数据
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;INSERT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;INTO&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段名&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段名&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;...)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;VALUES&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,...);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 给全部字段添加数据
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;INSERT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;INTO&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;VALUES&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,...);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;/* -- 批量添加数据 -- */&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 指定字段名添加
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;INSERT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;INTO&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段名&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段名&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,...)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;VALUES&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,...),(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,...),(...);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 全部添加
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;INSERT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;INTO&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;VALUES&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,...),(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,...),(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,...);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;注意：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;插入数据时，指定的字段顺序需要与值的顺序相对应。&lt;/li&gt;
&lt;li&gt;字符串和日期型数据应包含在引号中。&lt;/li&gt;
&lt;li&gt;插入数据的大小应该在字段的指定范围内。&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;修改数据（Updates）&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;UPDATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SET&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段名&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段名&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,...&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;条件&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 作用是修改满足条件的一行数据对应字段的值，不是修改字段名
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 如果没有修改条件，则会修改整张表中所有数据
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;删除数据（Deletion）&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;DELETE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;条件&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 如果没有修改条件，则会修改整张表中所有数据
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- DELETE语句不能删除某一个字段的值，可以使用UPDATE将该字段值设为NONE
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;dql&#34;&gt;DQL
&lt;/h4&gt;&lt;p&gt;数据查询语言，用于查询数据库中表的记录。它完整的参数可包含如下内容：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段列表&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名列表&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;条件列表&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;GROUP&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;BY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;分组字段列表&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;HAVING&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;分组后筛选列表&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ORDER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;BY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;排序字段列表&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;LIMIT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;分页参数&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h5 id=&#34;基本条件查询&#34;&gt;基本条件查询
&lt;/h5&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;L&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;R&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;C&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ORDER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;BY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;排序规则&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;它与关系代数 $\pi_{L}(\sigma_{C}(R))$ 对应。&lt;/p&gt;
&lt;p&gt;常用运算符总结：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;运算符&lt;/th&gt;
          &lt;th&gt;功能&lt;/th&gt;
          &lt;th&gt;运算符&lt;/th&gt;
          &lt;th&gt;功能&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&amp;gt;&lt;/td&gt;
          &lt;td&gt;大于&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;IN(...)&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;在in之后的列表中的值（多选一）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&amp;gt;=&lt;/td&gt;
          &lt;td&gt;大于等于&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;LIKE &#39; &#39;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;模糊匹配&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&amp;lt;&lt;/td&gt;
          &lt;td&gt;小于&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;IS NULL&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;数据为空&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&amp;lt;=&lt;/td&gt;
          &lt;td&gt;小于等于&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;AND&lt;/code&gt; 或 &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;逻辑与&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;=&lt;/td&gt;
          &lt;td&gt;等于&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;OR&lt;/code&gt; 或 &lt;code&gt;||&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;逻辑或&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&amp;lt;&amp;gt; 或 !=&lt;/td&gt;
          &lt;td&gt;不等于&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;NOT&lt;/code&gt; 或 &lt;code&gt;!&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;逻辑非&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;BETWEEN&amp;hellip;AND&amp;hellip;&lt;/td&gt;
          &lt;td&gt;在某个范围之间（含端点）&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;LIKE&lt;/code&gt;后可接一个通配符，用于模糊匹配字段&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;Star ____&amp;quot;&lt;/code&gt;将匹配字段中含有一个&lt;code&gt;Star&lt;/code&gt;和4个字符的字符串。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;%&amp;quot;s%&lt;/code&gt;将匹配包含&lt;code&gt;&#39;s&lt;/code&gt;的字符串。&lt;/li&gt;
&lt;li&gt;SQL允许使用&lt;code&gt;ESCAPE&lt;/code&gt;命令来排除特定的字符，例如&lt;code&gt;&#39;x%%x%&#39; ESCAPE &#39;x&#39;&lt;/code&gt;将匹配以&lt;code&gt;%&lt;/code&gt;开头和结尾的字符串。&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;查询结果可通过参数&lt;code&gt;ORDER BY&lt;/code&gt;排序，默认为升序排列。可通过&lt;code&gt;ORDER BY DESC&lt;/code&gt;指定为降序排列，&lt;code&gt;ORDER BY ASC&lt;/code&gt;为升序排列。&lt;/p&gt;
&lt;h5 id=&#34;多表查询&#34;&gt;多表查询
&lt;/h5&gt;&lt;p&gt;&lt;code&gt;FROM&lt;/code&gt;后可接多个表，例如&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Movies&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;MovieExec&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Star Wars&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;AND&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;producerC&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cert&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;其中&lt;code&gt;title&lt;/code&gt;和&lt;code&gt;producerC#&lt;/code&gt;位于表&lt;code&gt;Movies&lt;/code&gt;中、&lt;code&gt;cert#&lt;/code&gt;位于表&lt;code&gt;MovieExec&lt;/code&gt;中，则查询结果将返回&lt;code&gt;producerC#&lt;/code&gt;与&lt;code&gt;cert#&lt;/code&gt;字段相同，且&lt;code&gt;title&lt;/code&gt;为&lt;code&gt;&amp;quot;Star Wars&amp;quot;&lt;/code&gt;的内容。&lt;/p&gt;
&lt;h5 id=&#34;反身查询&#34;&gt;反身查询
&lt;/h5&gt;&lt;p&gt;若要在同一张表中查询元组内部元素之间的关系，则需对该表设置两个副本再进行查询。&lt;/p&gt;
&lt;p&gt;例如，查询哪两个Star有相同的address，则输入：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Star1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Star2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;MovieStar&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Star1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;MovieStar&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Star2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Star1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;address&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Star2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;address&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;AND&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Star1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Star2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;必须设置两个副本&lt;code&gt;Star1&lt;/code&gt;和&lt;code&gt;Star2&lt;/code&gt;，否则条件判断将始终为&lt;code&gt;TRUE&lt;/code&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;对应的关系代数为：&lt;/p&gt;
$$\pi_{A_1, A_5}(\sigma_{A_2 = A_6 \ \mathrm{AND}\ A_1 &lt; A_5}(\rho_{M(A_1, A_2, A_3, A_4)}(\mathrm{MovieStar}) \times \rho_{N(A_5, A_6, A_7, A_8)}(\mathrm{MovieStar})))$$&lt;h5 id=&#34;子查询&#34;&gt;子查询
&lt;/h5&gt;&lt;p&gt;查询也可成为其他查询的一部分，像这样嵌套在查询内部的查询称作子查询。&lt;/p&gt;
&lt;p&gt;子查询可返回单个常量，用于&lt;code&gt;WHERE&lt;/code&gt;语句；也可以返回一个关系；还可以在&lt;code&gt;FROM&lt;/code&gt;语句中后接元组变量。&lt;/p&gt;
&lt;p&gt;这里主要展示返回标量值的子查询。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;标量值（Scalar）：元组的一个组成部分。例如元组 &lt;code&gt;Movies(title, year, length, genre, studioName, producerC#)&lt;/code&gt;中，若使用SQL查询：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;producerC&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Movies&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Star Wars&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;返回值即为一个标量值。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;示例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;MovieExec&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cert&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;producerC&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Movies&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Star Wars&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h5 id=&#34;分组与聚合&#34;&gt;分组与聚合
&lt;/h5&gt;&lt;p&gt;聚合：将关系中的某些列合并。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;聚合操作符&lt;/th&gt;
          &lt;th&gt;作用&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;SUM&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;对数值列求和&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;AVG&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;对数值列求平均值&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;MIN&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;数值列的最小值&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;MAX&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;数值列的最大值&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;COUNT&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;列中值的数量&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;分组：将元组的值分为若干组。&lt;code&gt;GROUP BY&lt;/code&gt;后接一组分组属性，元组根据分组属性的值进行分组。&lt;/p&gt;
&lt;p&gt;分组后筛选：&lt;code&gt;HAVING&lt;/code&gt;后接关于组的条件。&lt;/p&gt;
&lt;h2 id=&#34;关系数据库设计&#34;&gt;关系数据库设计
&lt;/h2&gt;&lt;p&gt;依赖（Dependency）涉及如何构建一个良好的关系数据库模式，以及当一个模式存在缺陷时如何改进的问题，并使用“异常”来指代这些问题。&lt;/p&gt;
&lt;h3 id=&#34;函数依赖&#34;&gt;函数依赖
&lt;/h3&gt;&lt;h4 id=&#34;定义&#34;&gt;定义
&lt;/h4&gt;&lt;p&gt;如果两个元组在属性 $A_1, A_2, \cdots, A_n$ 上一致（即它们对应属性的分量值都相等），那么它们必定在其他属性上 $B_1, B_2, \cdots, B_m$ 上也一致。记作 &lt;/p&gt;
$$A_1 A_2 \cdots A_n \rightarrow B_1 B_2 \cdots B_m$$&lt;p&gt; 即 $B_1, B_2, \cdots, B_m$ &lt;strong&gt;函数依赖&lt;/strong&gt; $A_1, A_2, \cdots, A_n$，或称 $A_1, A_2, \cdots, A_n$ &lt;strong&gt;函数决定&lt;/strong&gt; $B_1, B_2, \cdots, B_m$。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;若 $A_1 A_2 \cdots A_n \rightarrow B_1 B_2 \cdots B_m$ 成立，则以下各式均成立：
&lt;/p&gt;
$$\begin{array}{c}  A_1 A_2 \cdots A_n \rightarrow B_1 \\ A_1 A_2 \cdots A_n \rightarrow B_2 \\ \cdots \\ A_1 A_2 \cdots A_n \rightarrow B_m \end{array}$$&lt;/blockquote&gt;
&lt;p&gt;如果关系 $R$ 的每个实例都满足一个确定的函数依赖 $f$，那么称 $R$ 满足 &lt;strong&gt;函数依赖&lt;/strong&gt; $f$，即在 $R$ 上声明了一个约束。&lt;/p&gt;
&lt;h4 id=&#34;关系的键&#34;&gt;关系的键
&lt;/h4&gt;&lt;p&gt;若属性集 $\{A_1, A_2, \cdots, A_n\}$ 满足：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;它们决定关系的所有其他属性，即关系 $R$ 不可能存在两个不同的元组具备相同的 $A_1, A_2, \cdots, A_n$ 值。&lt;/li&gt;
&lt;li&gt;在 $\{A_1, A_2, \cdots, A_n\}$ 的所有真子集均不能决定关系 $R$ 的所有其他属性，即键必须是最小的。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;则称 $\{A_1, A_2, \cdots, A_n\}$ 是关系 $R$ 的&lt;strong&gt;键&lt;/strong&gt;。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;可以将关系 $R$ 中的键类比为 $n$ 维线性空间的一个 $n$ 元向量组 $[\bm{e}_1, \bm{e}_2, \cdots, \bm{e}_n]$，它可以表示该空间内的所有向量。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;有时，一个关系可能会有多个可行的键，这时需指定其中一个为&lt;strong&gt;主键&lt;/strong&gt;（Primary key）。&lt;/p&gt;
&lt;p&gt;一个包含键的属性集就称为&lt;strong&gt;超建&lt;/strong&gt;。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;容易得出，每个键都是该关系的超键（$A \subseteq A$）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;函数依赖的规则&#34;&gt;函数依赖的规则
&lt;/h3&gt;&lt;p&gt;函数依赖的规则给出了推导函数依赖的一般方法。&lt;/p&gt;
&lt;h4 id=&#34;分解结合规则&#34;&gt;分解/结合规则
&lt;/h4&gt;&lt;p&gt;函数依赖 $A_1 A_2 \cdots A_n \rightarrow B_1 B_2 \cdots B_m$ 等价于下列函数依赖的集合：
&lt;/p&gt;
$$\begin{array}{c}  A_1 A_2 \cdots A_n \rightarrow B_1 \\ A_1 A_2 \cdots A_n \rightarrow B_2 \\ \cdots \\ A_1 A_2 \cdots A_n \rightarrow B_m \end{array}$$&lt;p&gt;从左到右称作函数依赖的分解规则，从右到左称作函数依赖的结合规则。&lt;/p&gt;
&lt;h4 id=&#34;平凡函数依赖&#34;&gt;平凡函数依赖
&lt;/h4&gt;&lt;p&gt;对于函数依赖 $A_1 A_2 \cdots A_n \rightarrow B_1 B_2 \cdots B_m$，若满足 &lt;/p&gt;
$$\{B_1 B_2 \cdots B_m\} \subseteq \{A_1 A_2 \cdots A_n\}$$&lt;p&gt; 则称其为 &lt;strong&gt;平凡函数依赖&lt;/strong&gt;。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;若 $A_1 A_2 \cdots A_n \rightarrow B_1 B_2 \cdots B_m$，且 $\{B_1, B_2, \cdots, B_m\} - \{A_1, A_2, \cdots, A_n\} = \{C_1, C_2, \cdots, C_k\}$，则有 &lt;/p&gt;
$$A_1 A_2 \cdots A_n \rightarrow C_1 C_2 \cdots C_k$$&lt;p&gt; 这称为平凡依赖规则。如图所示：
&lt;figure&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/database/images/%E5%B9%B3%E5%87%A1%E4%BE%9D%E8%B5%96%E8%A7%84%E5%88%99.png&#34; width=&#34;700&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;平凡依赖规则&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;属性的闭包&#34;&gt;属性的闭包
&lt;/h4&gt;&lt;p&gt;设 $\{A_1, A_2, \cdots, A_n\}$ 是属性集合，$S$ 是函数依赖的集合，则 $S$ 下属性集合 $\{A_1, A_2, \cdots, A_n\}$ 的闭包定义为：满足 $S$ 中所有函数依赖关系的属性集合 $B$，记作 $\{A_1, A_2, \cdots, A_n\}^+$&lt;/p&gt;
&lt;p&gt;计算属性闭包的方法：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;设 $X$ 是属性集合 $\{A_1, A_2, \cdots, A_n\}$ 的闭包，首先令 $X = \{A_1, A_2, \cdots, A_n\}$。&lt;/li&gt;
&lt;li&gt;反复寻找函数依赖 $B_1 B_2 \cdots B_n \rightarrow C$ ，使得 $B_1, B_2, \cdots, B_n$ 在 $X$ 中且 $C$ 不再 $X$ 中。然后把 $C$ 加入 $X$。&lt;/li&gt;
&lt;li&gt;重复这个过程，直至无法再添加新的元素到 $X$ 中，计算结束，此时 $\{A_1, A_2, \cdots, A_n\}^+ = X$。&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;传递规则&#34;&gt;传递规则
&lt;/h4&gt;&lt;p&gt;若关系 $R$ 满足 $A_1 A_2 \cdots A_n \rightarrow B_1 B_2 \cdots B_m$ 和 $B_1 B_2 \cdots B_m \rightarrow C_1 C_2 \cdots C_k$，则有 &lt;/p&gt;
$$A_1 A_2 \cdots A_n \rightarrow C_1 C_2 \cdots C_k$$&lt;blockquote&gt;
&lt;p&gt;Armstrong公理&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;公理&lt;/th&gt;
          &lt;th&gt;定义&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;自反律&lt;/td&gt;
          &lt;td&gt;如果 $\{B_1 B_2 \cdots B_m\} \subseteq \{A_1 A_2 \cdots A_n\}$，那么 $A_1 A_2 \cdots A_n \rightarrow B_1 B_2 \cdots B_m$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;增广律&lt;/td&gt;
          &lt;td&gt;如果 $A_1 A_2 \cdots A_n \rightarrow B_1 B_2 \cdots B_m$，那么 $A_1 A_2 \cdots A_n C_1 C_2 \cdots C_k \rightarrow B_1 B_2 \cdots B_m C_1 C_2 \cdots C_k$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;传递律&lt;/td&gt;
          &lt;td&gt;如果 $A_1 A_2 \cdots A_n \rightarrow B_1 B_2 \cdots B_m$ 且 $B_1 B_2 \cdots B_m \rightarrow C_1 C_2 \cdots C_k$，那么 $A_1 A_2 \cdots A_n \rightarrow C_1 C_2 \cdots C_k$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;函数依赖的投影&#34;&gt;函数依赖的投影
&lt;/h4&gt;&lt;p&gt;记 $R_1 = \pi_{L} (R)$，函数依赖集合 $S$ 的投影是满足下列条件的函数依赖的集合：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;从 $S$ 推断而来&lt;/li&gt;
&lt;li&gt;只包含 $R_1$ 的属性&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;模式设计&#34;&gt;模式设计
&lt;/h3&gt;&lt;h4 id=&#34;关系的分解&#34;&gt;关系的分解
&lt;/h4&gt;&lt;p&gt;将关系进行分解（decompose）可用来消除异常。&lt;/p&gt;
&lt;p&gt;给定关系 $R(A_1, A_2, \cdots, A_n)$，把它分解为关系 $S(B_1, B_2, \cdots, B_m)$ 和 $T(C_1, C_2, \cdots, C_k)$，需满足：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;$\{A_1, A_2, \cdots, A_n\} = \{B_1, B_2, \cdots, B_m\} \cup \{C_1, C_2, \cdots C_k\}$&lt;/li&gt;
&lt;li&gt;$S = \pi_{B_1, B_2, \cdots, B_m} (R)$&lt;/li&gt;
&lt;li&gt;$T = \pi_{C_1, C_2, \cdots, C_k} (R)$&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;bc范式&#34;&gt;BC范式
&lt;/h4&gt;&lt;p&gt;分解的目的就是将一个关系用多个不存在异常的关系替换，即在一个简单的条件下保证异常不存在，这个条件就称作BC范式（BCNF）。&lt;/p&gt;
&lt;p&gt;定义：当且仅当如果关系 $R$ 中非平凡函数依赖 $A_1 A_2 \cdots A_n \rightarrow B_1 B_2 \cdots B_m$ 成立，则 $\{A_1, A_2, \cdots, A_n\}$ 是关系 $R$ 的超键。此时称关系 $R$ 为BC范式。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;换言之，就是每个非平凡函数依赖的左侧必须包含该关系的键。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;分解为bc范式&#34;&gt;分解为BC范式
&lt;/h4&gt;&lt;p&gt;目标：将任何一个关系模式分解为带有以下性质的、具有多个属性的子集：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;以这些子集为模式的关系都属于BCNF。&lt;/li&gt;
&lt;li&gt;原始关系中的数据都被正确地反映在分解后的关系上，简单而言就是原始关系应能从分解后的几个关系实例中重构。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;对于任意关系 $R$ 和函数依赖集合 $S$，有BCNF分解算法：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;检验 $R$ 是否为BCNF，若是，直接返回 $R$。&lt;/li&gt;
&lt;li&gt;如果存在违反BCNF的函数依赖，假设为 $X \rightarrow Y$。计算 $X$ 的闭包 $X^+$。选择 $R_1 = X^+$ 作为一个关系模式，并使另一个关系模式 $R_2$ 包含属性 $X$ 以及不在 $X^+$ 的属性。&lt;/li&gt;
&lt;li&gt;计算 $R_1$ 和 $R_2$ 的函数依赖集合，记为 $S_1$ 和 $S_2$，并递归地分解 $R_1$ 和 $R_2$，返回最终分解的集合。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;分解的优劣&#34;&gt;分解的优劣
&lt;/h3&gt;&lt;p&gt;一个分解应当具有3个性质：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;性质&lt;/th&gt;
          &lt;th&gt;特点&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;消除异常&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;信息可恢复&lt;/td&gt;
          &lt;td&gt;能够从分解后的各个元组中恢复原始关系。&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;依赖的保持&lt;/td&gt;
          &lt;td&gt;如果函数依赖的投影在分解后的关系上成立，能确保对分解后的关系用连接重构获取原始关系仍然满足原来的函数依赖&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;事实上，没有一种分解能同时具备以上3个性质。&lt;/p&gt;
&lt;h4 id=&#34;从分解中恢复信息&#34;&gt;从分解中恢复信息
&lt;/h4&gt;&lt;p&gt;若可以通过分解后的各个关系重构原关系 $R$，则称该分解含有&lt;strong&gt;无损连接&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;设关系 $R(X,Y,Z)$，且具备函数依赖 $X \rightarrow Y$，则可以依据BCNF分解算法将关系分解为 $R_1(X,Y)$ 和 $R_2(Y,Z)$，且 &lt;/p&gt;
$$R = \pi_{X \cup Y}(R) \bowtie \pi_{Y \cup Z}(R)$$&lt;p&gt; 即该分解包含无损连接。&lt;/p&gt;
&lt;h4 id=&#34;无损连接的检验&#34;&gt;无损连接的检验
&lt;/h4&gt;&lt;p&gt;设关系 $R$ 被分解为若干关系，它们的属性集分别为 $S_1, S_2, \cdots, S_k$，在 $R$ 上成立的函数依赖集合为 $F$。则 $\pi_{S_1}(R) \bowtie \pi_{S_2}(R) \bowtie \cdots \bowtie \pi_{S_k}(R) = R$ 成立当且仅当连接结果中的每个元组都属于 $R$。这称为无损连接的chase检验。&lt;/p&gt;
&lt;h4 id=&#34;依赖的保持&#34;&gt;依赖的保持
&lt;/h4&gt;&lt;p&gt;在某些情况下，把一个关系分解为一系列BCNF关系时，无法同时拥有无损连接和依赖保持两种性质。&lt;/p&gt;
&lt;h3 id=&#34;第三范式&#34;&gt;第三范式
&lt;/h3&gt;&lt;p&gt;定义：如果一个关系 $R$ 满足只要 $A_1 A_2 \cdots A_n \rightarrow B_1 B_2 \cdots B_m$ 是非平凡函数依赖，那么或者 $\{A_1, A_2 ,\cdots, A_n\}$ 是超键，或者每个属于 $B_1, B_2, \cdots, B_n$ 但不属于 $A$ 的属性都是某个键的成员。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;如果一个属性是某个键的成员，则常被成为“主属性”。因此，3NF的条件等价于：对于每个非平凡FD，或者其左边是超键，或者其右边仅由主属性构成。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;多值依赖&#34;&gt;多值依赖
&lt;/h3&gt;&lt;h2 id=&#34;mysql&#34;&gt;MySQL
&lt;/h2&gt;&lt;p&gt;MySQL是目前流行的数据库管理系统，使用SQL语法操作和管理。&lt;/p&gt;
&lt;h3 id=&#34;准备工作&#34;&gt;准备工作
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 安装MYSQL&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt-get install mysql-server
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 启动MySQL服务&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;sudo service mysql start
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 登录MySQL&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;mysql -u &lt;span class=&#34;s1&#34;&gt;&amp;#39;用户名&amp;#39;&lt;/span&gt; -p &lt;span class=&#34;s1&#34;&gt;&amp;#39;密码&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;配置mysql&#34;&gt;配置MySQL
&lt;/h3&gt;&lt;p&gt;首先进入MySQL界面，然后操作：&lt;/p&gt;
&lt;h4 id=&#34;设置用户密码&#34;&gt;设置用户密码
&lt;/h4&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;ALTER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;USER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;root&amp;#39;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;localhost&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IDENTIFIED&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WITH&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mysql_native_password&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;BY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;你的新密码&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;FLUSH&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;PRIVILEGES&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;EXIT&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;退出后以新的密码即可登录MySQL。&lt;/p&gt;
&lt;h4 id=&#34;允许远程访问&#34;&gt;允许远程访问
&lt;/h4&gt;&lt;p&gt;在Shell中输入：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;找到&lt;code&gt;bind-address&lt;/code&gt;，将其修改为&lt;code&gt;0.0.0.0&lt;/code&gt;或注释掉该行。&lt;/p&gt;
&lt;p&gt;保存后重启服务：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;sudo service mysql restart
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;创建新用户&#34;&gt;创建新用户
&lt;/h4&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;CREATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;USER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;新用户名&amp;#39;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;%&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IDENTIFIED&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;BY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;新密码&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;GRANT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ALL&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;PRIVILEGES&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ON&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TO&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;新用户名&amp;#39;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;%&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WITH&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;GRANT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;OPTION&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;FLUSH&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;PRIVILEGES&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;退出后以新的用户名和密码即可登录MySQL。&lt;/p&gt;
&lt;h3 id=&#34;通用语法&#34;&gt;通用语法
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;单行或多行书写，&lt;strong&gt;以分号结尾&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;可以使用空格/缩进。&lt;/li&gt;
&lt;li&gt;SQL语句不区分大小写，关键字建议大写。&lt;/li&gt;
&lt;li&gt;单行注释：&lt;code&gt;--注释内容&lt;/code&gt;或&lt;code&gt;# 注释内容&lt;/code&gt;；多行注释：&lt;code&gt;/* 注释内容 */&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;其他参照&lt;a class=&#34;link&#34; href=&#34;#sql%e8%af%ad%e8%a8%80&#34; &gt;SQL语言
    
    

&lt;/a&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;opengauss&#34;&gt;openGauss
&lt;/h2&gt;&lt;h2 id=&#34;数据库管理可视化&#34;&gt;数据库管理可视化
&lt;/h2&gt;&lt;p&gt;面对单调的SQL代码是非常无聊的，因此通过软件可视化管理数据库是不错的选择。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;软件&lt;/th&gt;
          &lt;th&gt;介绍&lt;/th&gt;
          &lt;th&gt;版本&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.navicat.com.cn/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Navicat
    
    
    &lt;span style=&#34;white-space: nowrap;&#34;&gt;&lt;svg width=&#34;.7em&#34;
        height=&#34;.7em&#34; viewBox=&#34;0 0 21 21&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
        &lt;path d=&#34;m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z&#34; fill=&#34;currentColor&#34; /&gt;
        &lt;path d=&#34;M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z&#34;
            fill=&#34;currentColor&#34;&gt;
    &lt;/svg&gt;&lt;/span&gt;
    

&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Navicat是一款综合性的数据库管理软件，允许通过一个界面连接和管理多个数据库（其实这个功能大多数类似软件都有）。&lt;/td&gt;
          &lt;td&gt;Navicat提供多个版本，其中只有Navicat Premium Lite可免费使用（貌似还要注册一个账号）。&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://dbeaver.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DBeaver
    
    
    &lt;span style=&#34;white-space: nowrap;&#34;&gt;&lt;svg width=&#34;.7em&#34;
        height=&#34;.7em&#34; viewBox=&#34;0 0 21 21&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
        &lt;path d=&#34;m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z&#34; fill=&#34;currentColor&#34; /&gt;
        &lt;path d=&#34;M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z&#34;
            fill=&#34;currentColor&#34;&gt;
    &lt;/svg&gt;&lt;/span&gt;
    

&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;功能与Navicat类似&lt;/td&gt;
          &lt;td&gt;它提供免费的社区版下载，而且不用注册账号，就像JetBrain全家桶&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.mysql.com/products/workbench/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;MySQL Workbench
    
    
    &lt;span style=&#34;white-space: nowrap;&#34;&gt;&lt;svg width=&#34;.7em&#34;
        height=&#34;.7em&#34; viewBox=&#34;0 0 21 21&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
        &lt;path d=&#34;m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z&#34; fill=&#34;currentColor&#34; /&gt;
        &lt;path d=&#34;M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z&#34;
            fill=&#34;currentColor&#34;&gt;
    &lt;/svg&gt;&lt;/span&gt;
    

&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;MySQL的官方提供的可视化管理工具&lt;/td&gt;
          &lt;td&gt;免费，但是没有中文支持。&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
</description>
        </item>
        <item>
        <title>并行计算</title>
        <link>https://rd806.github.io/passage/cs/parallel_computing/</link>
        <pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate>
        
        <guid>https://rd806.github.io/passage/cs/parallel_computing/</guid>
        <description>&lt;h2 id=&#34;并行计算概述&#34;&gt;并行计算概述
&lt;/h2&gt;&lt;h3 id=&#34;并行计算基本概念&#34;&gt;并行计算基本概念
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;基本概念&lt;/th&gt;
          &lt;th&gt;内容&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;计算&lt;/td&gt;
          &lt;td&gt;数学计算、数据处理、IT服务&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;性能&lt;/td&gt;
          &lt;td&gt;FLOPS（浮点计算数/秒）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;浮点计算能力&lt;/td&gt;
          &lt;td&gt;计算机主频每时钟周期的浮点指令数&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;产生原因&lt;/td&gt;
          &lt;td&gt;满足不断增长的计算力需求：用多个处理器同时解决一个问题 &lt;br&gt; 计算机硬件与网络技术的发展 &lt;br&gt; 单处理器性能提升受限 &lt;br&gt; 存储、I/O速率远低于处理器&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;并行化方法&#34;&gt;并行化方法
&lt;/h3&gt;&lt;h4 id=&#34;域分解&#34;&gt;域分解
&lt;/h4&gt;&lt;p&gt;首先确定数据如何划分到各个处理器，然后确定每个处理器所需要做的事情。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/parallel_computing/images/%E5%9F%9F%E5%88%86%E8%A7%A3.png&#34;
	width=&#34;828&#34;
	height=&#34;1094&#34;
	srcset=&#34;https://rd806.github.io/passage/cs/parallel_computing/images/%E5%9F%9F%E5%88%86%E8%A7%A3_hu_d16635a4070605c8.png 480w, https://rd806.github.io/passage/cs/parallel_computing/images/%E5%9F%9F%E5%88%86%E8%A7%A3_hu_9fb63832946c4816.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;域分解&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;181px&#34;
	
&gt;&lt;/p&gt;
&lt;h4 id=&#34;任务分解&#34;&gt;任务分解
&lt;/h4&gt;&lt;p&gt;首先将任务划分到各个处理器，然后确定各个处理器需要处理的数据。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/parallel_computing/images/%E4%BB%BB%E5%8A%A1%E5%88%86%E8%A7%A3.png&#34;
	width=&#34;762&#34;
	height=&#34;612&#34;
	srcset=&#34;https://rd806.github.io/passage/cs/parallel_computing/images/%E4%BB%BB%E5%8A%A1%E5%88%86%E8%A7%A3_hu_2b41803064b52d03.png 480w, https://rd806.github.io/passage/cs/parallel_computing/images/%E4%BB%BB%E5%8A%A1%E5%88%86%E8%A7%A3_hu_302bc892a09faf98.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;任务分解&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;124&#34;
		data-flex-basis=&#34;298px&#34;
	
&gt;&lt;/p&gt;
&lt;h4 id=&#34;流水线&#34;&gt;流水线
&lt;/h4&gt;&lt;p&gt;将一个任务拆分成多个步骤，通过不同步骤在时间上的重叠达到“并行”的效果。&lt;/p&gt;
&lt;h2 id=&#34;并行计算硬件环境&#34;&gt;并行计算硬件环境
&lt;/h2&gt;&lt;h3 id=&#34;pram模型&#34;&gt;PRAM模型
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;PRAM&lt;/strong&gt;全称为Parallel Random Access Machine，它具备以下特点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;每个处理器可同时从共享的内存中读取数据到自己的寄存器&lt;/li&gt;
&lt;li&gt;每个处理器执行计算过程，数据存储在本地寄存器&lt;/li&gt;
&lt;li&gt;每个处理器可同时将数据写入到共享的内存（存在潜在冲突）&lt;/li&gt;
&lt;/ol&gt;
&lt;figure&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/parallel_computing/images/PRAM%E6%A8%A1%E5%9E%8B.png&#34; width=&#34;900&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;PRAM模型&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;blockquote&gt;
&lt;p&gt;PRAM模型可以衍生出以下模型：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;模型&lt;/th&gt;
          &lt;th&gt;特点&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;EREW&lt;/td&gt;
          &lt;td&gt;任意两个处理器不能并发读，也不能并发写&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CREW&lt;/td&gt;
          &lt;td&gt;可以并发读，但不能并发写&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CRCW&lt;/td&gt;
          &lt;td&gt;可以并发读，也可以并发写&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/blockquote&gt;
&lt;p&gt;根据PRAM模型，可以对&lt;a class=&#34;link&#34; href=&#34;https://rd806.github.io/p/algorithm/#%e5%89%8d%e7%bc%80%e5%92%8c&#34; &gt;前缀求和
    
    

&lt;/a&gt;作出并行算法设计：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/parallel_computing/images/%E5%89%8D%E7%BC%80%E6%B1%82%E5%92%8C.png&#34;
	width=&#34;760&#34;
	height=&#34;409&#34;
	srcset=&#34;https://rd806.github.io/passage/cs/parallel_computing/images/%E5%89%8D%E7%BC%80%E6%B1%82%E5%92%8C_hu_66bb72342530a23c.png 480w, https://rd806.github.io/passage/cs/parallel_computing/images/%E5%89%8D%E7%BC%80%E6%B1%82%E5%92%8C_hu_d0fd774f5a0022a5.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;前缀求和&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;185&#34;
		data-flex-basis=&#34;445px&#34;
	
&gt;&lt;/p&gt;
&lt;h3 id=&#34;处理器&#34;&gt;处理器
&lt;/h3&gt;&lt;h4 id=&#34;simd体系&#34;&gt;SIMD体系
&lt;/h4&gt;&lt;p&gt;SIMD是一条指令同时操作多个数据，适合数据级并行的计算机体系结构。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Flynn分类法（Flynn&amp;rsquo;s Taxonomy）是计算机体系结构领域最经典的分类方法之一。它根据指令流（Instruction Stream）——机器执行的指令序列，和数据流（Data Stream）——由指令流调用的数据序列两个维度的&amp;quot;单&amp;quot;（Single）或&amp;quot;多&amp;quot;（Multiple）组合，将计算机体系结构分为四类：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;类型&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;全称&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;指令流&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;数据流&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;典型代表&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;特征&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;SISD&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Single Instruction Single Data&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;单&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;单&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;早期单核CPU（如Intel 8086）、传统冯·诺依曼架构&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;顺序执行，一次处理一个任务的一&amp;gt; 份数据&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;SIMD&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Single Instruction Multiple Data&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;单&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;多&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;GPU、向量处理器、Intel SSE/AVX指令集&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;一条指令同时操作多个数据，适合数据级并行&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;MISD&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Multiple Instruction Single Data&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;多&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;单&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;极少见，主要用于容错系统（如航天器冗余控制）&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;多个指令同时处理同一数据，理论意义大于实际&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;MIMD&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Multiple Instruction Multiple Data&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;多&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;多&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;多核CPU、分布式计算集群、高性能服务器&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;多个独立指令流处理多个数据流，实现任务级并行&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;多核处理器&#34;&gt;多核处理器
&lt;/h4&gt;&lt;p&gt;进入21世纪，曾预言“CPU主频18个月翻一番”的摩尔定律不再适用于当下处理器的发展方向。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;限制单核性能主要有以下几个方面：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;功耗墙：CPU越小，单位面积产生的热量越多，散热越困难。&lt;/li&gt;
&lt;li&gt;存储墙：CPU缓存占据了70%以上的芯片面积，限制了性能的进一步提升。&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;多核处理器的特点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;多个复杂度适中，相对低功耗的处理核心并行工作。&lt;/li&gt;
&lt;li&gt;CPU时钟频率基本不变、&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;gpu&#34;&gt;GPU
&lt;/h4&gt;&lt;p&gt;GPU将更多元件用于数据处理，而非控制和存储。&lt;/p&gt;
&lt;p&gt;可以将GPU视作超大规模并行协处理器和SPMD（单程序多数据）模式，实现了数据并行。&lt;/p&gt;
&lt;h3 id=&#34;互连网络&#34;&gt;互连网络
&lt;/h3&gt;&lt;p&gt;静态互连网络：处理单元之间有固定连接的一类网络，在程序执行期间这种点到点的链接保持不变：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;分类&lt;/th&gt;
          &lt;th&gt;特点&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;一维线性阵列&lt;/td&gt;
          &lt;td&gt;每个节点只与其左右近邻相连（$N$个节点用$N-1$条边串接）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;二维网孔&lt;/td&gt;
          &lt;td&gt;每个节点只与其上、下、左、右的近邻相连（边界结点除外）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;二叉树&lt;/td&gt;
          &lt;td&gt;与完全二叉树的结构类似&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;超立方&lt;/td&gt;
          &lt;td&gt;更为复杂的空间结构&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;动态网络：用交换开关构成的，可按应用程序的要求动态地改变连接组态。包括总线、交叉开关等&lt;/p&gt;
&lt;h3 id=&#34;内存访问模式&#34;&gt;内存访问模式
&lt;/h3&gt;&lt;h3 id=&#34;并行计算系统的体系结构&#34;&gt;并行计算系统的体系结构
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;体系结构&lt;/th&gt;
          &lt;th&gt;特点&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;PVP（Parallel Vector Processor）&lt;/td&gt;
          &lt;td&gt;含有为数不多、功能强大的定制向量处理器&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;SMP（Symmetric Multiprocessor）&lt;/td&gt;
          &lt;td&gt;多个处理器通过总线或交叉开关连接到共享存储器&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;MMP（Massively Parallel Processor）&lt;/td&gt;
          &lt;td&gt;处理节点采用微处理器，系统中有物理上的分布式存储器&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;多线程并行程序设计&#34;&gt;多线程并行程序设计
&lt;/h2&gt;&lt;h3 id=&#34;多线程基本概念&#34;&gt;多线程基本概念
&lt;/h3&gt;&lt;p&gt;线程（Thread）是进程上下文（contex）中执行的代码序列，也称作轻量级进程。&lt;/p&gt;
&lt;p&gt;在支持多线程的系统中，进程是资源分配的实体，线程是被调度执行的基本单元。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;线程与进程的比较&lt;/th&gt;
          &lt;th&gt;内容&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;调度&lt;/td&gt;
          &lt;td&gt;线程是CPU调度的基本单位，进程是资源拥有的基本单位。同一进程中线程的切换不会引起进程切换，从而避免频繁的系统调用。&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;并发性&lt;/td&gt;
          &lt;td&gt;不仅进程之间可以并发执行，一个进程的多个线程之间也可以并发执行，一个进程下可设置多个线程&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;拥有资源&lt;/td&gt;
          &lt;td&gt;进程是拥有资源的独立单位；线程不拥有系统资源，但可以访问其所属进程的资源，即一个进程的资源可供其所有线程共享。&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;系统开销&lt;/td&gt;
          &lt;td&gt;进程在创建或销毁时系统均需要为之分配或回收资源，进程切换时系统需保存当前进程的所有设置；线程切换时只需保存和设置少量寄存器的内容，同一进程的线程之间的通信比较容易。&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;在计算机中，系统通过线程池管理线程。一个线程池可维护多个线程，等待调度器分配可并发执行的任务。避免了在短处理时间任务时创建与销毁线程的代价。&lt;/p&gt;
&lt;h3 id=&#34;共享存储访问&#34;&gt;共享存储访问
&lt;/h3&gt;&lt;p&gt;计算机采用层次结构存储系统。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/parallel_computing/images/%E5%AD%98%E5%82%A8%E5%99%A8%E5%B1%82%E6%AC%A1%E7%BB%93%E6%9E%84.png&#34;
	width=&#34;1149&#34;
	height=&#34;423&#34;
	srcset=&#34;https://rd806.github.io/passage/cs/parallel_computing/images/%E5%AD%98%E5%82%A8%E5%99%A8%E5%B1%82%E6%AC%A1%E7%BB%93%E6%9E%84_hu_51f720a9b3b92b4e.png 480w, https://rd806.github.io/passage/cs/parallel_computing/images/%E5%AD%98%E5%82%A8%E5%99%A8%E5%B1%82%E6%AC%A1%E7%BB%93%E6%9E%84_hu_7d251da3d3a79e7f.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;存储器层次结构&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;271&#34;
		data-flex-basis=&#34;651px&#34;
	
&gt;&lt;/p&gt;
&lt;h4 id=&#34;竞态条件与临界区&#34;&gt;竞态条件与临界区
&lt;/h4&gt;&lt;p&gt;但是这样会出现&lt;strong&gt;竞态条件&lt;/strong&gt;（Race Conditions）：当两个或多个线程试图在同一时刻访问共享内存或读写某些共享数据时，寄存器的值可能无法及时更新，导致最后的结果取决于线程的执行顺序。&lt;/p&gt;
&lt;p&gt;为了解决这一困境，提出了&lt;strong&gt;临界区&lt;/strong&gt;的概念：包含访问共享数据的代码。因此，在临界区内，任意时刻至多只能有一个线程在执行相关代码。&lt;/p&gt;
&lt;h4 id=&#34;互斥锁&#34;&gt;互斥锁
&lt;/h4&gt;&lt;p&gt;互斥锁（mutex）是实现线程同步的一种方法。线程对共享资源访问之前必须先获得锁，否则线程将保持等待状态，直到该锁可用。&lt;/p&gt;
&lt;h3 id=&#34;实例分析&#34;&gt;实例分析
&lt;/h3&gt;&lt;p&gt;假设现有一段长文本，要求统计其中3的个数&lt;/p&gt;
&lt;p&gt;普通的串行代码应为：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-c&#34; data-lang=&#34;c&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;array&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;length&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;count&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;countThree&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;count&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;length&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;++&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;array&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;count&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;++&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;count&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;运用域分解并行化方法，将其划分为若干个子数据段：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-c&#34; data-lang=&#34;c&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;array&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;length&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;count&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;countThree&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;count&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;// 创建线程
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;++&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nf&#34;&gt;thread_create&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;countThree_thread&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;count&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;void&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;countThree_thread&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;17&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;length_per_thread&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;length&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;start&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;id&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;length_per_thread&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;19&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;start&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;start&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;length_per_thread&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;++&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;21&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;array&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;22&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;c1&#34;&gt;// 加互斥锁
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;23&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nf&#34;&gt;mutex_lock&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;24&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;count&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;++&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;25&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;c1&#34;&gt;// 解锁
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;26&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nf&#34;&gt;mutex_unlock&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;27&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;28&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;29&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;但是，此并行算法的性能远不及串行算法：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/parallel_computing/images/%E7%AE%97%E6%B3%95%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%901.png&#34;
	width=&#34;948&#34;
	height=&#34;568&#34;
	srcset=&#34;https://rd806.github.io/passage/cs/parallel_computing/images/%E7%AE%97%E6%B3%95%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%901_hu_9e4606d0ceb22404.png 480w, https://rd806.github.io/passage/cs/parallel_computing/images/%E7%AE%97%E6%B3%95%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%901_hu_5559e9f8e1e720ae.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;算法性能分析1&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;166&#34;
		data-flex-basis=&#34;400px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;这是因为加锁会消耗时间，同时所有线程两两互斥可看作串行逻辑，并没有变化。&lt;/p&gt;
&lt;p&gt;改进方法：加锁过程应当放在循环计数外。当每个线程分别计数完成后，再将各个数目相加得到总数目。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-c&#34; data-lang=&#34;c&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;private_count&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;MaxThreads&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;mutex&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;void&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;countThree_thread&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;length_per_thread&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;length&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;start&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;id&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;length_per_thread&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;start&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;start&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;length_per_thread&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;++&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;array&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;private_count&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;++&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;// 汇总时必须加锁，防止出现竞争
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;mutex_lock&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;count&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;private_count&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;17&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;mutex_unlock&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;修改后并行效率大幅提升，但仍与串行有差距。这是因为计算机系统的cache一致性与伪共享，虽然不同线程的&lt;code&gt;private_count&lt;/code&gt;形式上互不干扰，但在缓存中可能处于一个缓存块中，在更新数据时会发生阻塞。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/parallel_computing/images/%E7%AE%97%E6%B3%95%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%902.png&#34;
	width=&#34;886&#34;
	height=&#34;626&#34;
	srcset=&#34;https://rd806.github.io/passage/cs/parallel_computing/images/%E7%AE%97%E6%B3%95%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%902_hu_d4a7b5aace31fb51.png 480w, https://rd806.github.io/passage/cs/parallel_computing/images/%E7%AE%97%E6%B3%95%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%902_hu_89b311bd4404ead.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;算法性能分析2&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;141&#34;
		data-flex-basis=&#34;339px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;一种解决办法是强行将计数器的占用加大，使它们分别位于不同的缓存块中。&lt;/p&gt;
&lt;h3 id=&#34;pthread多线段&#34;&gt;PThread多线段
&lt;/h3&gt;&lt;p&gt;主要操作函数：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;函数&lt;/th&gt;
          &lt;th&gt;功能&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;pthread_create&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;创建一个线程&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;pthread_cancel&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;终止另一个线程&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;pthread_detach&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;分离线程&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;pthread_equal&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;检查两个线程的id是否相等&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;pthread_exit&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;退出线程但不退出进程&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;pthread_join&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;等待一个线程&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;pthread_self&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;获得自己的线程id&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;java多线程&#34;&gt;Java多线程
&lt;/h3&gt;&lt;p&gt;创建方法：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;通过&lt;code&gt;Thread&lt;/code&gt;类的子类实现多线程。&lt;/li&gt;
&lt;li&gt;定义一个实现&lt;code&gt;Runnable&lt;/code&gt;接口的类实现多线程。&lt;/li&gt;
&lt;/ol&gt;
</description>
        </item>
        <item>
        <title>算法设计与分析</title>
        <link>https://rd806.github.io/passage/cs/algorithm/</link>
        <pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate>
        
        <guid>https://rd806.github.io/passage/cs/algorithm/</guid>
        <description>&lt;img src="https://rd806.github.io/passage/cs/algorithm/daniil-komov-7lzjMwexxnU-unsplash.jpg" alt="Featured image of post 算法设计与分析" /&gt;&lt;center&gt;&lt;strong&gt;&lt;p style=&#34;font-size:32px;&#34;&gt;程序 = &lt;a href=&#34;https://rd806.github.io/passage/cs/data-structure/&#34;&gt;数据结构&lt;/a&gt; + 算法&lt;/p&gt;&lt;/strong&gt;&lt;/center&gt;


&lt;blockquote class=&#34;alert alert-note&#34;&gt;
    &lt;p&gt;计算机科学并不只是关于计算机，就像天文学并不只关于望远镜一样。—— Edsger Dijkstra&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;参考资料：&lt;a class=&#34;link&#34; href=&#34;https://www.bilibili.com/video/BV1QV4y1m7oo?spm_id_from=333.788.videopod.sections&amp;amp;vd_source=3f0e843792d165dc47136a5548be81da&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;点击此处
    
    
    &lt;span style=&#34;white-space: nowrap;&#34;&gt;&lt;svg width=&#34;.7em&#34;
        height=&#34;.7em&#34; viewBox=&#34;0 0 21 21&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
        &lt;path d=&#34;m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z&#34; fill=&#34;currentColor&#34; /&gt;
        &lt;path d=&#34;M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z&#34;
            fill=&#34;currentColor&#34;&gt;
    &lt;/svg&gt;&lt;/span&gt;
    

&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;算法的基本概念&#34;&gt;算法的基本概念
&lt;/h2&gt;&lt;p&gt;算法是对特定问题求解的一种描述，是指令的有限序列。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;算法&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;特点&lt;/td&gt;
          &lt;td&gt;有穷性、确定性、可行性、输入、输出。&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;正确算法&lt;/td&gt;
          &lt;td&gt;对于每一个输入都最终停止，而且产生了正确的输出&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;不正确算法&lt;/td&gt;
          &lt;td&gt;在某个输入上不停止；对所有输入都停止但对某输入产生不正确的结构&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;近似算法&lt;/td&gt;
          &lt;td&gt;对所有输入都停止&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;复杂度&lt;/td&gt;
          &lt;td&gt;时间复杂度：基本运算（原子操作）的执行次数；空间复杂度：算法所需存储空间的大小&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;基本运算&lt;/td&gt;
          &lt;td&gt;解决给定问题时占支配地位的运算。讨论一个算法的优劣通常只考虑基本运算&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;算法分析的数学基础&#34;&gt;算法分析的数学基础
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;记号&lt;/th&gt;
          &lt;th&gt;含义&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;$\lfloor x \rfloor$&lt;/td&gt;
          &lt;td&gt;小于等于 $x$ 的最大整数&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$\lceil x \rceil$&lt;/td&gt;
          &lt;td&gt;大于等于 $x$ 的最小整数&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$\log n$&lt;/td&gt;
          &lt;td&gt;$\log n = \log_{2} n$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$\ln n$&lt;/td&gt;
          &lt;td&gt;$\ln n = \log_{\mathrm{e}} n$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;复杂性函数的阶&#34;&gt;复杂性函数的阶
&lt;/h3&gt;&lt;h4 id=&#34;渐进复杂性&#34;&gt;渐进复杂性
&lt;/h4&gt;&lt;p&gt;当输入规模 $n$ 趋近于极限时的复杂性&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;复杂性函数&lt;/th&gt;
          &lt;th&gt;定义&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;$$T(n) = \varOmega(f(n))$$&lt;/td&gt;
          &lt;td&gt;如果存在 $c&amp;gt;0$ 与正整数 $n_0 \leqslant 1$，当 $n \geqslant n_0$ 时，都有 $T(n) \geqslant c \cdot f(n)$ 成立，则称 $T(n)$ 是 $f(n)$ 的高阶，它给出了算法复杂度的下界&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$$T(n) = O(f(n))$$&lt;/td&gt;
          &lt;td&gt;如果存在 $c&amp;gt;0$ 与正整数 $n_0 \leqslant 1$，当 $n \geqslant n_0$ 时，都有 $T(n) \leqslant c \cdot f(n)$ 成立，则称 $T(n)$ 是 $f(n)$ 的低阶，它给出了算法复杂度的上界&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$$T(n) = \varTheta(f(n))$$&lt;/td&gt;
          &lt;td&gt;如果存在 $c_1, c_2 &amp;gt; 0$ 与正整数 $n_0 \leqslant 1$，当 $n \geqslant n_0$ 时，都有 $c_2 f(n) \leqslant T(n) \leqslant c_1 f(n)$ 恒成立，则称 $T(n)$ 与 $f(n)$ 同阶&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;严格低阶函数集合&lt;/td&gt;
          &lt;td&gt;$o(g(n)) = \{ f(n) | 对任意 c&amp;gt;0，都存在正整数 n_0，使得当 n&amp;gt;n_0 时都有 0 \leqslant f(n) \leqslant c \cdot g(n) \}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;严格高阶函数集合&lt;/td&gt;
          &lt;td&gt;$\omega(g(n)) = \{ f(n) | 对任意 c&amp;gt;0，都存在正整数 n_0，使得当 n&amp;gt;n_0 时都有 0 \leqslant c \cdot g(n) \leqslant f(n) \}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;严格上界&lt;/td&gt;
          &lt;td&gt;若 $f(n) \in o(g(n))$，称 $g(n)$ 是 $f(n)$ 的严格上界，记作 $f(n) = o(g(n))$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;严格下界&lt;/td&gt;
          &lt;td&gt;若 $f(n) \in \omega(g(n))$，称 $g(n)$ 是 $f(n)$ 的严格下界，记作 $f(n) = \omega(g(n))$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;例如，对于 $f(n) = 3n^3+2n^2$，取 $n_0 = 1$，当 $n \geqslant n_0 = 1$ 时：&lt;/p&gt;
&lt;p&gt;取 $c_1 = 5$，有 $T(n) \leqslant 5n^3$ 成立，即有 $T(n) = \varOmega(n^3)$&lt;/p&gt;
&lt;p&gt;取 $c_2 = 3$，有 $T(n) \geqslant 3n^3$ 成立，即有 $T(n) = O(n^3)$&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;若 $f(n) = o(g(n))$，则有 $\displaystyle \lim_{n \to \infty} \frac{f(n)}{g(n)} = 0$&lt;/p&gt;
&lt;p&gt;若 $f(n) = \omega(g(n))$，当且仅当 $g(n) \in o(f(n))$&lt;/p&gt;
&lt;h4 id=&#34;函数阶的性质&#34;&gt;函数阶的性质
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;性质&lt;/th&gt;
          &lt;th&gt;表达式&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;传递性&lt;/td&gt;
          &lt;td&gt;$f(n) = \varTheta(g(n))$ 且 $g(n) = \varTheta(h(n))$，则有 $f(n) = \varTheta(h(n))$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;自反性&lt;/td&gt;
          &lt;td&gt;$f(n) = \varTheta(f(n))$，$f(n) = \Omega(f(n))$，$f(n) = O(f(n))$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;对称性&lt;/td&gt;
          &lt;td&gt;若 $f(n) = \Omega(g(n))$，则有 $g(n) = O(f(n))$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;反对称性&lt;/td&gt;
          &lt;td&gt;$f(n) = O(g(n))$，当且仅当 $g(n) \in \Omega(f(n))$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;并非所有函数都是可比的，例如 $f(n) = n$ 和 $g(n) = n^{1+\sin n}$&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;多项式时间的算法之间有差距，但一般可接受。&lt;/p&gt;
&lt;p&gt;指数量级的算法对于较大的 $n$ 无使用价值。&lt;/p&gt;
&lt;h3 id=&#34;和的估计与界限&#34;&gt;和的估计与界限
&lt;/h3&gt;&lt;h4 id=&#34;直接求和&#34;&gt;直接求和
&lt;/h4&gt;&lt;p&gt;$\displaystyle \sum_{k=1}^{n} a_k \leqslant n \max_{1 \leqslant k \leqslant n} a_k$&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;例如：$\displaystyle \sum_{k=1}^{n} k \leqslant \sum_{k=1}^{n} n \leqslant n^2$&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;对于所有 $k&amp;gt;0$，都有 $\frac{a_{k+1}}{a_k} \leqslant r &amp;lt; 1$，则 $\displaystyle \sum_{k=1}^{n} a_k \leqslant \sum_{k=1}^{n} a_0 r^k \leqslant \frac{a_0}{1-r}$&lt;/p&gt;
&lt;h4 id=&#34;求和转换为积分&#34;&gt;求和转换为积分
&lt;/h4&gt;&lt;p&gt;当 $f(x)$ 单调递增时，有 $\displaystyle \int_{m-1}^{n} f(x) \mathrm{d}x \leqslant \sum_{k=m}^{n} f(x) \leqslant \int_{m}^{n+1} f(x) \mathrm{d}x $&lt;/p&gt;
&lt;p&gt;当 $f(x)$ 单调递减时，有 $\displaystyle \int_{m}^{n+1} f(x) \mathrm{d}x \leqslant \sum_{k=m}^{n} f(x) \leqslant \int_{m-1}^{n} f(x) \mathrm{d}x $&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;例如，在算法分析中经常出现的 $\log n!$ 可作如下分析：&lt;/p&gt;
&lt;p&gt;由对数运算性质可知，&lt;/p&gt;
$$ \log n! = \sum_{k=1}^{n} \log k $$&lt;p&gt; 则有上界：&lt;/p&gt;
$$ \sum_{k=1}^{n} \log k \leqslant \int_{1}^{n+1} \log x \mathrm{d}x $$&lt;figure&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/algorithm/images/%E7%A7%AF%E5%88%86%E6%B1%82%E5%92%8C%E7%9A%84%E4%B8%8A%E7%95%8C.png&#34; width=&#34;900&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;积分求和的上界&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;同理，可知下界：&lt;/p&gt;
$$ \sum_{k=1}^{n} \log k \geqslant \int_{0}^{n} \log x \mathrm{d}x $$&lt;figure&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/algorithm/images/%E7%A7%AF%E5%88%86%E6%B1%82%E5%92%8C%E7%9A%84%E4%B8%8B%E7%95%8C.png&#34; width=&#34;900&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;积分求和的下界&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;综合两式可得：$\log n! = \varTheta(n\log n)$，该求和公式在快速排序等算法中有重要作用。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;递归方程&#34;&gt;递归方程
&lt;/h3&gt;&lt;h4 id=&#34;逐层展开法&#34;&gt;逐层展开法
&lt;/h4&gt;&lt;p&gt;案例：归并排序的递归方程&lt;/p&gt;
$$T(n) = \left\{ \begin{matrix} \begin{align*} &amp;\varTheta(1), &amp; n=1 \\\\ &amp;2T\displaystyle \left(\frac{n}{2}\right) + \varTheta(n), &amp; n \geqslant 1 \end{align*} \end{matrix} \right.$$&lt;p&gt;将其展开可得：&lt;/p&gt;
$$\begin{align*} T(n) &amp;= n + 3T\left(\left\lfloor \frac{n}{4} \right\rfloor\right) \\\\ &amp;= n + 3\left(\left\lfloor \frac{n}{4} \right\rfloor + 3T\left( \left\lfloor \frac{n}{16} \right\rfloor \right)\right) \\\\ &amp;= n + 3\left\lfloor \frac{n}{4} \right\rfloor + 3^2 \left\lfloor \frac{n}{4^2} \right\rfloor + 3^3 \left\lfloor \frac{n}{4^3} \right\rfloor + \cdots + 3^k T \left(\left\lfloor \frac{n}{4^k} \right\rfloor \right) \end{align*}$$&lt;p&gt;深度 $k = \log_{4}n$，最底层有 $3^k = 3^{\log_{4}n} = n^{\log_{4}3}$ 个，则有&lt;/p&gt;
$$T(n) = \sum_{i=0}^{(\log_{4}n) - 1} 3^i \cdot \frac{n}{4^i} + \varTheta(n^{\log_{4}3}) \leqslant 4n + \varTheta(n^{\log_{4}3}) = O(n)$$&lt;h4 id=&#34;变量替换法&#34;&gt;变量替换法
&lt;/h4&gt;&lt;p&gt;设递归方程为：&lt;/p&gt;
$$T(n) = 2T(\sqrt{n}) + \log n$$&lt;p&gt;令 $m = \log n$，则 $n = 2^m$，$\displaystyle T(2^m) = 2T\left(2^{\frac{m}{2}}\right) + m$&lt;/p&gt;
&lt;p&gt;令 $S(m) = T(2^m)$，则 $\displaystyle S\left(\frac{m}{2}\right) = T\left(2^{\frac{m}{2}}\right)$&lt;/p&gt;
&lt;p&gt;于是 $\displaystyle S(m) = 2S\left(\frac{m}{2}\right) + m = \varTheta(m \log m)$&lt;/p&gt;
&lt;p&gt;回代可得 $T(n) = \varTheta(\log n (\log (\log n)))$&lt;/p&gt;
&lt;h4 id=&#34;master定理&#34;&gt;Master定理
&lt;/h4&gt;&lt;p&gt;求解形如 $\displaystyle T(n) = a \cdot T\left(\frac{n}{b}\right) + f(n)$ 的递归方程（其中 $a \geqslant 1$，$b \geqslant 1$ 是常数，$f(n)$ 是正函数）。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;若 $f(n) = O(n^{(\log_{b} a)-\varepsilon})$，常数 $\varepsilon &amp;gt; 0$，则有 $T(n) = \varTheta(n^{\log_{b}a})$&lt;/li&gt;
&lt;li&gt;若 $f(n) = \varTheta(n^{\log_{b} a})$，则有 $T(n) = \varTheta(n^{\log_b a} \log n)$&lt;/li&gt;
&lt;li&gt;若 $f(n) = \varOmega(n^{(\log_{b} a) + \varepsilon})$，常数 $\varepsilon &amp;gt; 0$，且对所有 $n$，都有 $af(\frac{n}{b}) \leqslant c \cdot f(n)$ （$c&amp;lt;1$ 且为常数），则有 $T(n) = \varTheta(f(n))$&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;直观理解：用 $f(n)$ 与 $n^{\log_b a}$ 的阶比较&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;若 $n^{\log_b a}$ 的阶更大，即 $f(n)$ 的阶不仅小于 $n^{\log_b a}$，而且还小于 $n^{\log_b a}/n^{\varepsilon}$，则 $T(n) = \varTheta(n^{\log_b a})$&lt;/li&gt;
&lt;li&gt;若 $f(n) = \varTheta(n^{\log_b a})$，即 $f(n)$ 与 $n^{\log_b a}$ 同阶，则有 $T(n) = \varTheta(n^{\log_b a} \log n) = \varTheta(f(n)\log n)$&lt;/li&gt;
&lt;li&gt;若 $f(n)$ 的阶更大，即 $f(n)$ 的阶不仅大于 $n^{\log_b a}$，而且还大于 $n^{\log_b a} \cdot n^{\varepsilon}$，则 $T(n) = \varTheta(f(n))$&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;details&gt;
    &lt;summary&gt;Master定理证明（点击展开）&lt;/summary&gt;
&lt;p&gt;对 $\displaystyle f(n) = a T(\frac{n}{b}) + f(n)$ 展开可得 &lt;/p&gt;
$$ T(n) = \varTheta(n^{\log_b a}) + \sum_{i=0}^{k-1} a^i \cdot f(\frac{n}{b^i}) $$&lt;p&gt; 其中 $n = b^k$，$k = \log_b n$，$a^k = a^{\log_b n} = n^{\log_b a}$&lt;/p&gt;
&lt;p&gt;令 $\displaystyle g(n) = \sum_{i=0}^{k-1} a^i f\left( \frac{n}{b^i} \right)$， 则有 $T(n) = \varTheta(n^{\log_b a}) + g(n)$&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;若 $f(n) = O(n^{(\log_b a) - \varepsilon})$，则有
&lt;/p&gt;
$$\begin{align*} g(n) &amp;= O \left(\sum_{i=0}^{k-1} a^i \left(\frac{n}{b^i}\right)^{(\log_b a)-\varepsilon} \right) = O \left( n^{(\log_b a)-\varepsilon} \sum_{i=0}^{k-1} \left(\frac{ab^{\varepsilon}}{b^{\log_b a}}\right)^i \right) \\ &amp;= O \left( n^{(\log_b a)-\varepsilon} \frac{n^{\varepsilon} - 1}{b^{\varepsilon} - 1} \right) = O(n^{\log_b a}) \end{align*}$$&lt;p&gt;
故 $T(n) = \varTheta(n^{\log_b a}) + g(n) = \varTheta(n^{\log_b a})$&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;若 $f(n) = \varTheta(n^{\log_b a})$，则有
&lt;/p&gt;
$$\begin{align*} g(n) &amp;= \varTheta \left( \sum_{i=0}^{k-1} a^i \frac{n}{b^i}^{\log_b a} \right) = \varTheta \left( n^{\log_b a} \sum_{i=0}^{k-1} 1 \right) \\ &amp;= \varTheta(n^{\log_b a} k) = \varTheta(n^{\log_b a} \log_b n) = \varTheta(n^{\log_b a} \log n) \end{align*}$$&lt;p&gt; 故 $T(n) = \varTheta(n^{\log_b a}) + g(n) = \varTheta(n^{\log_b a} \log n)$&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;若 $f(n) = \varOmega(n^{(\log_b a) + \varepsilon})$，且对所有充分大的 $n$ 有
&lt;/p&gt;
$$\begin{align*} a f(\frac{n}{b}) &amp;\leqslant c f(n) \\ a f(\frac{n}{b^2}) &amp;\leqslant c f(\frac{n}{b}) \\ &amp;\cdots \\ a f(\frac{n}{b^i}) &amp;\leqslant c f(\frac{n}{b^{i-1}}) \end{align*}$$&lt;p&gt;
两边分别相乘得 $\displaystyle a^i f(\frac{n}{b^i}) \leqslant c^i f(n)$，则有 &lt;/p&gt;
$$g(n) = \sum_{i=0}^{k-1} a^i f(\frac{n}{b^i}) \leqslant \sum_{i=0}^{k-1} c^i f(n) = f(n) \sum_{i=0}^{k-1} c^i \leqslant f(n) \cdot \frac{1}{1-c} = \varTheta(f(n))$$&lt;p&gt; 故 $T(n) = \varTheta(n^{\log_b a}) + g(n) = \varTheta(f(n))$&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/details&gt;
&lt;blockquote&gt;
&lt;p&gt;推广形式：若 $f(n) = \varTheta(n^{\log_b a} \log^{k} n)$，其中 $k \geqslant 0$，则有 $T(n) = \varTheta(n^{\log_b a} \log^{k+1} n)$&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;算法实例&#34;&gt;算法实例
&lt;/h2&gt;&lt;div class=&#34;catalogue&#34;&gt;
    &lt;div class=&#34;logo&#34;&gt;
        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/algorithm/recurrence &gt;算法：递归法&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;style&gt;
    .catalogue {
        border: 1px solid var(--card-text-color-main);
        border-radius: var(--card-border-radius);
        margin: 0 auto;
        margin-bottom: 1em;
        padding: 1em;
    }

    .name {
        font-weight: bold;
        margin-left: 0.5em;
        position: relative;
    }

    .description {
        margin-top: 0.5em;
        margin-bottom: 0.5em;
        color: var(--card-text-color-main);
        text-align: justify;
        font-size: 90%;
        transition: all 0.5s;
    }

    
    :root[data-scheme=&#34;light&#34;] {
        .name {
            color: #07639c;
        }   
    }

    :root[data-scheme=&#34;dark&#34;] {
        .name {
            color: #cebef4;
        }
    }
&lt;/style&gt;

&lt;div class=&#34;catalogue&#34;&gt;
    &lt;div class=&#34;logo&#34;&gt;
        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/algorithm/divide_and_conquer &gt;算法：分治法&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;style&gt;
    .catalogue {
        border: 1px solid var(--card-text-color-main);
        border-radius: var(--card-border-radius);
        margin: 0 auto;
        margin-bottom: 1em;
        padding: 1em;
    }

    .name {
        font-weight: bold;
        margin-left: 0.5em;
        position: relative;
    }

    .description {
        margin-top: 0.5em;
        margin-bottom: 0.5em;
        color: var(--card-text-color-main);
        text-align: justify;
        font-size: 90%;
        transition: all 0.5s;
    }

    
    :root[data-scheme=&#34;light&#34;] {
        .name {
            color: #07639c;
        }   
    }

    :root[data-scheme=&#34;dark&#34;] {
        .name {
            color: #cebef4;
        }
    }
&lt;/style&gt;

&lt;div class=&#34;catalogue&#34;&gt;
    &lt;div class=&#34;logo&#34;&gt;
        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/algorithm/other &gt;其他算法&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;style&gt;
    .catalogue {
        border: 1px solid var(--card-text-color-main);
        border-radius: var(--card-border-radius);
        margin: 0 auto;
        margin-bottom: 1em;
        padding: 1em;
    }

    .name {
        font-weight: bold;
        margin-left: 0.5em;
        position: relative;
    }

    .description {
        margin-top: 0.5em;
        margin-bottom: 0.5em;
        color: var(--card-text-color-main);
        text-align: justify;
        font-size: 90%;
        transition: all 0.5s;
    }

    
    :root[data-scheme=&#34;light&#34;] {
        .name {
            color: #07639c;
        }   
    }

    :root[data-scheme=&#34;dark&#34;] {
        .name {
            color: #cebef4;
        }
    }
&lt;/style&gt;

</description>
        </item>
        <item>
        <title>计算机网络</title>
        <link>https://rd806.github.io/passage/cs/network/</link>
        <pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate>
        
        <guid>https://rd806.github.io/passage/cs/network/</guid>
        <description>&lt;h2 id=&#34;概述&#34;&gt;概述
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;概念&lt;/th&gt;
          &lt;th&gt;定义&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;网络&lt;/td&gt;
          &lt;td&gt;节点和边之间的无向关系&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;计算机网络&lt;/td&gt;
          &lt;td&gt;联网的计算机构成的系统，包括主机节点（Web应用）和数据交换节点 （路由器）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;互联网&lt;/td&gt;
          &lt;td&gt;许多网络通过互联方式联系在一起。&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;互联网是设备和协议的集合体。&lt;/p&gt;
&lt;p&gt;从“组成结构”看互联网：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;组成结构&lt;/th&gt;
          &lt;th&gt;定义&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;网络边缘（Internet edge）&lt;/td&gt;
          &lt;td&gt;包括客户端和服务器，接入网和物理介质&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;网络核心（Internet core）&lt;/td&gt;
          &lt;td&gt;互相连接的路由器，也称作“网络之网络”&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;从“提供服务”看互联网：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;组成结构&lt;/th&gt;
          &lt;th&gt;定义&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;协议（protocol）&lt;/td&gt;
          &lt;td&gt;定义了网络实体之间发送和接收消息的格式、顺序以及在消息传输、接收时采取的动作&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;标准（RFC）&lt;/td&gt;
          &lt;td&gt;由IETF制定，定义消息的格式、信息发送的顺序等内容&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;网络边缘&#34;&gt;网络边缘
&lt;/h3&gt;&lt;h4 id=&#34;主机&#34;&gt;主机
&lt;/h4&gt;&lt;p&gt;包括客户端和服务器，任务是发送数据包&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;数据包：将应用程序产生的消息分解成的较小的块称为数据包，长度通常记作 $L$，单位为比特。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;记互联网的传输速率为 $R$（也称为链路容量或带宽，单位 $\text{bits/s}$），则可定义数据包传输延迟为将 $L$ 比特数据包传送到链路所需的时间 &lt;/p&gt;
$$D = \frac{L}{R}$$&lt;h4 id=&#34;接入网&#34;&gt;接入网
&lt;/h4&gt;&lt;p&gt;接入网连接主机与边缘路由，包括以下几类：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;类型&lt;/th&gt;
          &lt;th&gt;特点&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;线缆接入&lt;/td&gt;
          &lt;td&gt;HFC（光纤/同轴电缆混合）连接到DSL。下行40Mbps&lt;del&gt;1.2Gbps，上行30&lt;/del&gt;100Mbps&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;数字接入&lt;/td&gt;
          &lt;td&gt;利用现有的有线电话线路连接到DSL。下行24&lt;del&gt;52Mbps，上行3.5&lt;/del&gt;16Mbps&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;无线接入&lt;/td&gt;
          &lt;td&gt;无线局域网（WLAN），范围不超过一个建筑物，速率在450Mbps &lt;br&gt; 蜂窝网络：由运营商提供，范围在10km数量级，速率在10Mbps&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;物理介质&#34;&gt;物理介质
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;概念&lt;/th&gt;
          &lt;th&gt;含义&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;物理链路&lt;/td&gt;
          &lt;td&gt;数据发送和接收端之间的物理连接&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;导向性介质&lt;/td&gt;
          &lt;td&gt;信号在固体介质中传播，如铜、光纤、同轴电缆&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;非导向性介质&lt;/td&gt;
          &lt;td&gt;信号自由传播，如无线电磁波&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;常用的物理介质&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;介质&lt;/th&gt;
          &lt;th&gt;特点&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;双绞线（TP）&lt;/td&gt;
          &lt;td&gt;由两根绝缘铜线组成，五类线可达100Mbps~1Gbps，六类线可达10Gbps&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;同轴电缆&lt;/td&gt;
          &lt;td&gt;由两个同心铜导体组成，可双向传输，拥有多个通道，每个通道可达100Mbps&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;光纤&lt;/td&gt;
          &lt;td&gt;由玻璃纤维组成，传递光信号，进行高速点对点传输，可达10~100Gbps，不受电磁干扰&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;电磁波&lt;/td&gt;
          &lt;td&gt;信号分布在电磁波的各个频段，受反射、遮挡、干扰的影响较大。常见的有WiFi、蜂窝网络、蓝牙、卫星信号等&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;网络核心&#34;&gt;网络核心
&lt;/h3&gt;&lt;p&gt;网络核心可以看作一系列互相连接的路由器，每个路由器都有多个输入端和输出端。网络核心不运行应用程序，只转发数据包。&lt;/p&gt;
&lt;p&gt;网络核心的两大功能：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;转发（交换）：将到达的数据包从路由器的输入链路移动到输出链路。&lt;/li&gt;
&lt;li&gt;路由：规划数据包传输所需要经过的路径。&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;分组交换&#34;&gt;分组交换
&lt;/h4&gt;&lt;p&gt;基本原理：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;主机将应用数据拆分成数据包。&lt;/li&gt;
&lt;li&gt;数据包通过源到目标路径的一条链路，从一个路由器转发到下一个路由器。&lt;/li&gt;
&lt;li&gt;每个数据包在链路上的传输互相独立。&lt;/li&gt;
&lt;li&gt;存储转发：整个数据包必须完整到达路由器后才能转发到下一条链路上。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;传输延迟：以 $R$ $\text{bps}$ 在链路上传输 $L$ $\text{bit}$ 需要时间 $\displaystyle \frac{L}{R}$ 秒，这段时间称为传输延迟。一般地，若端到端之间有 $n$ 条链路，每条链路的传输速率为 $R_{i}$ $\text{bps}$，则传输大小为 $L$ $\text{bit}$ 的数据包需要的总延迟为 $\displaystyle \sum_{i=1}^{n} \frac{L}{R_i}$ 秒&lt;/p&gt;
&lt;p&gt;排队与丢包：如果一段时间内到达链路的速率超过链路的传输速率，则数据包将会在路由器上的缓冲区排队。若缓冲区已满，多余的数据包则可能被丢弃，称为丢包。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;发生丢包时，丢失的数据包可能由上一个节点重传、由源重发或完全不进行响应。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figure&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/network/images/%E6%8E%92%E9%98%9F%E4%B8%8E%E4%B8%A2%E5%8C%85.png&#34; width=&#34;700&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;排队与丢包&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&#34;电路交换&#34;&gt;电路交换
&lt;/h4&gt;&lt;p&gt;为源到目的地的“呼叫”分配并预留端到端的资源，即为收发两端分配专用的、独占的资源。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;电路交换常用于传统的电话中。通话时，两台电话之间分配了专用的通信资源，即使没有数据传输，在挂断之前资源不会被释放。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;电路交换中，为了更好地利用资源，出现了FDM（频分）和TDM（时分）技术。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;分组方式&lt;/th&gt;
          &lt;th&gt;内容&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;FDM&lt;/td&gt;
          &lt;td&gt;将电磁频率划分为多个窄频段，为每个呼叫分配专用频段，以该频段的最大速率传输&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;TDM&lt;/td&gt;
          &lt;td&gt;将时间划分为多个时段，为每个呼叫周期性地分配时段，在其所属时段以电磁波的最大速率传输&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/network/images/FDM.png&#34;
	width=&#34;674&#34;
	height=&#34;206&#34;
	srcset=&#34;https://rd806.github.io/passage/cs/network/images/FDM_hu_8dfc1193333c2e9.png 480w, https://rd806.github.io/passage/cs/network/images/FDM_hu_a27b58e13423265f.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;FDM&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;327&#34;
		data-flex-basis=&#34;785px&#34;
	
&gt; &lt;img src=&#34;https://rd806.github.io/passage/cs/network/images/TDM.png&#34;
	width=&#34;684&#34;
	height=&#34;227&#34;
	srcset=&#34;https://rd806.github.io/passage/cs/network/images/TDM_hu_b2589872a59b9c24.png 480w, https://rd806.github.io/passage/cs/network/images/TDM_hu_9c64bdeb81ac460a.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;TDM&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;301&#34;
		data-flex-basis=&#34;723px&#34;
	
&gt;&lt;/p&gt;
&lt;h4 id=&#34;isp与互联网&#34;&gt;ISP与互联网
&lt;/h4&gt;&lt;p&gt;主机通过接入互联网服务提供商（ISP）连接到互联网，不同的ISP必须互相连接。由此形成复杂的网络结构。&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/network/images/ISP%E4%B8%8E%E4%BA%92%E8%81%94%E7%BD%91.png&#34; width=&#34;700&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;ISP与互联网&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id=&#34;网络协议&#34;&gt;网络协议
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;为什么采用分层结构？&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;有利于识别系统各组成部分及其相互关系。&lt;/li&gt;
&lt;li&gt;分层结构有利于系统维护和更新。&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;协议栈&lt;/th&gt;
          &lt;th&gt;概念&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;应用层（application）&lt;/td&gt;
          &lt;td&gt;支持网络应用&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;传输层（transport）&lt;/td&gt;
          &lt;td&gt;进程间的数据传输&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;网络层（network）&lt;/td&gt;
          &lt;td&gt;规划数据从源到目的地的路线&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;链路层（link）&lt;/td&gt;
          &lt;td&gt;相邻网络结点之间的数据传输&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;物理层（physical）&lt;/td&gt;
          &lt;td&gt;传输字节信息&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;网络评价指标&#34;&gt;网络评价指标
&lt;/h3&gt;&lt;h4 id=&#34;延迟&#34;&gt;延迟
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;延迟来源&lt;/th&gt;
          &lt;th&gt;记号&lt;/th&gt;
          &lt;th&gt;内容&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;处理延迟&lt;/td&gt;
          &lt;td&gt;$d_{\text{proc}}$&lt;/td&gt;
          &lt;td&gt;检查字节错误、确定输出链路带来的延迟&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;排队延迟&lt;/td&gt;
          &lt;td&gt;$d_{\text{queue}}$&lt;/td&gt;
          &lt;td&gt;数据包在队列中等待传输带来的延迟&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;传输延迟&lt;/td&gt;
          &lt;td&gt;$d_{\text{trans}}$&lt;/td&gt;
          &lt;td&gt;数据包转发带来的延迟，通常为 $\displaystyle \frac{L}{R}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;传播延迟&lt;/td&gt;
          &lt;td&gt;$d_{\text{prop}}$&lt;/td&gt;
          &lt;td&gt;数据包在链路上传输带来的延迟，通常为 $\displaystyle \frac{d}{s}$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;总延迟：$d_{\text{nobal}} = d_{\text{proc}} + d_{\text{queue}} + d_{\text{trans}} + d_{\text{prop}}$&lt;/p&gt;
&lt;h4 id=&#34;吞吐量&#34;&gt;吞吐量
&lt;/h4&gt;&lt;p&gt;发送端向接收端发送比特的速率，通常记作 $R$，单位为 $\text{bits/s}$&lt;/p&gt;
&lt;p&gt;若发送端到接收端有多段链路，则称限制吞吐量的链路为瓶颈链路（即吞吐量最小的链路）。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>概率论与数理统计</title>
        <link>https://rd806.github.io/passage/math/probability/</link>
        <pubDate>Fri, 07 Nov 2025 00:00:00 +0000</pubDate>
        
        <guid>https://rd806.github.io/passage/math/probability/</guid>
        <description>&lt;img src="https://rd806.github.io/passage/math/probability/rohit-choudhari-JS3RDAnRUB8-unsplash.jpg" alt="Featured image of post 概率论与数理统计" /&gt;&lt;blockquote&gt;
&lt;p&gt;依旧期末速通……&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;随机事件与概率&#34;&gt;随机事件与概率
&lt;/h2&gt;&lt;h3 id=&#34;随机事件的关系与运算&#34;&gt;随机事件的关系与运算
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;关系&lt;/th&gt;
          &lt;th&gt;表示&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;包含&lt;/td&gt;
          &lt;td&gt;$B \subset A$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;相等&lt;/td&gt;
          &lt;td&gt;$B = A$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;并&lt;/td&gt;
          &lt;td&gt;$A \cup B$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;交&lt;/td&gt;
          &lt;td&gt;$A \cap B = AB$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;互斥&lt;/td&gt;
          &lt;td&gt;$AB = \varnothing$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;对立&lt;/td&gt;
          &lt;td&gt;$\overline{A}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;差&lt;/td&gt;
          &lt;td&gt;$A-B$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;运算&lt;/th&gt;
          &lt;th&gt;表示&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;交换律&lt;/td&gt;
          &lt;td&gt;$A \cap B = AB$，$AB = BA$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;结合律&lt;/td&gt;
          &lt;td&gt;$(A \cap B) \cap C = A \cap (B \cap C)$，$AB = BA$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;分配律&lt;/td&gt;
          &lt;td&gt;$(A \cap B) \cup C = (AC) \cup (BC)$，$(A \cup B) \cup C = (A \cup C) \cap (B \cup C)$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;对偶律&lt;/td&gt;
          &lt;td&gt;$\overline{A \cup B} = \overline{A}\overline{B}$，$\overline{AB} = \overline{A} \cup \overline{B}$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;概率及其性质&#34;&gt;概率及其性质
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;性质&lt;/th&gt;
          &lt;th&gt;表示&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;有限可加性&lt;/td&gt;
          &lt;td&gt;$\displaystyle P\left(\bigcup_{i=1}^{n} A_i \right)= \sum_{i=1}^{n} P(A_i)$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;对立事件&lt;/td&gt;
          &lt;td&gt;$P\left(\overline{A}\right) = 1-P(A)$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;减法公式&lt;/td&gt;
          &lt;td&gt;$P(A-B) = P(A\overline{B}) = P(A) - P(AB)$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;单调性&lt;/td&gt;
          &lt;td&gt;若 $A \subset B$，则 $P(A) \leqslant P(B)$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;容斥原理&lt;/td&gt;
          &lt;td&gt;对任意两个事件 $A，B$，有 $P(A \cup B) = P(A) + P(B) - P(AB)$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;一般的，对于 $n$ 个事件 $A_i$，有
&lt;/p&gt;
$$\begin{align*} P\left(\bigcup_{i=1}^{n} A_i \right) = \sum_{i=1}^{n} P(A_i) &amp;- \sum_{1 \leqslant i &lt; j \leqslant n} P(A_i A_j) \\ &amp;+ \sum_{1 \leqslant i &lt; j &lt; k \leqslant n} P(A_i A_j A_k) - \cdots + (-1)^{n-1} P(A_1 A_2 \cdots A_n) \end{align*}$$&lt;/blockquote&gt;
&lt;h3 id=&#34;古典概型与几何概型&#34;&gt;古典概型与几何概型
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;概型&lt;/th&gt;
          &lt;th&gt;计算&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;古典概型&lt;/td&gt;
          &lt;td&gt;$$P(A) = \frac{k}{n} = \frac{\text{事件}A\text{中所含样本点的个数}}{\text{样本空间}\varOmega\text{中所含样本点总数}}$$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;几何概型&lt;/td&gt;
          &lt;td&gt;$$P(A) = \frac{A \text{的度量}}{\varOmega \text{的度量}}$$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;条件概率与乘法公式&#34;&gt;条件概率与乘法公式
&lt;/h3&gt;&lt;h4 id=&#34;条件概率&#34;&gt;条件概率
&lt;/h4&gt;$$P(B|A) = \frac{P(AB)}{P(A)}$$&lt;p&gt;性质：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;$P(\overline{B} |A) = 1 - P(B|A) $&lt;/li&gt;
&lt;li&gt;$P(B_1 \cup B_2 | A) = P(B_1 | A) + P(B_2 | A) - P(B_1 B_2 | A) $&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;乘法公式&#34;&gt;乘法公式
&lt;/h4&gt;$$ P(AB) = P(A) P(B|A) $$&lt;p&gt;
&lt;/p&gt;
$$P(A_1 A_2 \cdots A_n) = P(A_1) P(A_2|A_1) P(A_3|A_1 A_2) \cdots P(A_n|A_1 A_2 \cdots A_{n-1})$$&lt;h4 id=&#34;全概率公式&#34;&gt;全概率公式
&lt;/h4&gt;&lt;p&gt;若 $A_1，A_2，\cdots A_n，B$ 是 $E$ 中的事件，且满足 $A_1 \cup A_2 \cup \cdots \cup A_n = \varOmega$，则 &lt;/p&gt;
$$P(B) = \sum_{i=1}^{n} P(A_i) P(B|A_i)$$&lt;p&gt;案例：敏感性问题调查&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;步骤&lt;/th&gt;
          &lt;th&gt;要求&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;设计问题&lt;/td&gt;
          &lt;td&gt;&lt;ol&gt; &lt;li&gt; 你的生日是否在7月1日之前 &lt;/li&gt; &lt;li&gt; &lt;em&gt;要调查的问题&lt;/em&gt; &lt;/li&gt; &lt;/ol&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;操作&lt;/td&gt;
          &lt;td&gt;&lt;ol&gt; &lt;li&gt; 被调查者在没有旁人的情况下，独自一人回答问题 &lt;/li&gt; &lt;li&gt; 在一个袋子中放入若干个红球和白球，被调查者从袋子中随机抽一个球，看过颜色后放回. 若抽到白球则回答问题1；若抽到红球则回答问题2 &lt;/li&gt; &lt;li&gt; 被调查者只回答“是”或“否” &lt;/li&gt; &lt;/ol&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;分析结果&lt;/td&gt;
          &lt;td&gt;设共收到 $n$ 张答卷，其中有 $k$ 张答卷回答“是”；同时，在人数较多的场合中，任选一人其生日在7月1日之前的概率为 $0.5$；袋子中红球的比率为 $\alpha$，则有等式 $$\frac{k}{n} = p \cdot \alpha + 0.5 \cdot (1-\alpha)$$ 可知问题2回答“是”的概率 $$p=\frac{\dfrac{k}{n}-0.5(1-\alpha)}{\alpha}$$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;贝叶斯公式&#34;&gt;贝叶斯公式
&lt;/h4&gt;$$P(A_i |B) = \frac{P(A_i B)}{P(B)} = \frac{P(A_i)P(B|A_i)}{\displaystyle \sum_{i=1}^{n} P(A_i)P(B|A_i)}$$&lt;h3 id=&#34;事件的独立性&#34;&gt;事件的独立性
&lt;/h3&gt;&lt;p&gt;设 $n$ 个事件 $A_1，A_2，\cdots，A_n$，若对任意 $k=2，3，\cdots，n$ 和任意一组 $1 \leqslant i_1 &amp;lt; i_2 &amp;lt; \cdots &amp;lt; i_k \leqslant n$，都有
&lt;/p&gt;
$$P(A_{i_1} A_{i_2} \cdots A_{i_k}) = P(A_{i_1}) P(A_{i_2}) \cdots P(A_{i_k})$$&lt;p&gt; 则称事件 $A_1，A_2，\cdots，A_n$ 相互独立.&lt;/p&gt;
&lt;h2 id=&#34;随机变量及其分布&#34;&gt;随机变量及其分布
&lt;/h2&gt;&lt;h3 id=&#34;概率分布函数&#34;&gt;概率分布函数
&lt;/h3&gt;&lt;p&gt;设 $X$ 是随机变量，对任意给定实数 $x \in (-\infty, +\infty)$，令 &lt;/p&gt;
$$F(x) = P\{X \leqslant x\}$$&lt;p&gt; 则称 $F(x)$ 为随机变量 $X$ 的概率分布函数.&lt;/p&gt;
&lt;p&gt;分布函数 $F(x)$ 具有以下性质：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;性质&lt;/th&gt;
          &lt;th&gt;表示&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;非负性&lt;/td&gt;
          &lt;td&gt;对任意实数 $x$，都有 $0 \leqslant F(x) \leqslant 1$，且 $\displaystyle F(-\infty) = \lim_{x \to -\infty} F(x) = 0$，$\displaystyle F(+\infty) = \lim_{x \to +\infty} F(x) = 1$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;单调不减性&lt;/td&gt;
          &lt;td&gt;$\forall x_1 &amp;lt; x_2$，有 $F(x_1) \leqslant F(x_2)$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;右连续性&lt;/td&gt;
          &lt;td&gt;$\forall a \in \textbf{R}$，有 $\displaystyle \lim_{x \to a^+} F(x) = F(a+0) = F(a)$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;ol&gt;
&lt;li&gt;区间概率：$P\{x_1 &amp;lt; X \leqslant x_2\} = P\{X \leqslant x_2\} - P\{X \leqslant x_1\} = F(x_2) - F(x_1)$&lt;/li&gt;
&lt;li&gt;样本点概率：$P\{X = a\} = F(a+0) - F(a-0)$&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;离散型随机变量的分布&#34;&gt;离散型随机变量的分布
&lt;/h3&gt;&lt;h4 id=&#34;概率分布律&#34;&gt;概率分布律
&lt;/h4&gt;&lt;p&gt;设离散型随机变量所有可能取值为 $x_k，k=1,2,\cdots$，则称 $X$ 取各个可能值的概率 &lt;/p&gt;
$$P\{X = x_k\} = p_k$$&lt;p&gt; 为随机变量 $X$ 的概率分布律. 可用表格表示为&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$X$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$x_1$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$x_2$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$x_k$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$P_X$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_1$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_2$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_k$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;且有：$\displaystyle \sum_{i=0}^{\infty} p_k = 1$&lt;/p&gt;
&lt;h4 id=&#34;常用分布&#34;&gt;常用分布
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;类型&lt;/th&gt;
          &lt;th&gt;概率分布律&lt;/th&gt;
          &lt;th&gt;记法&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;两点分布&lt;/td&gt;
          &lt;td&gt;$P\{X = 0\} = 1-p，P\{X = 1\} = p$&lt;/td&gt;
          &lt;td&gt;$X \sim B(1,p)$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;二项分布&lt;/td&gt;
          &lt;td&gt;$\displaystyle P\{X=k\} = \mathrm{C}_{n}^{k} p^k (1-p)^{n-k}，k=0,1,2,\cdots,n \quad (0&amp;lt;p&amp;lt;1)$&lt;/td&gt;
          &lt;td&gt;$X \sim B(n,p)$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;泊松分布&lt;/td&gt;
          &lt;td&gt;$\displaystyle P\{X=k\} = \frac{\lambda^k \mathrm{e}^{-\lambda}}{k!}，k=0,1,2,\cdots,n$&lt;/td&gt;
          &lt;td&gt;$X \sim P(\lambda)$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;超几何分布&lt;/td&gt;
          &lt;td&gt;$\displaystyle P\{X=k\} = \frac{\mathrm{C}_M^k \mathrm{C}_{N-M}^{n-k}}{\mathrm{C}_{N}^{n}}，k=0,1,2,\cdots,\text{min}\{n,M\}$&lt;/td&gt;
          &lt;td&gt;$X \sim H(N,M,n)$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;几何分布&lt;/td&gt;
          &lt;td&gt;$P\{X=k\} = (1-p)^{k-1}p，k=0,1,2,\cdots$&lt;/td&gt;
          &lt;td&gt;$X \sim G(p)$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;泊松定理&#34;&gt;泊松定理
&lt;/h4&gt;&lt;p&gt;设 $\displaystyle p_n = \frac{\lambda}{n}$，$\lambda &amp;gt; 0$ 是常数，则对任一非负整数 $k$，有 &lt;/p&gt;
$$\lim_{n \to \infty} \mathrm{C}_n^k p_n^k(1-p_n)^{n-k} = \frac{\lambda^k \mathrm{e}^{-\lambda}}{k!}$$&lt;blockquote&gt;
&lt;p&gt;根据泊松定理，当 $n$ 很大且 $p$ 很小时，二项分布可以近似为泊松分布，此时有 $\lambda = np$，且 &lt;/p&gt;
$$\mathrm{C}_n^k p_n^k(1-p_n)^{n-k} = \frac{\lambda^k \mathrm{e}^{-\lambda}}{k!}$$&lt;/blockquote&gt;
&lt;h4 id=&#34;几何分布的无记忆性&#34;&gt;几何分布的无记忆性
&lt;/h4&gt;&lt;p&gt;如果 $X \sim G(p)$，则对任意正整数 $m$，$n$，都有 &lt;/p&gt;
$$P\{X&gt;m+n \ |\  X&gt;m\} = P\{X&gt;n\}$$&lt;h3 id=&#34;连续型随机变量的分布&#34;&gt;连续型随机变量的分布
&lt;/h3&gt;&lt;h4 id=&#34;概率密度函数&#34;&gt;概率密度函数
&lt;/h4&gt;&lt;p&gt;设随机变量 $X$ 的分布函数为 $F(x)$，若存在非负函数 $f(x)$，使得对任意实数 $x \in \textbf{R}$，均有 &lt;/p&gt;
$$F(x) = \int_{-\infty}^{x} f(t) \mathrm{d}t$$&lt;p&gt; 则称随机变量 $X$ 为连续型随机变量，称 $f(x)$ 为概率密度函数.&lt;/p&gt;
&lt;h4 id=&#34;常用分布-1&#34;&gt;常用分布
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;类型&lt;/th&gt;
          &lt;th&gt;概率密度函数&lt;/th&gt;
          &lt;th&gt;记法&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;均匀分布&lt;/td&gt;
          &lt;td&gt;$\displaystyle f(x) = \left\{ \begin{matrix} \displaystyle \frac{1}{b-a}，&amp;amp; a \leqslant x \leqslant b \\ \\ 0，&amp;amp; 其他 \end{matrix} \right.$&lt;/td&gt;
          &lt;td&gt;$X \sim U(a,b)$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;指数分布&lt;/td&gt;
          &lt;td&gt;$\displaystyle f(x) = \left\{ \begin{matrix} \lambda\mathrm{e}^{-\lambda x}，&amp;amp; x \geqslant b \\ \\ 0，&amp;amp; 其他 \end{matrix} \right.$&lt;/td&gt;
          &lt;td&gt;$X \sim Exp(\lambda)$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;正态分布&lt;/td&gt;
          &lt;td&gt;$\displaystyle f(x) = \frac{1}{\sqrt{2\pi} \sigma} \mathrm{e}^{-\frac{(x-\mu)^2}{2\sigma^2}}，-\infty &amp;lt; x &amp;lt; \infty$&lt;/td&gt;
          &lt;td&gt;$X \sim N(\mu,\sigma^2)$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;指数分布的性质&#34;&gt;指数分布的性质
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;无记忆性&lt;/strong&gt;：如果 $X \sim Exp(\lambda)$，则对任意 $s&amp;gt;0$，$t&amp;gt;0$，都有 &lt;/p&gt;
$$P\{X&gt;s+t \ |\  X&gt;s\} = P\{X&gt;t\}$$&lt;h4 id=&#34;正态分布的性质&#34;&gt;正态分布的性质
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;正态分布的概率密度函数 $f(x)$ 以 $x=\mu$ 为对称轴，因此 $\displaystyle F(\mu) = \frac{1}{2}，F(\mu-x) = 1-F(\mu+x)$.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;特别地，称 $\mu=0，\sigma=1$ 的正态分布为标准正态分布，其概率密度函数记作 $\varphi(x)$，分布函数记作 $\varPhi(x)$. 则对任意正态分布 $N(\mu,\sigma^2)$，有 &lt;/p&gt;
$$P\{x_1 &lt; X \leqslant x_2\} = F(x_2) - F(x_1) = \varPhi\left(\frac{x_2-\mu}{\sigma}\right) - \varPhi\left(\frac{x_1-\mu}{\sigma}\right) $$&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;若 $X \sim N(\mu, \sigma^2)$，令 $Y=aX+b$，则随机变量 $Y \sim N(a\mu+b,(a\sigma)^2)$.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;随机变量函数的分布&#34;&gt;随机变量函数的分布
&lt;/h3&gt;&lt;h4 id=&#34;离散型随机变量函数的分布&#34;&gt;离散型随机变量函数的分布
&lt;/h4&gt;&lt;p&gt;若 $y_k = g(x_k)$，且已知&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$X$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$x_1$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$x_2$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$x_k$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$P_X$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_1$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_2$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_k$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;则可直接写出 $Y$ 的概率分布律：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$Y$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$y_1=g(x_1)$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$y_2=g(x_2)$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$y_k=g(x_k)$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$P_Y$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_1$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_2$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_k$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;连续型随机变量函数的分布&#34;&gt;连续型随机变量函数的分布
&lt;/h4&gt;&lt;p&gt;若 $X$ 是连续型随机变量，$y=g(x)$ 是单值实函数，则先求 $Y$ 的分布函数 $F_Y(y)$，再对 $F_Y(y)$ 求导得随机变量 $Y$ 的概率密度函数 $f_Y(y)$.&lt;/p&gt;
&lt;p&gt;随机变量 $X$ 对应的概率密度函数为 $f(x)$，随机变量 $Y$ 满足 $Y = g(X)$，则可得 &lt;/p&gt;
$$F_Y(y) = P\{Y \leqslant y\} = P\{g(X) \leqslant y\} = P\{a &lt; X &lt; b\}$$&lt;p&gt; 其中 $a$，$b$ 是关于 $y$ 的函数.&lt;/p&gt;
&lt;h2 id=&#34;多维随机变量及其分布&#34;&gt;多维随机变量及其分布
&lt;/h2&gt;&lt;h3 id=&#34;联合分布函数与边缘分布函数&#34;&gt;联合分布函数与边缘分布函数
&lt;/h3&gt;&lt;h4 id=&#34;联合分布函数&#34;&gt;联合分布函数
&lt;/h4&gt;&lt;p&gt;设 $(X,Y)$ 是二维随机变量，对于任意实数 $x,y \in \textbf{R}$，称二元函数 &lt;/p&gt;
$$F(x,y) = P\{X \leqslant x,Y\leqslant y\}$$&lt;p&gt; 为 $(X,Y)$ 的联合分布函数.&lt;/p&gt;
&lt;p&gt;联合分布函数具有以下性质：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;性质&lt;/th&gt;
          &lt;th&gt;内容&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;非负性&lt;/td&gt;
          &lt;td&gt;对任意 $(x,y) \in \textbf{R}^2$，有 $0 \leqslant F(x,y) \leqslant 1$；$F(-\infty,-\infty) = 0$，$F(+\infty,+\infty) = 1$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;单调不减性&lt;/td&gt;
          &lt;td&gt;$F(x,y)$ 分别关于 $x$ 和 $y$ 单调不减&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;右连续性&lt;/td&gt;
          &lt;td&gt;$F(x,y)$ 分别关于 $x$ 和 $y$ 右连续&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;恒等式&lt;/td&gt;
          &lt;td&gt;$\forall x_1 &amp;lt; x_2，y_1 &amp;lt; y_2$，有 $$P\{ x_1 &lt; X \leqslant x_2,y_1 &lt; Y \leqslant y_2 \} = F(x_2,y_2) - F(x_1,y_2) - F(x_2,y_1) + F(x_1,y_1) \geqslant 0$$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;边缘分布函数&#34;&gt;边缘分布函数
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;$X$ 的边缘分布函数 $\displaystyle F_X(x) = P\{X \leqslant x\} = F(x,+\infty) = \lim_{y \to +\infty} F(x,y)$&lt;/li&gt;
&lt;li&gt;$Y$ 的边缘分布函数 $\displaystyle F_Y(x) = P\{Y \leqslant y\} = F(+\infty,y) = \lim_{x \to +\infty} F(x,y)$&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;二维随机变量的独立性&#34;&gt;二维随机变量的独立性
&lt;/h4&gt;&lt;p&gt;设 $(X,Y)$ 是二维随机变量，联合分布函数为 $F(x,y)$，边缘分布函数分别为 $F_X(x)，F_Y(y)$. 若对于任意 $(x,y) \in \textbf{R}^2$，都有 &lt;/p&gt;
$$F(x,y)  = F_X(x) F_Y(y)$$&lt;p&gt; 则称随机变量 $X$ 和 $Y$ 相互独立.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;两个随机变量相互独立等价于由 $X$ 表示的任一事件与由 $Y$ 表示的任一事件都相互独立.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;二维离散型随机变量及其分布&#34;&gt;二维离散型随机变量及其分布
&lt;/h3&gt;&lt;h4 id=&#34;联合概率分布律&#34;&gt;联合概率分布律
&lt;/h4&gt;&lt;p&gt;设二维离散型随机变量 $(X,Y)$ 的所有可能取值为 $(x_i,y_j)$，则称 &lt;/p&gt;
$$P\{X=x,\ Y=y\}=p_{ij}$$&lt;p&gt; 为随机变量 $(X,Y)$ 的联合概率分布律，可用表格表示为：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$Y$ \ $X$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$x_1$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$x_2$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$x_i$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$y_1$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{11}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{21}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{i1}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$y_2$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{12}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{22}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{i2}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$y_j$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{1j}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{2j}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{ij}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;边缘概率分布律&#34;&gt;边缘概率分布律
&lt;/h4&gt;&lt;p&gt;随机变量 $X$ 的边缘概率分布律：$\displaystyle P\{X=x_i\} = \sum_{i=1}^{+\infty} p_{ij} = p_{i \cdot}$&lt;/p&gt;
&lt;p&gt;随机变量 $Y$ 的边缘概率分布律：$\displaystyle P\{Y=y_j\} = \sum_{j=1}^{+\infty} p_{ij} = p_{\cdot j}$&lt;/p&gt;
&lt;p&gt;可以表示在表格中：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$Y$ \ $X$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$x_1$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$x_2$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$x_i$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;$p_Y$&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$y_1$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{11}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{21}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{i1}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{\cdot 1}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$y_2$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{12}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{22}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{i2}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{\cdot 2}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$y_j$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{1j}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{2j}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{ij}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{\cdot j}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_X$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{1 \cdot}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{2 \cdot}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$p_{i \cdot}$&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;条件概率分布律&#34;&gt;条件概率分布律
&lt;/h4&gt;$$P\{X=x_i \ |\ Y=y_j\} = \frac{p_{ij}}{p_{\cdot j}}$$&lt;h4 id=&#34;独立性&#34;&gt;独立性
&lt;/h4&gt;&lt;p&gt;对于二元离散型随机变量 $(X,Y)$，则 $X$ 与 $Y$ 相互独立等价于对任意的 $i,j = 1,2,\cdots,$ 都有 &lt;/p&gt;
$$P\{X=x_i \ |\ Y=y_j\} = p_{i \cdot} p_{\cdot j}$$&lt;h3 id=&#34;二维连续型随机变量及其分布&#34;&gt;二维连续型随机变量及其分布
&lt;/h3&gt;&lt;h4 id=&#34;联合概率密度函数&#34;&gt;联合概率密度函数
&lt;/h4&gt;&lt;p&gt;设二维随机变量 $(X,Y)$ 的联合分布函数为 $F(x,y)$，若存在非负实函数 $f(x,y)$，使得对于任意 $(x,y) \in \textbf{R}^2$，都有 &lt;/p&gt;
$$F(x,y) = \int_{-\infty}^{x} \mathrm{d}s \int_{-\infty}^{y} f(s,t) \mathrm{d}t$$&lt;p&gt; 则称 $(X,Y)$ 为二维连续型随机变量，并称 $f(x,y)$ 为 $(X,Y)$ 的联合概率密度函数.&lt;/p&gt;
&lt;p&gt;联合概率密度函数具有以下性质：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;非负性：对任意 $(x,y) \in \textbf{R}^2$，有 $f(x,y) \geqslant 0$&lt;/li&gt;
&lt;li&gt;规范性：$\displaystyle F(x,y) = \int_{-\infty}^{+\infty} \mathrm{d}s \int_{-\infty}^{+\infty} f(s,t) \mathrm{d}t = 1$&lt;/li&gt;
&lt;li&gt;可导性：$\displaystyle \frac{\partial^2 F(x,y)}{\partial x \partial y} = f(x,y)$&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;边缘概率密度函数&#34;&gt;边缘概率密度函数
&lt;/h4&gt;&lt;p&gt;对于二维连续型随机变量 $(X,Y)$，联合概率密度函数 $f(x,y)$，边缘概率密度函数分别为 $f_X(x)$ 和 $f_Y(y)$，则有 &lt;/p&gt;
$$f_X(x) = \int_{-\infty}^{+\infty} f(x,y) \mathrm{d}y $$&lt;p&gt; &lt;/p&gt;
$$ f_Y(y) = \int_{-\infty}^{+\infty} f(x,y) \mathrm{d}x$$&lt;h4 id=&#34;常用分布-2&#34;&gt;常用分布
&lt;/h4&gt;&lt;h5 id=&#34;二维均匀分布&#34;&gt;二维均匀分布
&lt;/h5&gt;&lt;p&gt;设 $(X,Y)$ 是二维连续型随机变量，$G$ 是平面上一有界区域，且联合概率密度函数满足 &lt;/p&gt;
$$f(x,y) = \left\{ \begin{matrix} \displaystyle \frac{1}{S_G} &amp; (x,y) \in G \\\\ 0 &amp; 其他 \end{matrix} \right.$$&lt;p&gt; 其中 $S_G$ 表示区域 $G$ 的面积.&lt;/p&gt;
&lt;h5 id=&#34;二维正态分布&#34;&gt;二维正态分布
&lt;/h5&gt;&lt;p&gt;设 $(X,Y)$ 是二维连续型随机变量，且联合概率密度函数满足 &lt;/p&gt;
$$f(x,y) = \frac{1}{2\pi \sigma_{1} \sigma_{2} \sqrt{1-\rho^2} } \cdot \mathrm{exp}\left\{ \frac{1}{2(1-\rho^2)} \left[ \left( \frac{x-\mu_{1}}{\sigma_{1}} \right)^2 - \frac{2\rho(x-\mu_{1})(y-\mu_{2})}{\sigma_{1}\sigma_{2}} + \left( \frac{y-\mu_{2}}{\sigma_{2}} \right)^2 \right] \right\}$$&lt;blockquote&gt;
&lt;p&gt;二维正态分布的性质&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;二维正态分布的边缘分布仍是正态分布，反之未必成立.&lt;/li&gt;
&lt;li&gt;二维正态随机变量的条件分布仍是正态分布.&lt;/li&gt;
&lt;li&gt;二维随机变量 $(X,Y) \sim N(\mu_{1},\mu_{2}; \sigma_{1}^{2}, \sigma_{2}^{2}; \rho)$，则 $(X,Y)$ 相互独立的充要条件是 $\rho = 0$.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;条件概率密度函数&#34;&gt;条件概率密度函数
&lt;/h4&gt;&lt;p&gt;设 $(X,Y)$ 为二维连续型随机变量，在条件 $Y=y$ 下，随机变量 $X$ 的条件分布函数为 $F_{X\ |\ Y} (x\ |\ y)$，条件概率密度函数为 $f_{X\ |\ Y} (x\ |\ y)$&lt;/p&gt;
$$f_{X\ |\ Y} = \frac{f(x,y)}{f_Y(y)} $$&lt;p&gt; &lt;/p&gt;
$$ f_{Y\ |\ X} = \frac{f(x,y)}{f_X(x)}$$&lt;blockquote&gt;
&lt;p&gt;随机变量的边缘密度函数只与该随机变量有关，而与另一个变量无关.&lt;/p&gt;
&lt;p&gt;条件密度通常情况下与两个随机变量都有关系.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;独立性-1&#34;&gt;独立性
&lt;/h4&gt;&lt;p&gt;设 $(X,Y)$ 是二维连续型随机变量，联合概率密度函数为 $f(x,y)$，边缘密度函数分别为 $f_X(x)$ 和 $f_Y(y)$，则 $X$ 和 $Y$ 相互独立的等价于对任意的 $(x,y) \in \textbf{R}^2$，在平面上几乎处处成立 &lt;/p&gt;
$$f(x,y) = f_X(x) f_Y(y)$$&lt;p&gt;易知，连续型随机变量 $(X,Y)$ 相互独立还等价于 &lt;/p&gt;
$$f_{X\ |\ Y}(x\ |\ y) = f_X(x)，x \in \textbf{R} \quad 或 \quad f_{Y\ |\ X}(y\ |\ x) = f_Y(y)，y \in \textbf{R}$$&lt;h3 id=&#34;二维随机变量函数的分布&#34;&gt;二维随机变量函数的分布
&lt;/h3&gt;&lt;h4 id=&#34;二维离散型随机变量函数的分布&#34;&gt;二维离散型随机变量函数的分布
&lt;/h4&gt;&lt;p&gt;设 $(X,Y)$ 为二维离散型随机变量，则由函数 $Z=g(X,Y)$ 确定的随机变量也是离散型随机变量.&lt;/p&gt;
&lt;p&gt;求随机变量 $Z$ 的分布：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;确定 $Z$ 的所有可能值.&lt;/li&gt;
&lt;li&gt;逐个计算 $Z$ 取每个可能值的概率.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;二维连续型随机变量函数的分布&#34;&gt;二维连续型随机变量函数的分布
&lt;/h4&gt;&lt;p&gt;常见的二维连续型随机变量函数&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$Z=X+Y$ &lt;br&gt;
设 $(X,Y)$ 的联合概率密度函数为 $f(x,y)$，$(x,y) \in \textbf{R}^2$，边缘密度函数分别为 $f_X(x)$，$f_Y(y)$. 对任意实数 $z$，随机变量 $Z$ 的概率密度函数 $$f_Z(z) = \int_{-\infty}^{+\infty} f(x,z-x) \mathrm{d}x $$ $$f_Z(z) = \int_{-\infty}^{+\infty} f(z-y,y) \mathrm{d}y $$&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;称上述两式为 $X$ 与 $Y$ 的卷积公式，记作 $f_Z = f_X * f_Y$&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;$M=\mathrm{max}\{X,Y\}$
&lt;/p&gt;
$$F_M(z) = P\{\mathrm{max}\{X,Y\} \leqslant z\} = P\{X \leqslant z, Y \leqslant z\} = F(z,z)$$&lt;p&gt;
若 $X$ 与 $Y$ 相互独立，则 $F_M(z) = F_X(z) F_Y(z)$&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;$N=\mathrm{min}\{X,Y\}$
&lt;/p&gt;
$$F_N(z) = P\{\mathrm{min}\{X,Y\} \leqslant z\} = 1-P\{X&gt;z, Y&gt;z\}$$&lt;p&gt;
若 $X$ 与 $Y$ 相互独立，则 $F_M(z) = 1-[1-F_X(z)] \cdot [1-F_Y(z)]$&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;随机变量的数字特征&#34;&gt;随机变量的数字特征
&lt;/h2&gt;&lt;h3 id=&#34;数学期望&#34;&gt;数学期望
&lt;/h3&gt;&lt;h4 id=&#34;随机变量的数学期望&#34;&gt;随机变量的数学期望
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;类型&lt;/th&gt;
          &lt;th&gt;概率分布&lt;/th&gt;
          &lt;th&gt;数学期望&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;离散型随机变量&lt;/td&gt;
          &lt;td&gt;概率分布律：$P\{X=x_k\}=p_k$，$k=1,2,\cdots$&lt;/td&gt;
          &lt;td&gt;$\displaystyle E(X) = \sum_{k=1}^{\infty} x_k p_k$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;连续型随机变量&lt;/td&gt;
          &lt;td&gt;概率分布函数：$f(x)$&lt;/td&gt;
          &lt;td&gt;$\displaystyle E(X) = \int_{-\infty}^{+\infty} xf(x) \mathrm{d}x$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;随机变量函数的数学期望&#34;&gt;随机变量函数的数学期望
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;设 $X$ 是随机变量，令 $Y=g(X)$&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;类型&lt;/th&gt;
          &lt;th&gt;概率分布&lt;/th&gt;
          &lt;th&gt;$E(Y)$&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;离散型随机变量&lt;/td&gt;
          &lt;td&gt;概率分布律：$P\{X=x_k\} = p_k$&lt;/td&gt;
          &lt;td&gt;$\displaystyle E(Y) = E[g(X)] = \sum_{k=1}^{\infty} g(x_k) P\{X=x_k\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;连续型随机变量&lt;/td&gt;
          &lt;td&gt;概率密度函数：$f(x)$&lt;/td&gt;
          &lt;td&gt;$\displaystyle E(Y) = E[g(X)] = \int_{-\infty}^{+\infty} g(x)f(x) \mathrm{d}x$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;设 $(X,Y)$ 是二维随机变量，令 $Z=g(X,Y)$.&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;类型&lt;/th&gt;
          &lt;th&gt;概率分布&lt;/th&gt;
          &lt;th&gt;$E(Z)$&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;离散型随机变量&lt;/td&gt;
          &lt;td&gt;联合概率分布律：$P\{X=x_i,\ Y=y_j\} = p_{ij}$&lt;/td&gt;
          &lt;td&gt;$\displaystyle E(Z) = \sum_{i=1}^{\infty} \sum_{j=1}^{\infty} g(x_i,y_i) p_{ij}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;连续型随机变量&lt;/td&gt;
          &lt;td&gt;联合概率密度函数：$f(x,y)$&lt;/td&gt;
          &lt;td&gt;$\displaystyle E(Z) = \int_{-\infty}^{+\infty} \int_{-\infty}^{+\infty} g(x,y) f(x,y) \mathrm{d}x\mathrm{d}y$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;数学期望的性质&#34;&gt;数学期望的性质
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;设 $c$ 是常数，则 $E(c) = c$&lt;/li&gt;
&lt;li&gt;若 $a$，$b$ 是常数，则 $E(aX+b) = aE(X)+b$&lt;/li&gt;
&lt;li&gt;$E(X+Y) = E(X)+E(Y)$&lt;/li&gt;
&lt;li&gt;设 $X$，$Y$ 相互独立，则 $E(XY) = E(X)E(Y)$&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;方差&#34;&gt;方差
&lt;/h3&gt;&lt;h4 id=&#34;方差的定义&#34;&gt;方差的定义
&lt;/h4&gt;&lt;p&gt;设随机变量 $X$ 的数学期望 $E(X)$ 存在，若随机变量 $[X-E(X)]^2$ 的数学期望 $E[X-E(X)]^2$ 存在，则记随机变量 $X$ 的方差 &lt;/p&gt;
$$D(X) = \mathrm{Var}(X) = E[X-E(X)]^2 $$&lt;p&gt; 方差的算术平方根记作标准差 &lt;/p&gt;
$$\sigma(X) = \sqrt{D(X)}$$&lt;p&gt;将方差的定义式展开，可得：&lt;/p&gt;
$$D(X) = E(X^2)-[E(X)]^2$$&lt;h4 id=&#34;基本性质&#34;&gt;基本性质
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;$D(c) = 0$&lt;/li&gt;
&lt;li&gt;$D(aX+b) = a^2 D(X)$&lt;/li&gt;
&lt;li&gt;若随机变量 $X$ 与 $Y$ 独立，则 $D(X+Y) = D(X) + D(Y)$&lt;/li&gt;
&lt;li&gt;$D(X) = 0$ 的充要条件是 $P\{X=c\} = 1$&lt;/li&gt;
&lt;li&gt;设实函数 $f(x) = E(X-x)^2$，即当 $x=E(X)$ 时，$f(x)$ 取最小值 $D(X)$，即 $D(X) \leqslant E(X-x)^2$&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;常用分布的数学期望与方差&#34;&gt;常用分布的数学期望与方差
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;分布&lt;/th&gt;
          &lt;th&gt;表示&lt;/th&gt;
          &lt;th&gt;期望&lt;/th&gt;
          &lt;th&gt;方差&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;$0-1$ 分布&lt;/td&gt;
          &lt;td&gt;$B(1,p)$&lt;/td&gt;
          &lt;td&gt;$p$&lt;/td&gt;
          &lt;td&gt;$p(1-p)$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;二项分布&lt;/td&gt;
          &lt;td&gt;$B(n,p)$&lt;/td&gt;
          &lt;td&gt;$np$&lt;/td&gt;
          &lt;td&gt;$np(1-p)$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;泊松分布&lt;/td&gt;
          &lt;td&gt;$P(\lambda)$&lt;/td&gt;
          &lt;td&gt;$\lambda$&lt;/td&gt;
          &lt;td&gt;$\lambda$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;几何分布&lt;/td&gt;
          &lt;td&gt;$G(p)$&lt;/td&gt;
          &lt;td&gt;$\displaystyle \frac{1}{p}$&lt;/td&gt;
          &lt;td&gt;$\displaystyle \frac{1-p}{p^2}$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;分布&lt;/th&gt;
          &lt;th&gt;表示&lt;/th&gt;
          &lt;th&gt;期望&lt;/th&gt;
          &lt;th&gt;方差&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;均匀分布&lt;/td&gt;
          &lt;td&gt;$U(a,b)$&lt;/td&gt;
          &lt;td&gt;$\displaystyle \frac{a+b}{2}$&lt;/td&gt;
          &lt;td&gt;$\displaystyle \frac{(b-a)^2}{12}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;指数分布&lt;/td&gt;
          &lt;td&gt;$Exp(\lambda)$&lt;/td&gt;
          &lt;td&gt;$\displaystyle \frac{1}{\lambda}$&lt;/td&gt;
          &lt;td&gt;$\displaystyle \frac{1}{\lambda^2}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;正态分布&lt;/td&gt;
          &lt;td&gt;$N(\mu,\sigma^2)$&lt;/td&gt;
          &lt;td&gt;$\mu$&lt;/td&gt;
          &lt;td&gt;$\sigma^2$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;协方差与相关系数&#34;&gt;协方差与相关系数
&lt;/h3&gt;&lt;h4 id=&#34;协方差&#34;&gt;协方差
&lt;/h4&gt;&lt;p&gt;设 $(X,Y)$ 是二维随机变量，则称 &lt;/p&gt;
$$\mathrm{Cov}(X,Y) = E\{[X-E(X)] [Y-E(Y)]\}$$&lt;p&gt; 为随机变量 $X$ 与 $Y$ 的协方差.&lt;/p&gt;
&lt;p&gt;性质：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;$\mathrm{Cov}(X,Y) = E(XY)-E(X)E(Y)$&lt;/li&gt;
&lt;li&gt;$\mathrm{Cov}(X,X) = D(X)$&lt;/li&gt;
&lt;li&gt;$\mathrm{Cov}(X,Y) = \mathrm{Cov}(Y,X)$&lt;/li&gt;
&lt;li&gt;$\mathrm{Cov}(X+Y,Z) = \mathrm{Cov}(X,Z) + \mathrm{Cov}(Y,Z)$&lt;/li&gt;
&lt;li&gt;$\mathrm{Cov}(aX+b,cY+d) = ac\mathrm{Cov}(X,Y)$&lt;/li&gt;
&lt;li&gt;$D(X \pm Y) = D(X) + D(Y) \pm 2 \mathrm{Cov}(X,Y)$&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;相关系数&#34;&gt;相关系数
&lt;/h4&gt;&lt;p&gt;设 $(X,Y)$ 是二维随机变量，则称 &lt;/p&gt;
$$\rho_{X,Y} = \frac{\mathrm{Cov}(X,Y)}{\sqrt{D(X)} \sqrt{D(Y)}}$$&lt;p&gt; 为随机变量 $X$ 与 $Y$ 的相关系数.&lt;/p&gt;
&lt;p&gt;性质：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;$ | \rho_{X,Y} \leqslant 1 |$&lt;/li&gt;
&lt;li&gt;$ | \rho_{X,Y} | = 1 $ 等价于 $X$ 与 $Y$ 以概率 $1$ 有线性关系&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;大数定律与中心极限定理&#34;&gt;大数定律与中心极限定理
&lt;/h2&gt;&lt;h3 id=&#34;切比雪夫不等式&#34;&gt;切比雪夫不等式
&lt;/h3&gt;&lt;p&gt;设随机变量 $X$ 具有数学期望 $E(X) = \mu$，方差 $D(X) = \sigma^2$，则对于任意正数 $\varepsilon$，有 &lt;/p&gt;
$$P\{ |X - E(X)| \geqslant \varepsilon\} \leqslant \frac{D(X)}{\varepsilon^2}$$&lt;h3 id=&#34;大数定律&#34;&gt;大数定律
&lt;/h3&gt;&lt;h4 id=&#34;依概率收敛&#34;&gt;依概率收敛
&lt;/h4&gt;&lt;p&gt;设随机变量序列 $X_1, X_2 \cdots, X_n, \cdots$，若存在随机变量 $X$，使得对任意 $\varepsilon &amp;gt; 0$，恒有 &lt;/p&gt;
$$\lim_{n \to \infty} P\{ |X_n -X| &lt; \varepsilon \} = 1$$&lt;p&gt; 则称序列 $X_1, X_2 \cdots, X_n, \cdots$ 依概率收敛于 $X$，记为 $X_n \xrightarrow{P} X$&lt;/p&gt;
&lt;h4 id=&#34;大数定律-1&#34;&gt;大数定律
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;切比雪夫大数定律&lt;/strong&gt;：设 $X_1, X_2 \cdots, X_n, \cdots$ 是一列两两不相关的随机变量序列，且方差有界（即存在常数 $C&amp;gt;0$，使得对于任意 $i$，都有 $D(X_i) \leqslant C$）. 令 $\displaystyle Y_n = \frac{1}{n} \sum_{i=1}^{n} X_i$，则有 &lt;/p&gt;
$$Y_n \xrightarrow{P} E(Y_n)$$&lt;p&gt;&lt;strong&gt;伯努利大数定律&lt;/strong&gt;：在 $n$ 重伯努利试验中，设在每次试验中事件 $A$ 发生的概率均为 $p(0&amp;lt;p&amp;lt;1)$，$\mu_n$ 为 $n$ 重伯努利试验中事件 $A$ 发生的次数，则 &lt;/p&gt;
$$ \frac{\mu_n}{n} \xrightarrow{P} p$$&lt;p&gt;&lt;strong&gt;辛钦大数定律&lt;/strong&gt;：设 $X_1, X_2 \cdots, X_n, \cdots$ 是独立同分布的随机变量序列，且数学期望存在，即 $E(X_i) = \mu (i = 1,2,\cdots,n,\cdots)$，则 &lt;/p&gt;
$$ \frac{1}{n} \sum_{i=1}^{n} X_i \xrightarrow{P} \mu $$&lt;h3 id=&#34;中心极限定理&#34;&gt;中心极限定理
&lt;/h3&gt;&lt;p&gt;设随机变量序列 $X_1, X_2 \cdots, X_n, \cdots$ 独立同分布，且 $E(X_i) = \mu$，$D(X_i) = \sigma^2 &amp;gt; 0$，则随机变量 &lt;/p&gt;
$$Y_i = \frac{\displaystyle \sum_{i=0}^{n} X_i - n\mu}{\sqrt{n}\sigma}$$&lt;p&gt; 的分布函数 $F_n(x)$ 满足 &lt;/p&gt;
$$\lim_{n \to \infty} F_n(x) = \lim_{n \to \infty} P\{Y_n \leqslant x\} = \frac{1}{\sqrt{2\pi}} \int_{-\infty}^{x} \mathrm{e}^{-\frac{y^2}{2}} \mathrm{d}y，x \in \textbf{R}$$&lt;p&gt;该定理表明，当 $n \to \infty$ 时，随机变量 $Y_n$ 的分布将趋近于标准正态分布 $N(0,1)$. 即：当 $n$ 充分大时，独立同分布的 $n$ 个随机变量 $X_1, X_2 \cdots, X_n$ 之和 $\displaystyle S_n = \sum_{i=1}^{n} X_i$ 将近似地服从正态分布 $N(n\mu, n\sigma^2)$&lt;/p&gt;
&lt;p&gt;设在独立重复试验序列中，事件 $A$ 发生的概率为 $p$，随机变量 $Y_n$ 表示事件 $A$ 在 $n$ 次试验中发生的次数，则对于任意实数 $x$，有 &lt;/p&gt;
$$\lim_{n \to \infty} \left\{  \frac{Y_n - np}{\sqrt{np(1-p)}} \leqslant x \right\} = \frac{1}{\sqrt{2\pi}} \int_{-\infty}^{x} \mathrm{e}^{-\frac{y^2}{2}} \mathrm{d}y$$&lt;p&gt;或者表示为：&lt;/p&gt;
$$P\{ a &lt; X &lt; b \} = \varPhi\left( \frac{b-np}{\sqrt{np(1-p)}} \right) - \varPhi\left( \frac{a-np}{\sqrt{np(1-p)}} \right)$$&lt;h2 id=&#34;数理统计的基本概念与抽样分布&#34;&gt;数理统计的基本概念与抽样分布
&lt;/h2&gt;&lt;h3 id=&#34;基本概念&#34;&gt;基本概念
&lt;/h3&gt;&lt;h4 id=&#34;总体与样本&#34;&gt;总体与样本
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;概念&lt;/th&gt;
          &lt;th&gt;定义&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;总体&lt;/td&gt;
          &lt;td&gt;研究对象的某项数量指标的值的全体称为总体&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;个体&lt;/td&gt;
          &lt;td&gt;总体中的每个元素称为个体&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;样本&lt;/td&gt;
          &lt;td&gt;从一个总体 $X$ 中随机地抽取 $n$ 个个体组成的向量 $(X_1,X_2,\cdots,X_n)$ 称为总体 $X$ 的一个样本&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;随机样本的要求&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;独立性：$X_1,X_2,\cdots,X_n$ 是相互独立的随机变量；&lt;/li&gt;
&lt;li&gt;代表性：样本的每个个体 $X_i$ 与总体 $X$ 具有相同的分布.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;经验分布函数&#34;&gt;经验分布函数
&lt;/h4&gt;&lt;p&gt;设 $(X_1,X_2,\cdots,X_n)$ 是从总体 $X$ 中抽取的容量为 $n$ 的样本，$(x_1,x_2,\cdots,x_n)$ 是样本的观测值，将样本观测值从小到大排列得到 $x_{(1)} \leqslant x_{(2)} \leqslant \cdots \leqslant x_{(n)}$，对任意实数 $x$，称 &lt;/p&gt;
$$F_n(x) = \frac{1}{n} \sum_{i=0}^{n} I_{\{x_{(i)} \leqslant x\}}$$&lt;p&gt; 为总体 $X$ 的经验分布函数.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;当样本容量 $n$ 足够大时，经验分布函数 $F_n(x)$ 是总体分布函数的一个良好近似.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;统计量及其分布&#34;&gt;统计量及其分布
&lt;/h3&gt;&lt;h4 id=&#34;统计量&#34;&gt;统计量
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;样本矩&lt;/th&gt;
          &lt;th&gt;表示&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;样本均值&lt;/td&gt;
          &lt;td&gt;$\displaystyle \overline{X} = \frac{1}{n} \sum_{i=0}^{n} X_i$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;样本方差&lt;/td&gt;
          &lt;td&gt;$\displaystyle S^2 = \frac{1}{n-1} \sum_{i=1}^{n} (X_i - \overline{X})^2$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;样本标准差&lt;/td&gt;
          &lt;td&gt;$\displaystyle S = \sqrt{\frac{1}{n-1} \sum_{i=1}^{n} (X_i - \overline{X})^2 }$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;样本的 $k$ 阶原点矩&lt;/td&gt;
          &lt;td&gt;$\displaystyle A_k = \frac{1}{n} \sum_{i=1}^{n} X_i^k$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;样本的 $k$ 阶中心矩&lt;/td&gt;
          &lt;td&gt;$\displaystyle M_k = \frac{1}{n} \sum_{i=1}^{n} (X_i - \overline{X})^k$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;统计中的常用分布&#34;&gt;统计中的常用分布
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;$\chi^2$ 分布&lt;/th&gt;
          &lt;th&gt;内容&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;定义&lt;/td&gt;
          &lt;td&gt;设随机变量 $X_1, X_2 \cdots, X_n, \cdots$ 相互独立，且均服从 $N(0,1)$ 分布，则随机变量 $$Y = X_1^2 + X_2^2 + \cdots + X_n^2$$ 服从自由度是 $n$ 的 $\chi^2$ 分布，记为 $Y \sim \chi_n^2$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;性质&lt;/td&gt;
          &lt;td&gt;设随机变量 $ Y \sim \chi_n^2$，则 $E(Y) = n$，$D(Y) = 2n$ &lt;br&gt; 设随机变量 $Y_1 \sim \chi_m^2$，$Y_2 \sim \chi_n^2$，且 $Y_1$ 和 $Y_2$ 相互独立，则 $Y_1 + Y_2 \sim \chi_{m+n}^2$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;$t$ 分布&lt;/th&gt;
          &lt;th&gt;内容&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;定义&lt;/td&gt;
          &lt;td&gt;设随机变量 $X \sim N(0,1)$，$Y \sim \chi_n^2$，且 $X$ 和 $Y$ 相互独立，则称随机变量 $$T = \frac{X}{\sqrt{Y/n}}$$ 服从自由度是 $n$ 的 $t$ 分布，记为 $T \sim t_n$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;性质&lt;/td&gt;
          &lt;td&gt;$t$ 的概率密度函数 $f(x;n)$ 关于 $y$ 轴对称，且当 $n \to \infty$ 时，$t$ 分布趋于标准正态分布&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;$F$ 分布&lt;/th&gt;
          &lt;th&gt;内容&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;定义&lt;/td&gt;
          &lt;td&gt;设随机变量 $X \sim \chi_m^2$，$Y \sim \chi_n^2$，且 $X$ 和 $Y$ 相互独立，则称随机变量 $$F = \frac{X/m}{Y/n}$$ 服从第一自由度是 $m$，第二自由度是 $n$ 的 $F$ 分布，记作 $F \sim F_{m,n}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;性质&lt;/td&gt;
          &lt;td&gt;若 $F \sim F_{m,n}$，则 $\displaystyle \frac{1}{F} \sim F_{m,n}$ &lt;br&gt; 若 $T \sim t_n$，则 $T^2 \sim F_{1,n}$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;抽样分布定理&#34;&gt;抽样分布定理
&lt;/h4&gt;&lt;p&gt;设 $(X_1,X_2,\cdots,X_n)$ 是来自正态总体 $X \sim N(\mu,\sigma^2)$ 的样本，样本均值为 $\displaystyle \overline{X} = \frac{1}{n} \sum_{i=1}^{n} X_i$，样本方差为 $\displaystyle S^2=\frac{1}{n-1} \sum_{i=1}^{n} (X_i-\overline{X})^2$，则&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;$\displaystyle \overline{X} \sim N(\mu,\frac{\sigma^2}{n})$&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;$\displaystyle \frac{\sqrt{n}(\overline{X}-\mu)}{S} \sim t_{n-1}$&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;$\displaystyle \frac{(n-1)S^2}{\sigma^2} \sim \chi_{n-1}^2$&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;${X}$ 与 $S^2$ 相互独立&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;抽样分布定理常用来构造一些已知分布的统计量.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;参数估计&#34;&gt;参数估计
&lt;/h2&gt;&lt;p&gt;通过样本来估计总体的参数，称为参数估计.&lt;/p&gt;
&lt;h3 id=&#34;参数的点估计&#34;&gt;参数的点估计
&lt;/h3&gt;&lt;p&gt;设总体 $X$ 的分布类型已知，但其中含有未知数 $\theta = (\theta_1, \cdots, \theta_k)$. 从样本出发构造适当的统计量 $\hat{\theta}_i = \hat{\theta}_i(X_1,X_2,\cdots,X_n)$ 作为参数 $\theta_i$ 的估计量，当取得样本观测值 $(x_1,x_2,\cdots,x_n)$ 后，就用 $\hat{\theta}_i = \hat{\theta}_i(x_1,x_2,\cdots,x_n)$ 作为未知参数 $\theta_i$ 的估计值.&lt;/p&gt;
&lt;h4 id=&#34;矩估计法&#34;&gt;矩估计法
&lt;/h4&gt;&lt;p&gt;设总体 $X$ 含有 $k$ 个未知参数 $\theta_1, \theta_2, \cdots, \theta_k$，且 $X$ 的 $m$ 阶原点矩 $\alpha_m = E(X^m)$ 存在，$m=1,2,\cdots,k$，，令 &lt;/p&gt;
$$\left \{\begin{array}{c}  \alpha_1(\theta_1, \cdots, \theta_k) = A_1 \\ \\ \alpha_2(\theta_1, \cdots, \theta_k) = A_2 \\\\ \cdots \ \cdots \ \cdots \ \cdots \\\\ \alpha_k(\theta_1, \cdots, \theta_k) = A_k \\ \end{array} \right. $$&lt;p&gt; 解这个方程组，其解都是样本的函数，记为 &lt;/p&gt;
$$\hat{\theta_i} = \hat{\theta_i}(X_1, X_2, \cdots, X_n)，i=1,2,\cdots,k$$&lt;blockquote&gt;
&lt;p&gt;当总体含有两个未知参数时，通常我们使用 &lt;/p&gt;
$$\left \{ \begin{array}{c} \begin{align*} &amp; E(\theta_1, \cdots, \theta_k) = \overline{X} \\ \\ &amp; D(\theta_1, \cdots, \theta_k) = \frac{(n-1)S^2}{n}  \end{align*} \end{array} \right. $$&lt;p&gt; 求出参数.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;最大似然估计法&#34;&gt;最大似然估计法
&lt;/h4&gt;&lt;p&gt;设总体 $X$ 的概率分布为 $f(x;\theta)$，$\theta = (\theta_1,\theta_2,\cdots,\theta_k)$ 为未知参数，$(X_1,X_2,\cdots,X_n)$ 是从该总体中抽取的样本，则它们的联合概率分布为 &lt;/p&gt;
$$L(x_1, x_2, \cdots, x_n;\theta) = \prod_{i=1}^{n} f(x_i,\theta)$$&lt;p&gt; 将其设作 $\theta$ 的函数 $L(\theta)$ 称其为 $\theta$ 的似然函数.&lt;/p&gt;
&lt;p&gt;对给定的样本值 $(x_1,x_2,\cdots,x_n)$，若存在 $\hat{\theta}$ 使得 &lt;/p&gt;
$$L(\hat{\theta}) = \underset{\theta \in \mathrm{H}}{\mathrm{max}} L(\theta)$$&lt;p&gt; 则称 $\hat{\theta}$ 是参数 $\theta$ 的最大似然估计值.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;若 $L(\hat{\theta})$ 不单调，则可取 $l(\theta) = \ln L(\theta)$，对 $l(\theta)$ 求导可得到最大值点 $\hat{\theta}$.&lt;/li&gt;
&lt;li&gt;若 $L(\hat{\theta})$ 单调递增，则 $\hat{\theta}$ 取端点处的值.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;估计量的优良性准则&#34;&gt;估计量的优良性准则
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;准则&lt;/th&gt;
          &lt;th&gt;定义&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;无偏性&lt;/td&gt;
          &lt;td&gt;设 $\hat{\theta}$ 是参数 $\theta$ 的估计量，若 $E(\hat{\theta}) = \theta$ 对一切 $\theta$ 均成立，则称 $\hat{\theta}$ 为 $\theta$ 的无偏估计量，记为 $\mathrm{UE}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;有效性&lt;/td&gt;
          &lt;td&gt;设 $\hat{\theta_1}$ 和 $\hat{\theta_2}$ 均为 $\theta$ 的无偏估计量，若 $D(\hat{\theta_1}) &amp;lt; D(\hat{\theta_2})$，则称 $\hat{\theta_1}$ 比 $\hat{\theta_2}$ 有效&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;相合估计&lt;/td&gt;
          &lt;td&gt;设 $\hat{\theta}_n = \hat{\theta}_n(X_1,X_2,\cdots,X_n)$ 是未知参数 $\theta$ 的估计序列，若 $\hat{\theta}_n$ &lt;a class=&#34;link&#34; href=&#34;#%e4%be%9d%e6%a6%82%e7%8e%87%e6%94%b6%e6%95%9b&#34; &gt;依概率收敛
    
    

&lt;/a&gt;于 $\theta$，则称 $\hat{\theta}_n$ 是 $\theta$ 的相合估计量或一致估计量&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;区间估计&#34;&gt;区间估计
&lt;/h3&gt;&lt;h4 id=&#34;基本概念-1&#34;&gt;基本概念
&lt;/h4&gt;&lt;p&gt;设 $\theta$ 为总体中的未知参数，$(X_1,X_2,\cdots,X_n)$ 是从总体中抽取的样本. 如果存在两个估计量 $\hat{\theta_1} = \hat{\theta}_1(X_1,X_2,\cdots,X_n)$ 和 $\hat{\theta}_2 = \hat{\theta_2}(X_1,X_2,\cdots,X_n)$，对于给定的 $\alpha (0&amp;lt;\alpha&amp;lt;1)$ 有 &lt;/p&gt;
$$P\{\hat{\theta}_1 &lt; \theta &lt; \hat{\theta}_2\} \geqslant 1-\alpha$$&lt;p&gt; 则称：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;基本概念&lt;/th&gt;
          &lt;th&gt;内容&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;置信区间&lt;/td&gt;
          &lt;td&gt;区间 $(\hat{\theta}_1,\hat{\theta}_2)$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;置信度&lt;/td&gt;
          &lt;td&gt;$1-\alpha$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;置信下界&lt;/td&gt;
          &lt;td&gt;$\hat{\theta}_1$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;置信上界&lt;/td&gt;
          &lt;td&gt;$\hat{\theta}_2$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;


&lt;blockquote class=&#34;alert alert-note&#34;&gt;
    &lt;p&gt;构造置信区间的一般步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;构造样本 $(X_1,X_2,\cdots,X_n)$ 和待估参数 $\theta$ 的函数 $g(X_1,X_2,\cdots,X_n)$，要求除 $\theta$ 外，$g$ 不含任何其他未知参数，并且 $g$ 的分布完全已知（通常为标准正态分布、$\chi^2$ 分布、$t$ 分布、$F$ 分布等）且与 $\theta$ 无关；&lt;/li&gt;
&lt;li&gt;对于给定的置信度 $1-\alpha$，由关系式 $$P\{a &lt; g(X_1,X_2,\cdots,X_n,\theta) &lt; b\} \geqslant 1-\alpha$$ 确定适当的常数 $a$，$b$；&lt;/li&gt;
&lt;li&gt;上式等价于 $$P\{\hat{\theta}_1(X_1,X_2,\cdots,X_n) &lt; g(X_1,X_2,\cdots,X_n,\theta) &lt; \hat{\theta}_2(X_1,X_2,\cdots,X_n)\} \geqslant 1-\alpha$$ 于是 $(\theta_1,\theta_2)$ 就是 $\theta$ 的置信度至少为 $1-\alpha$ 的置信区间.&lt;/li&gt;
&lt;/ol&gt;&lt;/blockquote&gt;
&lt;p&gt;设 $X$ 是随机变量，$\alpha(0&amp;lt;\alpha&amp;lt;1)$ 是任意给定的正数，若存在 $x_{\alpha}$ 使得 $P\{X \geqslant x_{\alpha}\} = \alpha$，则称 $x_{\alpha}$ 为 $X$ （或它的概率分布）的 $\alpha$ 上侧分位数.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;分布&lt;/th&gt;
          &lt;th&gt;上侧分位数的性质&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;正态分布&lt;/td&gt;
          &lt;td&gt;若 $X \sim N(0,1)$，若 $\alpha \leqslant 0.5$，则 $P\{X \leqslant x_{1-\alpha}\} = P\{X \geqslant x_{\alpha}\} = \alpha$，所以 $x_{\alpha} = -x_{\alpha}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$t$ 分布&lt;/td&gt;
          &lt;td&gt;若 $T \sim t_{n}$，则有 $t_n(1-\alpha) = t_n(\alpha)$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$F$ 分布&lt;/td&gt;
          &lt;td&gt;若 $F \sim F_{m,n}$，则有 $\displaystyle F_{n,m}(1-\alpha)= \frac{1}{F_{m,n}(\alpha)}$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;单个正态总体参数的置信区间&#34;&gt;单个正态总体参数的置信区间
&lt;/h4&gt;&lt;p&gt;设总体 $X \sim N(\mu,\sigma^2)$，$(X_1,X_2,\cdots,X_n)$ 是取自总体 $X$ 的样本，对给定的置信度 $1-\alpha$，分别求参数 $\mu$ 和 $\sigma^2$ 的区间估计.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;估计量&lt;/th&gt;
          &lt;th&gt;条件&lt;/th&gt;
          &lt;th&gt;枢轴量&lt;/th&gt;
          &lt;th&gt;置信区间&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;$\mu$&lt;/td&gt;
          &lt;td&gt;$\sigma^2$ 已知&lt;/td&gt;
          &lt;td&gt;$\displaystyle Z=\frac{\overline{X}-\mu}{\sigma /\sqrt{n}} \sim N(0,1) $&lt;/td&gt;
          &lt;td&gt;$\displaystyle \left(\overline{X} - z_{\frac{\alpha}{2}} \frac{\sigma}{\sqrt{n}},\ \overline{X} + z_{\frac{\alpha}{2}} \frac{\sigma}{\sqrt{n}} \right)$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$\mu$&lt;/td&gt;
          &lt;td&gt;$\sigma^2$ 未知&lt;/td&gt;
          &lt;td&gt;$\displaystyle T=\frac{\overline{X}-\mu}{S/\sqrt{n}} \sim t_{n-1}$&lt;/td&gt;
          &lt;td&gt;$\displaystyle \left(\overline{X}-t_{n-1}\left(\frac{\alpha}{2}\right) \frac{S}{\sqrt{n}},\ \overline{X}+t_{n-1}\left(\frac{\alpha}{2}\right) \frac{S}{\sqrt{n}} \right) $&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$\sigma^2$&lt;/td&gt;
          &lt;td&gt;$\mu$ 未知&lt;/td&gt;
          &lt;td&gt;$\displaystyle \chi^2 = \frac{(n-1)S^2}{\sigma^2} \sim \chi_{n-1}^2$&lt;/td&gt;
          &lt;td&gt;$\displaystyle \left(\frac{(n-1)S^2}{\displaystyle \chi_{n-1}^2 \left(\frac{\alpha}{2}\right)}, \ \frac{(n-1)S^2}{\displaystyle \chi_{n-1}^2 \left(1-\frac{\alpha}{2}\right)} \right)$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;两个正态总体参数的置信区间&#34;&gt;两个正态总体参数的置信区间
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;估计量&lt;/th&gt;
          &lt;th&gt;条件&lt;/th&gt;
          &lt;th&gt;枢轴量&lt;/th&gt;
          &lt;th&gt;置信区间&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;$\mu_1 - \mu_2$&lt;/td&gt;
          &lt;td&gt;方差已知&lt;/td&gt;
          &lt;td&gt;$\displaystyle Z = \frac{\overline{X}-\overline{Y}-(\mu_1-\mu_2)}{\displaystyle \sqrt{\frac{1}{m} \sigma_1^2 + \frac{1}{n} \sigma_2^2}} \sim N(0,1)$&lt;/td&gt;
          &lt;td&gt;$\displaystyle \left(\overline{X}-\overline{Y}-z_{\frac{\alpha}{2}} \sqrt{\frac{1}{m}\sigma_1^2 + \frac{1}{n}\sigma_2^2}, \ \overline{X}-\overline{Y}+z_{\frac{\alpha}{2}} \sqrt{\frac{1}{m}\sigma_1^2 + \frac{1}{n}\sigma_2^2} \right)$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$\mu_1 - \mu_2$&lt;/td&gt;
          &lt;td&gt;方差未知但相等&lt;/td&gt;
          &lt;td&gt;$\displaystyle T = \frac{\overline{X}-\overline{Y}-(\mu_1-\mu_2)}{\displaystyle S_w\sqrt{\frac{1}{m} + \frac{1}{n}}} \sim t_{m+n-2}$&lt;/td&gt;
          &lt;td&gt;$\displaystyle \left(\overline{X}-\overline{Y}-\lambda, \ \overline{X}-\overline{Y}+\lambda\right)$ &lt;br&gt; 其中 $\displaystyle \lambda = t_{m+n-2}\left(\frac{\alpha}{2}\right)S_w \sqrt{\frac{1}{m}+\frac{1}{n}}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$\displaystyle \frac{\sigma_1^2}{\sigma_2^2}$&lt;/td&gt;
          &lt;td&gt;均值未知&lt;/td&gt;
          &lt;td&gt;$\displaystyle F = \frac{S_2^2}{S_1^2} \cdot \frac{\sigma_1^2}{\sigma_2^2}\sim F_{n-1,m-1}$&lt;/td&gt;
          &lt;td&gt;$\displaystyle \left(F_{n-1,m-1}\left(1-\frac{\alpha}{2}\right)\frac{S_1^2}{S_2^2}, \ F_{n-1,m-1}\left(\frac{\alpha}{2}\right)\frac{S_1^2}{S_2^2} \right)$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;假设检验&#34;&gt;假设检验
&lt;/h2&gt;&lt;p&gt;假设检验是对总体的分布类型或分布类型中的未知参数提出假设，然后根据抽取的样本构造适当的统计量，对假设的真伪作出具有一定可靠性的判断.&lt;/p&gt;
&lt;h3 id=&#34;基本概念-2&#34;&gt;基本概念
&lt;/h3&gt;&lt;p&gt;提出假设时，称：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;定义&lt;/th&gt;
          &lt;th&gt;含义&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;$H_0$&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;原假设&lt;/strong&gt;或&lt;strong&gt;零假设&lt;/strong&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$H_1$&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;备择假设&lt;/strong&gt;或&lt;strong&gt;对立假设&lt;/strong&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;小概率原理&lt;/td&gt;
          &lt;td&gt;小概率事件在一次试验中几乎不可能发生&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;检验统计量&lt;/td&gt;
          &lt;td&gt;检验假设的统计量&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;拒绝域&lt;/td&gt;
          &lt;td&gt;$W = \{|Z| \geqslant z_{\alpha/2}\}$：拒绝原假设 $H_0$ 的区间&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;接受域&lt;/td&gt;
          &lt;td&gt;$W = \{|Z| &amp;lt; z_{\alpha/2}\}$：接受原假设 $H_0$ 的区间&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;一般步骤&#34;&gt;一般步骤
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;根据实际问题的需求，提出原假设 $H_0$ 和备择假设 $H_1$；&lt;/li&gt;
&lt;li&gt;根据 $H_0$ 内容，选取合适的检验统计量；&lt;/li&gt;
&lt;li&gt;对给定的显著性水平 $\alpha$，确定小概率事件（即拒绝域）$W$；&lt;/li&gt;
&lt;li&gt;判断：若样本观测值落入拒绝域 $W$，则拒绝原假设 $H_0$，否则不拒绝原假设 $H_0$.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;两类错误&#34;&gt;两类错误
&lt;/h4&gt;&lt;p&gt;第一类错误：当原假设 $H_0$ 为真时，样本观测值却落在了拒绝域，犯了“弃真”的错误. 可知犯第一类错误的最大概率为 &lt;/p&gt;
$$P\{拒绝 H_0 \ |\ H_0 为真\} = \alpha$$&lt;p&gt;第二类错误：当原假设 $H_0$ 不真时，样本观测值却落在了接受域，犯了“采伪”的错误，记犯第二类错误的概率 &lt;/p&gt;
$$P\{不拒绝 H_0 \ |\ H_0 不真\} = \beta$$&lt;blockquote&gt;
&lt;p&gt;注意：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;对检验结果来说，拒绝 $H_0$ 是有说服力的，接受 $H_0$ 是没有说服力的.&lt;/li&gt;
&lt;li&gt;原假设 $H_0$ 和备择假设 $H_1$ 不是平等的.&lt;/li&gt;
&lt;li&gt;在提出假设时，应当尽量使后果更严重的错误成为第一类错误.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;正态总体的假设检验&#34;&gt;正态总体的假设检验
&lt;/h3&gt;&lt;h4 id=&#34;单个正态总体&#34;&gt;单个正态总体
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;检验法&lt;/th&gt;
          &lt;th&gt;条件&lt;/th&gt;
          &lt;th&gt;原假设&lt;/th&gt;
          &lt;th&gt;备择假设&lt;/th&gt;
          &lt;th&gt;检验统计量&lt;/th&gt;
          &lt;th&gt;拒绝条件&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;$Z$ 检验&lt;/td&gt;
          &lt;td&gt;$\sigma^2 = \sigma_0^2$&lt;/td&gt;
          &lt;td&gt;$\mu = \mu_0$&lt;/td&gt;
          &lt;td&gt;$\mu \ne \mu_0$&lt;/td&gt;
          &lt;td&gt;$\displaystyle Z = \frac{\overline{X}-\mu_0}{\sigma_0 / \sqrt{n}}$&lt;/td&gt;
          &lt;td&gt;$\{|Z| \geqslant z_{\alpha / 2}\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\mu \leqslant \mu_0$&lt;/td&gt;
          &lt;td&gt;$\mu &amp;gt; \mu_0$&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\{Z \geqslant z_{\alpha}\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\mu \geqslant \mu_0$&lt;/td&gt;
          &lt;td&gt;$\mu &amp;lt; \mu_0$&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\{Z \leqslant -z_{\alpha}\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$t$ 检验&lt;/td&gt;
          &lt;td&gt;$\sigma$ 未知&lt;/td&gt;
          &lt;td&gt;$\mu = \mu_0$&lt;/td&gt;
          &lt;td&gt;$\mu \ne \mu_0$&lt;/td&gt;
          &lt;td&gt;$\displaystyle T = \frac{\overline{X}-\mu_0}{S/\sqrt{n}}$&lt;/td&gt;
          &lt;td&gt;$\{|T| \geqslant t_{n-1}(\alpha / 2)\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\mu \leqslant \mu_0$&lt;/td&gt;
          &lt;td&gt;$\mu &amp;gt; \mu_0$&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\{T \geqslant t_{n-1}(\alpha)\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\mu \geqslant \mu_0$&lt;/td&gt;
          &lt;td&gt;$\mu &amp;lt; \mu_0$&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\{T \leqslant -t_{n-1}(\alpha)\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$\chi^2$ 检验&lt;/td&gt;
          &lt;td&gt;$\mu = \mu_0$&lt;/td&gt;
          &lt;td&gt;$\sigma^2 = \sigma_0^2$&lt;/td&gt;
          &lt;td&gt;$\sigma^2 \ne \sigma_0^2$&lt;/td&gt;
          &lt;td&gt;$\displaystyle \chi^2 = \frac{\displaystyle \sum_{i=1}^n(X_i-\mu_0)^2}{\sigma_0^2}$&lt;/td&gt;
          &lt;td&gt;$\{\chi^2 \leqslant \chi_n^2\left(1-\alpha/2\right) \ 或\  \chi^2 \geqslant \chi_n^2(\alpha/2)\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\sigma^2 \leqslant \sigma_0^2$&lt;/td&gt;
          &lt;td&gt;$\sigma^2 &amp;gt; \sigma_0^2$&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\{\chi^2 \geqslant \chi_n^2(\alpha)\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\sigma^2 \geqslant \sigma_0^2$&lt;/td&gt;
          &lt;td&gt;$\sigma^2 &amp;lt; \sigma_0^2$&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\{\chi^2 \leqslant \chi_n^2(1-\alpha)\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$\chi^2$ 检验&lt;/td&gt;
          &lt;td&gt;$\mu$ 未知&lt;/td&gt;
          &lt;td&gt;$\sigma^2 = \sigma_0^2$&lt;/td&gt;
          &lt;td&gt;$\sigma^2 \ne \sigma_0^2$&lt;/td&gt;
          &lt;td&gt;$\displaystyle \chi^2 = \frac{(n-1)S^2}{\sigma_0^2}$&lt;/td&gt;
          &lt;td&gt;$\{\chi^2 \leqslant \chi_{n-1}^2\left(1-\alpha/2\right) \ 或\  \chi^2 \geqslant \chi_{n-1}^2(\alpha/2)\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\sigma^2 \leqslant \sigma_0^2$&lt;/td&gt;
          &lt;td&gt;$\sigma^2 &amp;gt; \sigma_0^2$&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\{\chi^2 \geqslant \chi_{n-1}^2(\alpha)\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\sigma^2 \geqslant \sigma_0^2$&lt;/td&gt;
          &lt;td&gt;$\sigma^2 &amp;lt; \sigma_0^2$&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\{\chi^2 \leqslant \chi_{n-1}^2(1-\alpha)\}$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;两个正态总体&#34;&gt;两个正态总体
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;检验法&lt;/th&gt;
          &lt;th&gt;条件&lt;/th&gt;
          &lt;th&gt;原假设&lt;/th&gt;
          &lt;th&gt;备择假设&lt;/th&gt;
          &lt;th&gt;检验统计量&lt;/th&gt;
          &lt;th&gt;拒绝条件&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;$Z$ 检验&lt;/td&gt;
          &lt;td&gt;$\sigma_1^2$，$\sigma_2^2$ 已知&lt;/td&gt;
          &lt;td&gt;$\mu_1 = \mu_2$&lt;/td&gt;
          &lt;td&gt;$\mu_1 \ne \mu_2$&lt;/td&gt;
          &lt;td&gt;$\displaystyle Z = \frac{\overline{X}-\overline{Y}}{\displaystyle \sqrt{\frac{\sigma_1^2}{m} + \frac{\sigma_2^2}{n}}}$&lt;/td&gt;
          &lt;td&gt;$\{|Z| \geqslant z_{\alpha / 2}\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\sigma_1^2$，$\sigma_2^2$ 未知&lt;/td&gt;
          &lt;td&gt;$\mu \leqslant \mu_0$&lt;/td&gt;
          &lt;td&gt;$\mu_1 &amp;gt; \mu_2$&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\{Z \geqslant z_{\alpha}\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$t$ 检验&lt;/td&gt;
          &lt;td&gt;$\sigma_1^2$，$\sigma_2^2$ 未知且$\sigma_1^2 = \sigma_2^2$&lt;/td&gt;
          &lt;td&gt;$\mu_1 = \mu_2$&lt;/td&gt;
          &lt;td&gt;$\mu_1 \ne \mu_2$&lt;/td&gt;
          &lt;td&gt;$\displaystyle T = \frac{\overline{X}-\overline{Y}}{\displaystyle S_w\sqrt{\frac{1}{m} + \frac{1}{n}}}$&lt;/td&gt;
          &lt;td&gt;$\{|T| \geqslant t_{m+n-2}(\alpha / 2)\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\mu_1 \leqslant \mu_2$&lt;/td&gt;
          &lt;td&gt;$\mu_1 &amp;gt; \mu_2$&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\{T \geqslant t_{m+n-2}(\alpha)\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$t$ 检验&lt;/td&gt;
          &lt;td&gt;成对数据&lt;/td&gt;
          &lt;td&gt;$\mu_1 = \mu_2$&lt;/td&gt;
          &lt;td&gt;$\mu_1 \ne \mu_2$&lt;/td&gt;
          &lt;td&gt;$\displaystyle T = \frac{\overline{D}}{S_d/\sqrt{n}}$&lt;/td&gt;
          &lt;td&gt;$\{|T| \geqslant t_{n-1}(\alpha / 2)\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\mu_1 \leqslant \mu_2$&lt;/td&gt;
          &lt;td&gt;$\mu_1 &amp;gt; \mu_2$&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\{T \geqslant t_{n-1}(\alpha)\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;$F$ 检验&lt;/td&gt;
          &lt;td&gt;$\mu_1$。$\mu_2$ 未知&lt;/td&gt;
          &lt;td&gt;$\sigma_1^2 = \sigma_2^2$&lt;/td&gt;
          &lt;td&gt;$\sigma_1^2 \ne \sigma_2^2$&lt;/td&gt;
          &lt;td&gt;$\displaystyle F = \frac{S_1^2}{S_2^2}$&lt;/td&gt;
          &lt;td&gt;$\{F \leqslant F_{m-1,n-1}(1-\alpha/2) \\ 或\ F \geqslant F_{m-1,n-1}(\alpha/2)\}$&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\sigma_1^2 \leqslant \sigma_2^2$&lt;/td&gt;
          &lt;td&gt;$\sigma_1^2 &amp;gt; \sigma_2^2$&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;$\{F \geqslant F_{m-1,n-1}(\alpha)\}$&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
</description>
        </item>
        <item>
        <title>熟练掌握数据结构</title>
        <link>https://rd806.github.io/passage/cs/data-structure/</link>
        <pubDate>Sun, 06 Jul 2025 00:00:00 +0000</pubDate>
        
        <guid>https://rd806.github.io/passage/cs/data-structure/</guid>
        <description>&lt;img src="https://rd806.github.io/passage/cs/data-structure/guerrillabuzz-7hA2wqBcSF8-unsplash.jpg" alt="Featured image of post 熟练掌握数据结构" /&gt;&lt;center&gt;&lt;strong&gt;&lt;p style=&#34;font-size:32px;&#34;&gt;程序 = 数据结构 + &lt;a href=&#34;https://rd806.github.io/passage/cs/algorithm/&#34;&gt;算法&lt;/a&gt;&lt;/p&gt;&lt;/strong&gt;&lt;/center&gt;
&lt;blockquote&gt;
&lt;p&gt;本文主要用来应付我的数据结构课程期末考试，所以写得比较粗糙，很多细节都忽略掉了，还请各位 dalao 谅解 🥰。&lt;/p&gt;
&lt;p&gt;以后如果有时间我可能会新建页面具体分析相关内容，所以可以把本文看作一篇索引（一个页表？）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;索引&#34;&gt;索引
&lt;/h2&gt;

&lt;blockquote class=&#34;alert alert-note&#34;&gt;
    &lt;p&gt;当前已更新索引，原内容拆分为五个部分&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;div class=&#34;catalogue&#34;&gt;
    &lt;div class=&#34;logo&#34;&gt;
        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/data-structure/linearlist &gt;数据结构：线性表&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;style&gt;
    .catalogue {
        border: 1px solid var(--card-text-color-main);
        border-radius: var(--card-border-radius);
        margin: 0 auto;
        margin-bottom: 1em;
        padding: 1em;
    }

    .name {
        font-weight: bold;
        margin-left: 0.5em;
        position: relative;
    }

    .description {
        margin-top: 0.5em;
        margin-bottom: 0.5em;
        color: var(--card-text-color-main);
        text-align: justify;
        font-size: 90%;
        transition: all 0.5s;
    }

    
    :root[data-scheme=&#34;light&#34;] {
        .name {
            color: #07639c;
        }   
    }

    :root[data-scheme=&#34;dark&#34;] {
        .name {
            color: #cebef4;
        }
    }
&lt;/style&gt;

&lt;div class=&#34;catalogue&#34;&gt;
    &lt;div class=&#34;logo&#34;&gt;
        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/data-structure/tree &gt;数据结构：树与二叉树&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;style&gt;
    .catalogue {
        border: 1px solid var(--card-text-color-main);
        border-radius: var(--card-border-radius);
        margin: 0 auto;
        margin-bottom: 1em;
        padding: 1em;
    }

    .name {
        font-weight: bold;
        margin-left: 0.5em;
        position: relative;
    }

    .description {
        margin-top: 0.5em;
        margin-bottom: 0.5em;
        color: var(--card-text-color-main);
        text-align: justify;
        font-size: 90%;
        transition: all 0.5s;
    }

    
    :root[data-scheme=&#34;light&#34;] {
        .name {
            color: #07639c;
        }   
    }

    :root[data-scheme=&#34;dark&#34;] {
        .name {
            color: #cebef4;
        }
    }
&lt;/style&gt;

&lt;div class=&#34;catalogue&#34;&gt;
    &lt;div class=&#34;logo&#34;&gt;
        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/data-structure/graph &gt;数据结构：图&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;style&gt;
    .catalogue {
        border: 1px solid var(--card-text-color-main);
        border-radius: var(--card-border-radius);
        margin: 0 auto;
        margin-bottom: 1em;
        padding: 1em;
    }

    .name {
        font-weight: bold;
        margin-left: 0.5em;
        position: relative;
    }

    .description {
        margin-top: 0.5em;
        margin-bottom: 0.5em;
        color: var(--card-text-color-main);
        text-align: justify;
        font-size: 90%;
        transition: all 0.5s;
    }

    
    :root[data-scheme=&#34;light&#34;] {
        .name {
            color: #07639c;
        }   
    }

    :root[data-scheme=&#34;dark&#34;] {
        .name {
            color: #cebef4;
        }
    }
&lt;/style&gt;

&lt;div class=&#34;catalogue&#34;&gt;
    &lt;div class=&#34;logo&#34;&gt;
        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/data-structure/search &gt;查找&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;style&gt;
    .catalogue {
        border: 1px solid var(--card-text-color-main);
        border-radius: var(--card-border-radius);
        margin: 0 auto;
        margin-bottom: 1em;
        padding: 1em;
    }

    .name {
        font-weight: bold;
        margin-left: 0.5em;
        position: relative;
    }

    .description {
        margin-top: 0.5em;
        margin-bottom: 0.5em;
        color: var(--card-text-color-main);
        text-align: justify;
        font-size: 90%;
        transition: all 0.5s;
    }

    
    :root[data-scheme=&#34;light&#34;] {
        .name {
            color: #07639c;
        }   
    }

    :root[data-scheme=&#34;dark&#34;] {
        .name {
            color: #cebef4;
        }
    }
&lt;/style&gt;

&lt;div class=&#34;catalogue&#34;&gt;
    &lt;div class=&#34;logo&#34;&gt;
        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/sort &gt;排序&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;style&gt;
    .catalogue {
        border: 1px solid var(--card-text-color-main);
        border-radius: var(--card-border-radius);
        margin: 0 auto;
        margin-bottom: 1em;
        padding: 1em;
    }

    .name {
        font-weight: bold;
        margin-left: 0.5em;
        position: relative;
    }

    .description {
        margin-top: 0.5em;
        margin-bottom: 0.5em;
        color: var(--card-text-color-main);
        text-align: justify;
        font-size: 90%;
        transition: all 0.5s;
    }

    
    :root[data-scheme=&#34;light&#34;] {
        .name {
            color: #07639c;
        }   
    }

    :root[data-scheme=&#34;dark&#34;] {
        .name {
            color: #cebef4;
        }
    }
&lt;/style&gt;
&lt;/p&gt;
&lt;h2 id=&#34;c语言补充知识&#34;&gt;C语言补充知识
&lt;/h2&gt;&lt;h3 id=&#34;typedef&#34;&gt;typedef
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;typedef&lt;/code&gt;可以给变量起一个别名，例如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;typedef&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ElemType&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;此后可以用&lt;code&gt;ElemType&lt;/code&gt;代替&lt;code&gt;int&lt;/code&gt;。&lt;/p&gt;
&lt;h3 id=&#34;输入输出函数&#34;&gt;输入输出函数
&lt;/h3&gt;&lt;p&gt;一般而言，C语言的输入输出函数比&lt;code&gt;cin&lt;/code&gt;，&lt;code&gt;cout&lt;/code&gt;更高效。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-c&#34; data-lang=&#34;c&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;num&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;float&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;fnum&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;double&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dnum&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;char&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;// 输入
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;scanf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;%d&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;      &lt;span class=&#34;c1&#34;&gt;// 整数
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;scanf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;%f&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;fnum&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;     &lt;span class=&#34;c1&#34;&gt;// float类型浮点数
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;scanf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;%lf&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dnum&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;    &lt;span class=&#34;c1&#34;&gt;// double类型浮点数
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;scanf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;%s&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;       &lt;span class=&#34;c1&#34;&gt;// 字符串
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;//输出
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;printf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;%d&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;num&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;printf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;%f&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;fnum&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;17&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;C语言的格式符：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;格式符&lt;/th&gt;
          &lt;th&gt;含义&lt;/th&gt;
          &lt;th&gt;示例代码&lt;/th&gt;
          &lt;th&gt;输出示例&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;%d&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;十进制整数&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%d&amp;quot;, 123);&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;123&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;%f&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;浮点数&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%f&amp;quot;, 3.14);&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;3.140000&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;%c&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;字符&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%c&amp;quot;, &#39;A&#39;);&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;A&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;%s&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;字符串&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%s&amp;quot;, &amp;quot;hello&amp;quot;);&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;hello&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;%x&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;十六进制整数（小写）&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%x&amp;quot;, 255);&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;ff&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;%X&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;十六进制整数（大写）&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%X&amp;quot;, 255);&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;FF&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;%o&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;八进制整数&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%o&amp;quot;, 8);&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;%p&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;指针地址&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%p&amp;quot;, ptr);&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;0x7ffeefbff5a0&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;%e&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;科学计数法（小写e）&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%e&amp;quot;, 1234.5);&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;1.234500e+03&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;%E&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;科学计数法（大写E）&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%E&amp;quot;, 1234.5);&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;1.234500E+03&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;%g&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;自动选 &lt;code&gt;%f&lt;/code&gt; 或 &lt;code&gt;%e&lt;/code&gt;（更短）&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%g&amp;quot;, 0.00001);&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;1e-05&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;%u&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;无符号十进制整数&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%u&amp;quot;, -1);&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;4294967295&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;动态内存分配&#34;&gt;动态内存分配
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;函数&lt;/th&gt;
          &lt;th&gt;作用&lt;/th&gt;
          &lt;th&gt;返回&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;malloc&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;申请&lt;strong&gt;未初始化&lt;/strong&gt;的连续字节&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;void *&lt;/code&gt;（成功）或 &lt;code&gt;NULL&lt;/code&gt;（失败）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;calloc&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;申请&lt;strong&gt;已清零&lt;/strong&gt;的连续元素&lt;/td&gt;
          &lt;td&gt;同上&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;realloc&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;扩容/缩容&lt;/strong&gt;已申请的块&lt;/td&gt;
          &lt;td&gt;同上&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;free&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;归还&lt;/strong&gt;内存&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;void&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;申请要判空，用完必释放，扩容用临时，释放后置 NULL。&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        </item>
        
    </channel>
</rss>
