sqlite3创建数据库,创建一个users表格,c语言实现

以下是一个C语言程序示例,它使用SQLite3的C API来创建一个名为users.db的数据库,并在其中创建一个名为users的表,该表包含id(自增主键)、username(TEXT)、password(TEXT)、Email(TEXT)和time(TEXT,存储ISO格式的日期时间字符串)字段:

直接上代码:

复制代码
#include <stdio.h>  
#include <sqlite3.h>  
#include <time.h>  
  
// SQLite3的回调函数(用于SELECT查询,但这里不需要)  
static int callback(void *NotUsed, int argc, char **argv, char **azColName) {  
    int i;  
    for(i=0; i<argc; i++){  
        printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");  
    }  
    printf("\n");  
    return 0;  
}  
  
int main() {  
    sqlite3 *db;  
    char *err_msg = 0;  
    int rc;  
  
    // 打开数据库(如果它不存在,则创建一个新的)  
    rc = sqlite3_open("users.db", &db);  
    if (rc) {  
        fprintf(stderr, "无法打开数据库: %s\n", sqlite3_errmsg(db));  
        return 1;  
    } else {  
        fprintf(stderr, "成功打开数据库\n");  
    }  
  
    // 创建表  
    char *sql = "CREATE TABLE IF NOT EXISTS users ("  
                "id INTEGER PRIMARY KEY AUTOINCREMENT, "  
                "username TEXT NOT NULL UNIQUE, "  
                "password TEXT NOT NULL, "  
                "Email TEXT NOT NULL UNIQUE, "  
                "time TEXT DEFAULT (datetime('now', 'localtime')) "  // SQLite的datetime函数用于获取当前时间  
                ");";  
  
    rc = sqlite3_exec(db, sql, callback, 0, &err_msg);  
    if (rc != SQLITE_OK) {  
        fprintf(stderr, "SQL错误: %s\n", err_msg);  
        sqlite3_free(err_msg);  
        return 1;  
    } else {  
        fprintf(stdout, "表已创建\n");  
    }  
  
    // 插入数据的示例(可选)  
    sql = "INSERT INTO users (username, password, Email) VALUES ('testuser', 'testpass', 'test@example.com');";  
    rc = sqlite3_exec(db, sql, callback, 0, &err_msg);  
    if (rc != SQLITE_OK) {  
        fprintf(stderr, "SQL错误: %s\n", err_msg);  
        sqlite3_free(err_msg);  
    } else {  
        fprintf(stdout, "数据已插入\n");  
    }  
  
    // 关闭数据库连接  
    sqlite3_close(db);  
    return 0;  
}
相关推荐
冬奇Lab9 分钟前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence11 小时前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神13 小时前
三、用户与权限管理
数据库·mysql
LDR0061 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
Luminous.1 天前
C语言--day30
c语言·开发语言
玖玥拾1 天前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
謓泽1 天前
C语言不是语法,是通往机器的地图。
c语言·开发语言
麦聪聊数据1 天前
数据服务化时代:企业数据能力输出的核心路径
数据库
不会C语言的男孩1 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_1 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化