GoからSQLite3を操作する
GoからSQLite3を操作する
Go言語からSQLite3を操作する方法について学びます。 Goからも様々なデータベースを操作することがでできますが、今回はSQLite3を使ってデータベースを操作します。
SQLite3のドライバー
最初に、GoプログラムからSQLite3を操作するために、SQLite3のドライバーをインストールする必要があります。go-sqlite3パッケージが一般的に使用されます。以下のコマンドを使用してインストールします。
go mod init examplego get github.com/mattn/go-sqlite3データベースの作成と接続:
SQLite3データベースを操作する前に、データベースへの接続が必要です。以下のコードを使用して、データベースに接続します。
package main
import ( "database/sql" _ "github.com/mattn/go-sqlite3" "log")
func main() { // SQLite3データベースに接続 db, err := sql.Open("sqlite3", "./example.db") if err != nil { log.Fatal(err) } defer db.Close()}上記のコードでは、sql.Open関数を使用してSQLite3デーエベースに接続しています。データベースファイル名はexample.dbとして指定しています。
テーブルの作成:
データベースに接続した後、テーブルを作成することができます。以下のコードを使用して、テーブルを作成します。
_, err = db.Exec(`CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL age INTEGER NOT NULL)`)if err != nil { log.Fatal(err)}上記のコードでは、db.Exec関数を使用して、usersテーブルを作成しています。テーブルにはid、name、ageの3つのカラムがあります。
データベースへのデータの挿入:
テーブルが作成されたら、データを挿入することができます。以下のコードを使用して、データを挿入します。
_, err = db.Exec(`INSERT INTO users (name, age) VALUES (?, ?)`, "Alice", 25)if err != nil { log.Fatal(err)}上記のコードでは、db.Exec関数を使用して、usersテーブルにデータを挿入しています。nameカラムにはAlice、ageカラムには25の値が挿入されます。
データベースからデータの取得:
データを挿入した後、データを取得することができます。以下のコードを使用して、データを取得します。
rows, err := db.Query("SELECT id, name, age FROM users")if err != nil { log.Fatal(err)}defer rows.Close()
for rows.Next() { var id int var name string var age int err = rows.Scan(&id, &name, &age) if err != nil { log.Fatal(err) } log.Println(id, name, age)}上記のコードでは、db.Query関数を使用して、usersテーブルからデータを取得しています。取得したデータはrowsに格納され、rows.Next関数を使用してデータを1行ずつ取得しています。
更新
データベースのデータを更新するには、UPDATE文を使用します。以下のコードを使用して、データを更新します。
_, err = db.Exec(`UPDATE users SET age = ? WHERE name = ?`, 30, "Alice")if err != nil { log.Fatal(err)}上記のコードでは、db.Exec関数を使用して、usersテーブルのnameがAliceのデータのageを30に更新しています。
削除
データベースのデータを削除するには、DELETE文を使用します。以下のコードを使用して、データを削除します。
_, err = db.Exec(`DELETE FROM users WHERE name = ?`, "Alice")if err != nil { log.Fatal(err)}上記のコードでは、db.Exec関数を使用して、usersテーブルのnameがAliceのデータを削除しています。
これで、GoからSQLite3を操作する方法について学びました。データベースの操作には、INSERT、SELECT、UPDATE、DELETEなどのSQL文を学びました。
演習
先ほどのSQLの課題をGoで実装してみましょう。