如何创建 SQLite 数据库

本文将介绍如何在 SQLite 中创建数据库,包括使用命令行工具和编程接口的方法。

发布于

在数据驱动的时代,SQLite 以其轻量级、零配置和单文件存储的特性,成为嵌入式数据库的首选。无论是移动应用、桌面软件还是小型网站,SQLite 都能提供高效可靠的数据存储方案。本文将全面介绍 SQLite 数据库的创建方法,从基础命令行操作到编程语言集成,帮助你快速上手这个强大的数据库引擎。

为什么选择 SQLite 数据库

SQLite 与其他数据库系统相比具有独特优势:

  • 无需服务器:数据库存储在单个文件中,部署简单
  • 零配置:开箱即用,没有复杂的安装过程
  • 跨平台:支持所有主流操作系统和架构
  • 功能完整:支持大多数标准 SQL 功能

这些特点使 SQLite 成为应用程序本地存储、原型开发和小型项目的最佳选择。

使用命令行工具创建数据库

SQLite 提供了简单易用的命令行工具,是创建数据库最直接的方式。

基本创建方法

sqlite3 mydatabase.db

这个命令会创建名为 mydatabase.db 的新数据库文件,如果文件已存在则直接打开。

创建时执行初始化脚本

sqlite3 inventory.db < schema.sql

通过重定向输入,可以在创建数据库时直接执行建表语句。

验证数据库创建

sqlite3 mydatabase.db ".databases"

这个命令会显示当前连接的数据库信息,确认创建成功。

在编程语言中创建 SQLite 数据库

几乎所有主流编程语言都支持 SQLite,让我们看看如何在代码中创建数据库。

Python 创建示例

import sqlite3

# 连接不存在的数据库会自动创建
conn = sqlite3.connect('app_data.db')

# 创建表
conn.execute('''CREATE TABLE IF NOT EXISTS users
             (id INTEGER PRIMARY KEY, name TEXT, email TEXT)''')

conn.close()

Node.js 创建示例

const sqlite3 = require("sqlite3").verbose()

// 打开或创建数据库
let db = new sqlite3.Database("mydb.sqlite", (err) => {
  if (err) {
    console.error(err.message)
  }
  console.log("Connected to the database.")
})

// 创建表
db.run(`CREATE TABLE IF NOT EXISTS products (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        name TEXT NOT NULL,
        price REAL
      )`)

db.close()

Java 创建示例

import java.sql.*;

public class CreateDatabase {
    public static void main(String[] args) {
        String url = "jdbc:sqlite:company.db";

        try (Connection conn = DriverManager.getConnection(url)) {
            if (conn != null) {
                DatabaseMetaData meta = conn.getMetaData();
                System.out.println("Database created: " + meta.getURL());

                Statement stmt = conn.createStatement();
                stmt.execute("CREATE TABLE IF NOT EXISTS employees " +
                             "(id INTEGER PRIMARY KEY, name TEXT, department TEXT)");
            }
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
    }
}

图形界面工具创建数据库

对于偏好可视化操作的用户,多种图形工具可以简化数据库创建过程。

DB Browser for SQLite

  1. 启动软件后点击"新建数据库"
  2. 选择保存位置和文件名
  3. 通过图形界面设计表结构
  4. 保存后即完成创建

SQLiteStudio

  1. 选择"数据库"菜单中的"添加数据库"
  2. 设置数据库类型为 SQLite3
  3. 指定文件路径和名称
  4. 点击"确定"完成创建

数据库创建最佳实践

遵循这些建议可以创建出更健壮的数据库。

合理的文件命名

  • 使用有意义的名称,如 customer_data.db
  • 避免空格和特殊字符
  • 统一使用 .db 或 .sqlite 扩展名

初始表结构设计

-- 创建包含主键和外键的完整结构
BEGIN TRANSACTION;

CREATE TABLE departments (
    dept_id INTEGER PRIMARY KEY,
    name TEXT NOT NULL UNIQUE
);

CREATE TABLE employees (
    emp_id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    hire_date TEXT DEFAULT CURRENT_DATE,
    dept_id INTEGER,
    FOREIGN KEY (dept_id) REFERENCES departments(dept_id)
);

COMMIT;

设置适当的权限

# 确保数据库文件有正确的读写权限
chmod 644 mydatabase.db

实际应用场景示例

让我们看几个不同场景下的数据库创建实践。

博客系统数据库

-- blog_system.db
CREATE TABLE users (
    user_id INTEGER PRIMARY KEY AUTOINCREMENT,
    username TEXT UNIQUE NOT NULL,
    password_hash TEXT NOT NULL,
    email TEXT UNIQUE,
    join_date TEXT DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE posts (
    post_id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT NOT NULL,
    content TEXT,
    author_id INTEGER NOT NULL,
    publish_date TEXT,
    FOREIGN KEY (author_id) REFERENCES users(user_id)
);

物联网设备数据存储

-- iot_devices.db
CREATE TABLE devices (
    device_id TEXT PRIMARY KEY,
    name TEXT NOT NULL,
    location TEXT,
    install_date TEXT DEFAULT CURRENT_DATE
);

CREATE TABLE sensor_data (
    reading_id INTEGER PRIMARY KEY AUTOINCREMENT,
    device_id TEXT NOT NULL,
    timestamp TEXT DEFAULT CURRENT_TIMESTAMP,
    temperature REAL,
    humidity REAL,
    FOREIGN KEY (device_id) REFERENCES devices(device_id)
);

总结

创建 SQLite 数据库有多种灵活的方式:

  • 命令行工具:适合快速创建和简单管理
  • 编程语言接口:便于应用程序集成和自动化
  • 图形界面工具:提供直观的可视化操作

无论选择哪种方式,都要注意:

  1. 为数据库文件选择合适的位置和名称
  2. 在创建时设计好初始表结构
  3. 考虑添加必要的约束和索引
  4. 设置适当的文件系统权限

SQLite 的简单性使得数据库创建几乎没有任何障碍,但这种简单背后是强大的功能。掌握好数据库创建的正确方法,能为后续的数据存储和查询打下坚实基础。