SQLite-基本概念

kk3TWT Lv3

关系型数据库(RDBMS)

关系型数据库使用 数据表 来存储数据,这些表之间通过 关系 连接,数据库基于关系模型设计

关系型数据库的核心特性是能够对数据进行组织、查询、更新、删除等操作,并且确保数据一致性、完整性、持久性和隔离性。典型的关系型数据库系统有 MySQLPostgreSQLOracleSQL Server

这里学习的 SQLite 也是一种关系型数据库

数据表(Table)

关系型数据库的基本单位,类比于Excel表格,数据表的 代表 数据记录 ,而 代表 数据属性

姓名 班级 成绩
张三 高三(1)班 630
李四 高三(3)班 619
王五 高三(3)班 617

以上面的成绩表为例,表中的每一列(如姓名)表示了该列中 应该是什么数据 ,而每一行 记录了该列中的每一条数据 (比如“张三”),而 单元格内的具体内容 才是数据本身

此外,数据表还有以下两个概念:

  • 主键 :对于数据表中的每一行记录,它都有一个唯一标识,这个唯一标识就是主键
  • 外键 :就是指向另一个表的键,一般是另一个表主键的引用,用于在不同的数据表之间建立关系

再以成绩表为例,我们在上文的表中增加“排名”列,并将“班级”列改成“学号”:

排名 姓名 学号 成绩
1 李相赫 C0101 630
2 简自豪 C0313 619
3 姜程璐 C0310 617

然后再给出一个C01班的部分学生表:

学号 姓名 班级
C0101 李相赫 高三(1)班
C0102 卢本伟 高三(1)班
C0103 禹景曦 高三(1)班
C0104 郑智勋 高三(1)班

在学生表中和成绩表中,它们的主键分别是 学号排名 ,而成绩表中也出现了学号列,这时 成绩表中 的学号列就作为外键,与学生表建立了关系

主键与外键有以下区别:

  1. 主键在表中只能出现一次(因为主键是数据表中数据的唯一标识),而外键可以重复出现(表中可能有多个数据对应到同一个对象上,如表中既有张三的数学成绩也有张三的物理成绩)
  2. 主键必须存在(不允许为空),而外键可以为空(表中的数据不会对应到其他表中的数据对象,如考试时卷子没写名字,那么这张卷子的成绩就没人对应了)
  3. 如果主键被其他的数据表引用,那么这个主键就不能随意修改,而外键不能引用不存在的主键

关系模型(Relational Model)

关系型数据库的核心是关系模型,所有的数据都以关系的形式组织

关系的数学定义比较复杂,这里做如下类比(但有较大偏差):

我们可以将 关系 理解为增加以下规则的 Excel 表格,这些规则同时也应用在数据表上:

  1. 每一列的名称与数据类型都是唯一的(如某一列的名称为“年龄”,数据类型为int,那么这一列只能存储int类型的数据)
  2. 不能有完全相同的两行,如下表的数据是不允许的:
学号 姓名 年龄
14 张三 19
14 张三 19
  1. 行和列的顺序可以随意打乱

  2. 每个单元格内只能存放数据值,而不能存放集合等结构

表的列被称为 属性 ,表示允许的值的集合(比如学号是6位数字,姓名是长度不超过10的字符串)

表的行被称为 元组 ,比如(14, “张三”, 19)就是一个元组

关系模型具有以下特点:

  • 结构化:数据存储在二维表格中,列定义了数据的类型和约束,行表示具体的数据。
  • 规范化:通过规范化(Normalization)将数据拆分成多个表,减少数据冗余,消除不必要的数据重复。
  • 数据完整性:数据库设计通过约束(如主键、外键、唯一约束、非空约束等)来保证数据的完整性。

结构化查询语言(SQL)

操作关系型数据库的编程语言,定义了一套操作关系型数据库的统一标准

程序员在通过SQL语言操作数据库管理系统,并通过管理系统管理数据,根据功能不同,可以分为以下四种类型:

  • 数据定义语言(DDL):定义和修改数据库结构,如创建和删除数据表,修改字段类型等
  • 数据操作语言(DML):操作数据,如插入、更新和删除数据
  • 数据查询语言(DQL):从一个或多个表中检索数据
  • 数据控制语言(DCL):控制数据访问权限

索引(Index)

索引是一种数据结构,用于加速数据库查询。索引通常是基于某一列或多列字段创建的,它可以显著提高查询性能,尤其是在进行大量数据检索时

常见的索引类型:

  • B-树:多路平衡搜索树,所有数据记录都存储在叶子节点,叶子节点之间通过指针形成有序链表
  • 哈希表:通过哈希函数将 key 映射到值
  • 位图索引:为每个可能的键值使用一个位图(bitmap),位长度等于行数,对应行有该值则置1

事务(Transactions)

事务是关系型数据库中的一个重要概念,它是指一组操作,要么全部成功(提交),要么全部失败(回滚)。事务的作用是确保数据的一致性和可靠性

隔离级别:事务之间的隔离级别控制了它们在并发执行时的行为,常见的隔离级别有:

  • 读未提交(Read Uncommitted):一个事务可以读取到另一个尚未提交的事务所做的修改
  • 读已提交(Read Committed):一个事务只能读取到已经提交的事务所做的修改
  • 可重复读(Repeatable Read):同一事务内多次读取同一数据行,结果始终一致
  • 串行化(Serializable):事务完全隔离,看起来就像串行执行

表连接(Join)

关系型数据库通过 表连接(Join) 来处理不同表之间的关系。常见的连接类型包括:

  • 内连接(INNER JOIN):返回两个表中匹配的记录。
  • 左连接(LEFT JOIN):返回左表所有记录和右表匹配的记录,右表没有匹配时返回 NULL。
  • 右连接(RIGHT JOIN):返回右表所有记录和左表匹配的记录,左表没有匹配时返回 NULL。
  • 全外连接(FULL OUTER JOIN):返回两个表中所有的记录,无论是否匹配。

连接操作可以跨越多个表,帮助我们获取复杂的关系数据。

  • 标题: SQLite-基本概念
  • 作者: kk3TWT
  • 创建于 : 2026-05-04 15:52:07
  • 更新于 : 2026-05-04 15:53:57
  • 链接: https://kk-is-very-happy.online/posts/bd5078f8/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。