易语言新手入门,如何从零开始创建本地数据库?

在易语言的编程实践中,数据的持久化存储是许多应用程序不可或缺的一环,无论是保存用户配置、记录操作日志,还是管理大量业务信息,数据库都扮演着核心角色,对于易语言初学者而言,掌握如何创建数据库是迈向更复杂项目开发的关键一步,本文将详细介绍在易语言中创建数据库的两种主流方法,从内置的E数据库到更为通用的外部数据库(以SQLite为例),旨在为不同需求的开发者提供清晰、可行的指导。

易语言新手入门,如何从零开始创建本地数据库?

理解基础:数据库与数据表

在深入代码之前,我们首先需要明确两个基本概念:数据库和数据表,您可以将一个“数据库”想象成一个专门用于存放数据的仓库文件,例如一个Excel文件,而“数据表”就是这个仓库中的一个个货架,用于组织和存放特定类型的数据,就像Excel中的一个个工作表,每个数据表由若干“字段”(列)和“记录”(行)组成,字段定义了数据的类型和名称(如“姓名”、“年龄”),记录则是一条条具体的数据实例(如“张三”、“25岁”),创建数据库,本质上就是创建这个仓库文件,并在其中规划好货架(数据表)的结构。


使用易语言内置的E数据库

E数据库是易语言自带的一种轻量级数据库解决方案,其优点是与易语言无缝集成,无需任何外部文件或支持库,非常适合初学者和中小型数据存储需求。

创建数据库文件

创建E数据库非常简单,主要使用创建数据库()命令,该命令需要一个参数,即数据库文件的保存路径。

.版本 2
.程序集 窗口程序集_启动窗口
.子程序 _按钮_创建数据库_被单击
.局部变量 数据库路径, 文本型
数据库路径 = 取运行目录() + “我的数据.edb”
.(文件是否存在 (数据库路径) = 假)
    创建数据库 (数据库路径)  // 在指定路径创建一个空的E数据库文件
    信息框 (“数据库‘我的数据.edb’创建成功!”, 0, “提示”)
.否则
    信息框 (“数据库文件已存在,无需重复创建。”, 0, “提示”)
.如果结束

这段代码首先检查数据库文件是否已存在,如果不存在,则调用创建数据库()命令在程序当前目录下生成一个名为“我的数据.edb”的文件。

创建数据表

数据库文件创建后,它仍然是空的,我们需要在其中创建数据表来定义数据结构,这需要用到打开数据库()创建表()关闭数据库()三个核心命令。

创建表的关键在于定义表结构,我们需要用一个“表”型变量来规划字段的名称、类型和长度。

字段类型说明:

易语言新手入门,如何从零开始创建本地数据库?

字段类型 代码表示 说明
文本型 #文本型 用于存储字符串,需指定长度
整数型 #整数型 用于存储整数
长整数型 #长整数型 用于存储范围更大的整数
逻辑型 #逻辑型 用于存储真/假值
日期时间型 #日期时间型 用于存储日期和时间

创建表示例代码:

