当前位置:首页 > 问答 > 正文

快速学会搭建单机数据库,手把手教你一步步弄明白怎么操作

想自己动手搭个数据库玩玩,或者应付个小项目,但看到那些复杂的教程就头大?别担心,这事儿没想象中那么难,今天咱们就用手把手的方式,用一个叫 SQLite 的数据库来入门,因为它最简单,不需要安装,一个文件就是一个数据库,特别适合新手找感觉,我们的目标是:让你在半小时内,亲手建起一个能存东西、能查东西的数据库。

第一步:准备工具,就一个软件

你不需要安装庞大的数据库服务器,咱们用的 SQLite 就是一个轻量级的小工具,你需要去 SQLite 的官方网站(sqlite.org),找到下载页面,在 Precompiled Binaries for Windows 那里,下载一个叫 *sqlite-tools-win32-.zip 的文件(如果你的系统是 Windows 的话),把它解压到你喜欢的一个文件夹里,D:\sqlite,你会看到里面有几个 .exe 文件,最重要的就是 sqlite3.exe**,为了方便,你可以把这个文件夹的路径(D:\sqlite)添加到系统的环境变量 Path 里,这样以后在任何地方打开命令行都能直接用了,如果不想设置环境变量也没关系,我们就直接在 D:\sqlite 这个文件夹里操作。

第二步:创建你的第一个数据库

打开命令行(在 Windows 上是按 Win+R,输入 cmd 回车),如果你设置了环境变量,在任何路径下都可以;如果没设置,就通过 cd D:\sqlite 命令进入你放 sqlite3.exe 的文件夹。

输入以下命令并回车: sqlite3 my_first_db.db 看,魔法发生了!sqlite3 程序启动了,并且为你创建了一个名为 “my_first_db.db” 的数据库文件,如果这个文件不存在,它就新建一个;如果已经存在,它就打开它,你的命令行提示符应该变成了 sqlite>,这说明你已经成功连接到数据库了,可以开始“发号施令”了。

第三步:建一张表来存数据

数据库就像一个大仓库,但数据不能胡乱堆在一起,需要分门别类地放进不同的“货架”,这个“货架”表”,表有固定的结构,比如我们要建一个通讯录,决定好每个人的信息要包括:姓名、电话、城市。

在 sqlite> 提示符下,输入下面的 SQL 语句(别怕,就几句简单的英文)然后回车:

CREATE TABLE contacts (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    phone TEXT,
    city TEXT DEFAULT '北京'
);

我来一句句解释给你听,保证明白:

  • CREATE TABLE contacts:意思是“创建一张叫做 contacts 的表”。
  • 括号里的每一行定义了表的一个“列”(也就是一个字段):
    • id INTEGER PRIMARY KEY AUTOINCREMENT:创建一个叫 id 的列,类型是整数(INTEGER),它是主键(PRIMARY KEY),意思是每个人的唯一编号,不能重复,AUTOINCREMENT 表示让它自动增长,你不用管,每加一条新记录它会自动+1。
    • name TEXT NOT NULL:创建姓名列,类型是文本(TEXT),NOT NULL 表示这一项必须填,不能空着。
    • phone TEXT:电话列,文本类型,可以为空。
    • city TEXT DEFAULT '北京':城市列,文本类型,DEFAULT '北京' 表示如果添加记录时没填城市,就默认是“北京”。

输入完后回车,如果没报错,表就建好了!你可以输入 .tables 命令(注意前面有个点)来看看数据库里有哪些表,应该会显示出 “contacts”。

第四步:往表里添加点数据

现在货架(表)有了,该往里面放点东西了,我们用 INSERT 语句来添加记录。 输入下面的语句,添加第一个人:

INSERT INTO contacts (name, phone, city) VALUES ('张三', '13800138000', '上海');

这句话的意思是:向 contacts 表的 (name, phone, city) 这些列里,插入数值 (‘张三’, ‘13800138000’, ‘上海’),注意字符串要用单引号括起来。

再添加一条,这次我们不填城市,看看默认值会不会生效:

INSERT INTO contacts (name, phone) VALUES ('李四', '13900139000');

好了,现在表里已经有两条数据了。

第五步:查看和查询数据

放进去了,得能拿出来看才行,最直接的查看就是用 SELECT 语句。 输入 SELECT * FROM contacts; 然后回车。 号代表“所有列”,你会看到类似这样的结果:

1|张三|13800138000|上海
2|李四|13900139000|北京

看,李四的城市自动显示为“北京”了,这就是我们设置的默认值生效了。

我们也可以进行一些简单的查询,只查看名字和电话,不看ID和城市:

SELECT name, phone FROM contacts;

或者,只查看城市是“上海”的人:

SELECT * FROM contacts WHERE city = '上海';

第六步:试试更新和删除

数据不是一成不变的,比如张三换电话了,我们可以用 UPDATE 来更新:

UPDATE contacts SET phone = '15800158000' WHERE name = '张三';

这句话要小心读:更新 contacts 表,设置 phone 为新号码,但是只更新那条 name 是‘张三’的记录。WHERE 条件非常重要!如果忘了写,会把所有人的电话都改成新号码!

如果想把李四这条记录删掉,用 DELETE

DELETE FROM contacts WHERE name = '李四';

同样,WHERE 条件至关重要,不然会清空整个表!

最后一步:退出和后续

干得漂亮!你已经完成了数据库最核心的“增删改查”操作,输入 .exit 或者 .quit 命令可以退出 sqlite3 程序,你会发现文件夹里确实生成了那个 “my_first_db.db” 文件,你的所有数据都安全地存在里面了。

下次想再打开这个数据库,还是在命令行输入 sqlite3 my_first_db.db 就行。

这就是搭建和使用一个单机数据库最最核心的流程,你可能会问,这就完了?对,入门就是这样,SQLite 的好处是,你学会了这些基本操作,再去接触 MySQL、PostgreSQL 这些更强大的数据库,会发现核心的 SQL 语句(CREATE, INSERT, SELECT, UPDATE, DELETE)几乎是一样的,只是安装和管理的步骤更复杂一些,但第一步,你已经稳稳地迈出去了!你可以试着用你喜欢的编程语言(Python、Java)来连接和操作这个 SQLite 数据库,那就是另一个有趣的故事了。

快速学会搭建单机数据库,手把手教你一步步弄明白怎么操作