SQLite数据库管理教程:创建与操作(二)

SQLite 是一款轻量级的关系型数据库管理系统,广泛应用于嵌入式设备、移动应用和小型项目中。本文将详细介绍如何使用 SQLite 创建数据库、管理表以及进行基本的数据操作。通过本文的学习,您将能够掌握 SQLite 的基本用法,为后续的数据库开发打下坚实的基础。

创建 SQLite 数据库

在 SQLite 中,创建数据库非常简单。您只需要使用 sqlite3 命令行工具,指定数据库文件名即可创建一个新的数据库文件。以下是创建数据库的基本步骤:

命令语法

$ sqlite3 DatabaseName.db

例如,如果您想创建一个名为 testDB.db 的数据库,可以执行以下命令:

$ sqlite3 testDB.db

执行上述命令后,SQLite 会在当前目录下创建一个名为 testDB.db 的文件,并进入 SQLite 的交互模式。此时,您会看到 sqlite> 提示符,表示可以开始执行 SQL 语句了。

验证数据库创建

为了确认数据库是否创建成功,您可以使用 .databases 命令查看当前连接的数据库列表:

sqlite> .databases
seq  name             file
---  ---------------  ----------------------
0    main             /path/to/testDB.db

退出 SQLite 交互模式

完成数据库创建后,您可以使用 .quit 命令退出 SQLite 交互模式:

sqlite> .quit

导出和导入数据库

SQLite 提供了一些便捷的命令,用于导出和导入数据库。这些功能在备份和恢复数据时非常有用。

导出数据库

使用 .dump 命令可以将整个数据库导出为一个包含 SQL 语句的文本文件。例如,将 testDB.db 导出为 testDB.sql 文件:

$ sqlite3 testDB.db .dump > testDB.sql

导入数据库

使用 < 符号可以从一个包含 SQL 语句的文本文件中恢复数据库。例如,从 testDB.sql 文件恢复 testDB.db 数据库:

$ sqlite3 testDB.db < testDB.sql

附加和分离数据库

在 SQLite 中,您可以同时连接多个数据库,并在这些数据库之间切换。这在处理多数据库环境时非常有用。

附加数据库

使用 ATTACH DATABASE 命令可以将一个数据库附加到当前会话中。语法如下:

ATTACH DATABASE 'file_name' AS 'database_name';

例如,将 testDB.db 附加为 TEST 数据库:

sqlite> ATTACH DATABASE 'testDB.db' AS 'TEST';

查看附加的数据库

使用 .database 命令可以查看当前会话中附加的所有数据库:

sqlite> .database
seq  name             file
---  ---------------  ----------------------
0    main             /path/to/testDB.db
2    TEST             /path/to/testDB.db

分离数据库

使用 DETACH DATABASE 命令可以将一个数据库从当前会话中分离。语法如下:

DETACH DATABASE 'database_name';

例如,将 TEST 数据库从当前会话中分离:

sqlite> DETACH DATABASE 'TEST';

创建表

在 SQLite 中,使用 CREATE TABLE 语句可以创建新的表。创建表时需要指定表名、列名及其数据类型。

语法

CREATE TABLE table_name (
   column1 datatype  PRIMARY KEY,
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype
);

示例

以下是一个创建 COMPANY 表的示例,其中 ID 列被设置为主键:

sqlite> CREATE TABLE COMPANY (
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

验证表创建

使用 .tables 命令可以查看当前数据库中所有的表:

sqlite> .tables
COMPANY

查看表结构

使用 .schema 命令可以查看表的详细结构:

sqlite> .schema COMPANY
CREATE TABLE COMPANY (
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

删除表

使用 DROP TABLE 语句可以删除表及其所有相关数据。请注意,删除表后,表中的所有数据将不可恢复。

语法

DROP TABLE table_name;

示例

假设您已经创建了 COMPANY 表,现在要将其删除:

sqlite> DROP TABLE COMPANY;

删除表后,使用 .tables 命令验证表是否已被删除:

sqlite> .tables

插入数据

使用 INSERT INTO 语句可以向表中插入新的数据行。插入数据时,可以指定列名及其对应的值,也可以直接插入所有列的值。

语法

INSERT INTO table_name (column1, column2, ..., columnN)

VALUES (value1, value2, ..., valueN);

或者,如果插入所有列的值,可以省略列名:

INSERT INTO table_name VALUES (value1, value2, ..., valueN);

示例

以下是一个向 COMPANY 表中插入数据的示例:

sqlite> INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS, SALARY)
VALUES (1, 'Paul', 32, 'California', 20000.00);

sqlite> INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS, SALARY)
VALUES (2, 'Allen', 25, 'Texas', 15000.00);

sqlite> INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS, SALARY)
VALUES (3, 'Teddy', 23, 'Norway', 20000.00);

sqlite> INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS, SALARY)
VALUES (4, 'Mark', 25, 'Rich-Mond', 65000.00);

sqlite> INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS, SALARY)
VALUES (5, 'David', 27, 'Texas', 85000.00);

sqlite> INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS, SALARY)
VALUES (6, 'Kim', 22, 'South-Hall', 45000.00);

sqlite> INSERT INTO COMPANY VALUES (7, 'James', 24, 'Houston', 10000.00);

查询数据

使用 SELECT 语句可以从表中检索数据。SELECT 语句的基本语法如下:

语法

SELECT column1, column2, ..., columnN FROM table_name;

如果要检索所有列的数据,可以使用 * 通配符:

SELECT * FROM table_name;

示例

假设 COMPANY 表中有以下记录:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

使用 SELECT 语句检索所有记录:

sqlite> .headers on
sqlite> .mode column
sqlite> SELECT * FROM COMPANY;
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

总结

通过本文的学习,您应该已经掌握了 SQLite 的基本操作,包括创建数据库、管理表、插入和查询数据。这些基础知识将为您进一步学习和使用 SQLite 打下坚实的基础。希望本文对您有所帮助,祝您在数据库开发的道路上越走越远!