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;  
}
相关推荐
lingllllove4 分钟前
Redis脑裂问题详解及解决方案
数据库·redis·缓存
字节全栈_BjO19 分钟前
mysql死锁排查_mysql 死锁问题排查
android·数据库·mysql
微光守望者28 分钟前
Redis常见命令
数据库·redis·缓存
martian6651 小时前
第六篇:事务与并发控制
数据库
嘻嘻哈哈的zl2 小时前
初级数据结构:栈和队列
c语言·开发语言·数据结构
weixin_537590453 小时前
《C程序设计》第六章练习答案
c语言·c++·算法
x-cmd3 小时前
[250202] DocumentDB 开源发布:基于 PostgreSQL 的文档数据库新选择 | Jekyll 4.4.0 发布
数据库·postgresql·开源
charlie1145141914 小时前
从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(OLED设备层封装)
c语言·stm32·单片机·教程·oled·嵌入式软件
小林up5 小时前
【C语言设计模式学习笔记1】面向接口编程/简单工厂模式/多态
c语言·设计模式
是小崔啊8 小时前
事务03之MVCC机制
数据库·mysql·事务·