golang sqlite3 建表

发布时间:2024-07-05 00:51:56

在现代软件开发中,数据库是非常重要的一个环节。Golang作为一门简洁高效的编程语言,也提供了一些非常方便且强大的数据库操作库。其中,Golang中使用SQLite3作为本地存储数据库的方案。SQLite是一个轻量级的数据库引擎,支持事务、复杂查询和访问控制。本文将介绍如何使用Golang中的sqlite3库进行建表操作。

连接到SQLite数据库

首先,我们需要使用Golang中的sqlite3库来连接到SQLite数据库。我们可以使用以下代码创建一个数据库连接:

import (
    "database/sql"
    _ "github.com/mattn/go-sqlite3"
)

func main() {
    db, err := sql.Open("sqlite3", "test.db")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()
}

上面的代码中,sql.Open函数用于打开一个数据库连接。第一个参数指定数据库驱动类型,这里使用"sqlite3"作为驱动类型。第二个参数是数据库的路径,"test.db"是数据库文件的路径。最后,我们使用defer在函数结束时关闭数据库连接。

创建表

一旦连接到了数据库,我们就可以使用Golang中的sql包来执行SQL语句。下面是一个示例代码,用于创建一个名为"users"的表:

func main() {
    db, err := sql.Open("sqlite3", "test.db")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    createTableSQL := `
        CREATE TABLE IF NOT EXISTS users (
            id     INTEGER PRIMARY KEY AUTOINCREMENT,
            name   TEXT,
            age    INTEGER
        );
    `

    _, err = db.Exec(createTableSQL)
    if err != nil {
        log.Fatal(err)
    }
}

上面的代码中,我们首先定义了一个名为createTableSQL的变量,它存储了一个SQL语句,用于创建"users"表。接下来,我们使用db.Exec方法执行这个SQL语句,并检查执行结果是否出错。

插入数据

创建完表之后,我们可以使用SQL语句向表中插入数据。下面是一个示例代码,将一条用户记录插入到"users"表中:

func main() {
    db, err := sql.Open("sqlite3", "test.db")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    createTableSQL := `
        CREATE TABLE IF NOT EXISTS users (
            id     INTEGER PRIMARY KEY AUTOINCREMENT,
            name   TEXT,
            age    INTEGER
        );
    `

    _, err = db.Exec(createTableSQL)
    if err != nil {
        log.Fatal(err)
    }

    insertDataSQL := `
        INSERT INTO users (name, age) VALUES (?, ?);
    `

    _, err = db.Exec(insertDataSQL, "John Doe", 25)
    if err != nil {
        log.Fatal(err)
    }
}

上面的代码中,我们首先定义了一个名为insertDataSQL的变量,它存储了一个SQL语句,用于向"users"表中插入数据。然后,我们使用db.Exec方法执行这个SQL语句,并传入"name"和"age"两个参数值。

通过以上的步骤,我们就可以成功地使用Golang中的sqlite3库来建表并插入数据了。SQLite3作为一款嵌入式数据库,非常适合在本地开发和小规模部署中使用。

相关推荐