.子程序 _按钮_创建表_被单击
.局部变量 数据库, 数据库
.局部变量 表结构, 表, , "0"
.局部变量 数据库路径, 文本型
数据库路径 = 取运行目录() + “我的数据.edb”
.(打开数据库 (数据库, 数据库路径, , , ) = 真)
    ' --- 定义表结构 ---
    ' 增加字段(字段名, 类型, 长度)
    增加字段 (表结构, “用户ID”, #整数型, )
    增加字段 (表结构, “用户名”, #文本型, 20)
    增加字段 (表结构, “注册日期”, #日期时间型, )
    ' --- 创建表 ---
    .(创建表 (数据库, “用户信息”, 表结构) = 真)
        信息框 (“数据表‘用户信息’创建成功!”, 0, “提示”)
    .否则
        信息框 (“创建数据表失败,可能是因为表已存在或结构错误。”, 0, “错误”)
    .如果结束
    关闭数据库 (数据库)  ' 操作完成后务必关闭数据库
.否则
    信息框 (“无法打开数据库文件!”, 0, “错误”)
.如果结束

在上面的代码中,我们首先定义了一个名为“表结构”的表变量,然后用增加字段()命令向其添加了三个字段:用户ID(整数型)、用户名(长度为20的文本型)和注册日期(日期时间型),通过创建表()命令将这个结构写入数据库,命名为“用户信息”。


使用外部数据库(以SQLite为例)

当项目需要更高的性能、更强的标准兼容性或更复杂的查询功能时,推荐使用标准的外部数据库,SQLite是一个极佳的选择,它是一个轻量级、无需服务器、基于文件的SQL数据库引擎,被广泛应用于各种平台和软件中。

准备工作

使用SQLite前,需要准备其动态链接库文件(通常为sqlite3.dll),您可以从SQLite官方网站下载,并将其放置在易语言程序的开发目录或最终生成的.exe文件同级目录下,在易语言中,我们通过定义“DLL命令”来调用sqlite3.dll中的功能。

创建数据库和数据表

与E数据库不同,SQLite的操作是通过执行标准的SQL语句来完成的,创建数据库和表的过程,在SQLite中可以合并为一步:当尝试连接一个不存在的数据库文件时,SQLite会自动创建它;然后我们执行一条CREATE TABLE的SQL语句来创建表。

核心DLL命令定义示例(通常放在模块中):

.版本 2
.DLL命令 sqlite3_open, 整数型, "sqlite3.dll", "sqlite3_open"
    .参数 filename, 文本型
    .参数 ppDb, 整数型, 传址
.DLL命令 sqlite3_exec, 整数型, "sqlite3.dll", "sqlite3_exec"
    .参数 db, 整数型
    .参数 sql, 文本型
    .参数 callback, 整数型
    .参数 arg, 整数型
    .参数 errmsg, 整数型, 传址
.DLL命令 sqlite3_close, , "sqlite3.dll", "sqlite3_close"
    .参数 db, 整数型

创建数据库和表的代码示例:

易语言新手入门,如何从零开始创建本地数据库?

.子程序 _按钮_创建SQLite_被单击
.局部变量 db, 整数型
.局部变量 数据库路径, 文本型
.局部变量 sql语句, 文本型
.局部变量 错误信息, 整数型
数据库路径 = 取运行目录() + “mydata.db”
sql语句 = “CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER);”
' 1. 打开(或创建)数据库
.(sqlite3_open (数据库路径, db) = 0)  ' 返回SQLITE_OK (值为0) 表示成功
    ' 2. 执行SQL语句创建表
    .(sqlite3_exec (db, sql语句, 0, 0, 错误信息) = 0)
        信息框 (“SQLite数据库及表‘users’创建/确认成功!”, 0, “提示”)
    .否则
        信息框 (“执行SQL失败!”, 0, “错误”)
    .如果结束
    ' 3. 关闭数据库连接
    sqlite3_close (db)
.否则
    信息框 (“无法打开SQLite数据库!”, 0, “错误”)
.如果结束

这段代码展示了标准的SQLite操作流程:首先sqlite3_open打开数据库文件(不存在则创建),然后sqlite3_exec执行一条SQL语句,这条SQL语句的含义是:如果不存在名为users的表,则创建它,表中包含一个自增主键id、一个非空文本字段name和一个整数字段agesqlite3_close关闭连接,释放资源。

小编总结与选择

特性 E数据库 SQLite
易用性 非常高,纯中文命令,无需外部依赖 中等,需了解SQL和DLL调用
性能 适用于中小规模数据 性能优异,适合大规模数据和高并发
标准性 易语言专有格式,兼容性差 国际标准,跨平台,支持多种语言
功能 基本的增删改查 支持复杂SQL查询、事务、索引等

对于初学者或小型工具软件,E数据库因其简单快捷而成为首选,而对于需要长期维护、数据量较大或希望与其他系统(如Python、Java编写的服务)交互的项目,SQLite无疑是更专业、更可靠的选择,根据项目的实际需求,选择合适的数据库技术,将为后续的开发工作奠定坚实的基础。


相关问答FAQs

Q1: 易语言创建的E数据库文件(.edb)可以在其他编程语言(如Python、Java)中直接读取和使用吗?

A: 不可以,E数据库是易语言专有的一种文件格式,其内部结构和读写逻辑并未公开,它只能在易语言程序中被识别和操作,如果您需要跨语言、跨平台的数据交互,强烈建议使用像SQLite、MySQL或PostgreSQL这样的标准数据库系统,它们拥有广泛的驱动程序支持,可以被几乎所有主流编程语言访问。

Q2: 如果我已经创建了一个数据表,但后续发现需要增加一个字段(比如在“用户信息”表中增加一个“手机号”字段),该如何修改?

A: 这取决于您使用的数据库类型。

  • 对于E数据库:它没有提供直接的“修改表结构”的命令,通常的做法是:创建一个新的、结构正确的临时表,将旧表中的数据全部复制到新表中,然后删除旧表,最后将新表重命名为旧表名,这个过程相对繁琐。
  • 对于SQLite:这非常简单,只需执行一条标准的SQL ALTER TABLE语句即可,要给“users”表增加一个手机号字段,可以执行:ALTER TABLE users ADD COLUMN phone TEXT;,这种方式高效且直接,是标准SQL数据库的优势之一。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-07 03:44
下一篇 2025-10-07 03:47

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信