Linux软件编程学习笔记(十三)——数据库

一、什么是数据库

数据库是一种能够对大量数据进行增、删、改、查管理的软件。

简单理解:

复制代码
程序
 ↓
数据库
 ↓
保存大量数据
 ↓
增、删、改、查

例如学生信息:

复制代码
学号     姓名     年龄
1001     张三      20
1002     李四      21
1003     王五      22

程序可以通过 SQL 语句对这些数据进行操作。


二、数据库的分类

课程中主要介绍两种数据库。

1. 关系型数据库

关系型数据库的数据通常按照表格的形式进行组织。

常见的关系型数据库:

复制代码
Oracle
MySQL
SQLite

课程文档中将关系型数据库列为一类,并列出了 Oracle、MySQL、SQLite。

例如:

复制代码
学生表

+------+--------+------+
| id   | name   | age  |
+------+--------+------+
| 1    | 张三   | 20   |
| 2    | 李四   | 21   |
+------+--------+------+

2. 非关系型数据库

非关系型数据库一般不采用传统的关系表结构。

课程文档中列举:

复制代码
Redis
NoSQL

并将 Redis 作为内存数据库进行介绍。


三、SQLite数据库

本次课程重点学习的是:

SQLite

SQLite 是一种轻量级关系型数据库。

它的特点是使用简单,不需要单独启动数据库服务器,数据库通常就是一个文件。

例如:

复制代码
student.db

里面可以保存我们的数据表。


四、SQLite基本操作

进入 SQLite:

复制代码
sqlite3 test.db

进入以后可以使用 SQLite 命令。


1. 查看数据库

复制代码
.databases

功能:

查看当前数据库以及相关文件。


2. 查看数据表

复制代码
.tables

功能:

查看当前数据库中的表名称。


3. 查看表结构

复制代码
.schema

也可以指定表:

复制代码
.schema student

功能:

查看表的创建结构。


4. 设置表头

复制代码
.headers on

打开列名称显示。

关闭:

复制代码
.headers off

5. 设置数据显示格式

复制代码
.mode column

可以让查询结果按照列的形式显示。

课程文档中列出了:

复制代码
.tables
.databases
.headers on/off
.mode
.schema

这些 SQLite 常用命令。


五、SQLite数据类型

课程中主要介绍4种数据类型:

复制代码
INTEGER
REAL
TEXT
BLOB

1. INTEGER

表示整数。

例如:

复制代码
20
100
-5

2. REAL

表示实数、小数。

例如:

复制代码
3.14
99.5

3. TEXT

表示文本、字符串。

例如:

复制代码
'张三'
'hello'

4. BLOB

用于保存二进制数据。

例如:

复制代码
图片
音频
文件

等二进制内容。


六、创建数据表

使用:

复制代码
CREATE TABLE

例如创建学生表:

复制代码
CREATE TABLE student
(
    id INTEGER,
    name TEXT,
    age INTEGER
);

表示创建一个 student 表:

复制代码
student
├── id
├── name
└── age

七、插入数据

使用:

复制代码
INSERT INTO

例如:

复制代码
INSERT INTO student
VALUES (1, '张三', 20);

再插入一条:

复制代码
INSERT INTO student
VALUES (2, '李四', 21);

现在表中有:

复制代码
id    name    age
1     张三     20
2     李四     21

课程文档将 insert into 作为基本 SQL 语句之一。


八、查询数据

使用:

复制代码
SELECT

查询所有数据:

复制代码
SELECT * FROM student;

结果:

复制代码
1|张三|20
2|李四|21

也可以只查询指定字段:

复制代码
SELECT name FROM student;

结果:

复制代码
张三
李四

九、WHERE条件查询

WHERE 用来设置查询条件。

例如:

复制代码
SELECT * FROM student
WHERE age = 20;

表示:

查询年龄等于20岁的学生。

查询结果:

复制代码
1|张三|20

例如:

复制代码
SELECT * FROM student
WHERE id = 2;

表示查询 id 为2的数据。

课程文档中也将 where 子句和匹配条件作为基本内容。


十、基本SQL操作总结

数据库最重要的就是:

复制代码
增
 ↓
INSERT

删
 ↓
DELETE

改
 ↓
UPDATE

查
 ↓
SELECT

本节课程重点学习的基本 SQL 包括:

复制代码
CREATE TABLE
INSERT INTO
SELECT
WHERE

十一、一个完整的SQLite操作示例

首先创建数据库:

复制代码
sqlite3 student.db

创建表:

复制代码
CREATE TABLE student
(
    id INTEGER,
    name TEXT,
    age INTEGER
);

插入数据:

复制代码
INSERT INTO student VALUES (1, '张三', 20);
INSERT INTO student VALUES (2, '李四', 21);
INSERT INTO student VALUES (3, '王五', 22);

查询全部:

复制代码
SELECT * FROM student;

查询指定条件:

复制代码
SELECT * FROM student WHERE age = 21;

查看表:

复制代码
.tables

查看表结构:

复制代码
.schema student

十二、数据库和C语言程序

在 Linux C 程序中,可以使用 SQLite 提供的接口操作数据库。

基本流程:

复制代码
C程序
  ↓
打开SQLite数据库
  ↓
执行SQL语句
  ↓
获取查询结果
  ↓
处理数据
  ↓
关闭数据库

例如:

复制代码
sqlite3 *db = NULL;

sqlite3_open("student.db", &db);

/* 执行SQL语句 */

sqlite3_close(db);

这样就可以让 C 程序和 SQLite 数据库进行交互。


十三、本节重点

1. 数据库

用来对大量数据进行增、删、改、查管理。

2. 两种数据库

复制代码
关系型数据库
    ↓
Oracle、MySQL、SQLite

非关系型数据库
    ↓
Redis、NoSQL

3. SQLite

复制代码
轻量级
关系型数据库
数据库文件

4. SQLite常用命令

复制代码
.tables
.databases
.headers on
.mode column
.schema

5. 常见数据类型

复制代码
INTEGER
REAL
TEXT
BLOB

6. 基本SQL

复制代码
CREATE TABLE
INSERT INTO
SELECT
WHERE
相关推荐
初願致夕霞1 小时前
MySQL_索引
数据库·mysql
十六年开源服务商1 小时前
2026网站备份方案完整指南
数据库·oracle
一只小李郁vickie2 小时前
mysql 开启压缩传输3402条数据2.1秒压缩到毫秒级
数据库·mysql
张继雁3 小时前
张继雁 个人技术简介|磨削加工过滤方向
大数据·数据库·论文阅读·人工智能·机器学习·创业创新·业界资讯
IvorySQL3 小时前
PostgreSQL 日报|不重启动态修改 shared_buffers(9 月 8 日)
数据库·postgresql
这个DBA有点耶3 小时前
2026年做数据库开发,国产数据库已经是绕不开的选项了
数据库·dba·敏捷开发
这个DBA有点耶3 小时前
COUNT慢不是因为用了*,是这5个原因——1000万行数据实测+执行计划深度解析
数据库·mysql·算法
老周聊架构3 小时前
Ontology:Palantir 架构真正的核心,不是数据库也不是知识图谱
数据库·架构·知识图谱
天衍四九-4 小时前
第一章:从 LLM 到 Agent —— DeepSeek Harness 入门
网络·数据库·人工智能·python