C言語でSQLite,テーブルを作成する

スポンサーリンク

鍛錬 230

C言語でSQLite,テーブルを作成する

C言語で SQLite3 を操作して、テーブルを作成する方法についてです。

プログラム

以下は、テーブルを作成するプログラム create_table.c です。

今回は、データベースファイル /var/tmp/fruits.db に、テーブル fruits を作成しています。

// include
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sqlite3.h>

// main
int main(void)
{
	char db_name[256] = "";
	char sql_str[256] = "";
	char *errmsg = '\0';
	int ret;
	
	sqlite3 *db = NULL;
	
	strncpy(db_name, "/var/tmp/fruits.db", sizeof(db_name) - 1);
	
	// オープン
	ret = sqlite3_open(db_name, &db);
	if (ret != SQLITE_OK) {
		printf("ERROR,sqlite3_open(),%s\n", sqlite3_errmsg(db));
		
		exit(EXIT_FAILURE);
	}
	
	// SQLステートメントを作成
	strncpy(sql_str,
			"create table fruits"
			"(id integer, "
			"fruits_name text, "
			"price integer)",
			sizeof(sql_str) - 1
			);
	
	// SQLステートメントを実行
	ret = sqlite3_exec(db, sql_str, NULL, NULL, &errmsg);
	if (ret != SQLITE_OK) {
		printf("ERROR,sqlite3_exec(),%s\n", errmsg);
		
		// クローズ
		sqlite3_close(db);
		
		// エラーメッセージのメモリ領域を解放
		sqlite3_free(errmsg);
		
		exit(EXIT_FAILURE);
	}
	
	// クローズ
	ret = sqlite3_close(db);
	if (ret != SQLITE_OK) {
		printf("ERROR,sqlite3_close(),%s\n", sqlite3_errmsg(db));
		
		exit(EXIT_FAILURE);
	}
	
	printf("SUCCESS,create table\n");
	
	return 0;
}

実行結果

以下は、上記のプログラム create_table.c を実行してテーブルを作成後に、sqlite3 のプロンプトにてスキーマを確認し、テーブルが作成されたことを確認しています。

***@ubuntu:~/***/test/sqlite3$ 
***@ubuntu:~/***/test/sqlite3$ gcc -Wall -Wextra create_table.c -o create_table -lsqlite3 -L/usr/lib/x86_64-linux-gnu -I/usr/include
***@ubuntu:~/***/test/sqlite3$ ./create_table
SUCCESS,create table
***@ubuntu:~/***/test/sqlite3$ sqlite3 /var/tmp/fruits.db
SQLite version 3.11.0 2016-02-15 17:29:24
Enter ".help" for usage hints.
sqlite> 
sqlite> 
sqlite> .schema
CREATE TABLE fruits(id integer, fruits_name text, price integer);

 
上記に示した通り、テーブル fruits が作成されました。

タイトルとURLをコピーしました