C++加载sqlite3数据库文件

db数据库文件简单轻便,形式上可以像excel数据那样,但是解析的时候却有很大的灵活性。使用Python解析db数据已经是很简单的事情,使用专门的数据库可视化工具,通过sql语句查询内容也是有手就行,也许C++也不难,但是对我来说这是个新东西,所以这里就先介绍它吧。


创建数据库文件

创造虚拟数据,还是要借助于Python,Python简直是数据科学的语言。我的流程是先使用Python创建csv文件,然后将csv文件转为db文件。依旧放图:

转换前后文件对比:

但是数据信息确是一毛一样。

csv转db数据代码:

python 复制代码
import sqlite3
import pandas as pd

# 读取 CSV 文件
csv_file = 'demo.csv'
df = pd.read_csv(csv_file)

# 处理列名,替换特殊字符
def sanitize_column_name(column_name):
    return column_name.replace(':', '_').replace(' ', '_')

# 连接到 SQLite 数据库
db_file = 'demo.db'
conn = sqlite3.connect(db_file)
cursor = conn.cursor()

# 创建表
table_name = 'people'
sanitized_columns = [sanitize_column_name(col) for col in df.columns]
columns = ', '.join(sanitized_columns)
placeholders = ', '.join(['?'] * len(df.columns))
create_table_sql = f'CREATE TABLE IF NOT EXISTS {table_name} ({columns});'
cursor.execute(create_table_sql)

# 插入数据
insert_sql = f'INSERT INTO {table_name} ({columns}) VALUES ({placeholders});'
for row in df.itertuples(index=False, name=None):
    cursor.execute(insert_sql, row)

# 提交事务
conn.commit()

# 关闭连接
conn.close()

print(f"CSV data has been successfully imported into {db_file}")

c++解析数据库

cpp 复制代码
#include <iostream>
#include <sqlite3.h>

int main() {
    sqlite3* db;
    int rc;

    rc = sqlite3_open("F:/pythonProject/demo.db", &db); // 文件路径可以是 ":memory:" 表示内存中的数据库

    if (rc) {
        fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
        sqlite3_close(db);
        return 1;
    }
    else {
        std::cout << "Opened database successfully" << std::endl;
    }


    sqlite3_close(db);
    return 0;
}
相关推荐
aramae12 分钟前
MySQL数据库入门指南
android·数据库·经验分享·笔记·mysql
Apache IoTDB1 小时前
时序数据库 IoTDB 集成 MyBatisPlus,告别复杂编码,简化时序数据 ORM 开发
数据库·struts·servlet·时序数据库·iotdb
isNotNullX1 小时前
怎么用数据仓库来进行数据治理?
大数据·数据库·数据仓库·数据治理
小坏讲微服务1 小时前
Spring Cloud Alibaba Gateway 集成 Redis 限流的完整配置
数据库·redis·分布式·后端·spring cloud·架构·gateway
HitpointNetSuite2 小时前
连锁餐饮行业ERP系统如何选择?
大数据·数据库·oracle·netsuite·erp
百***17072 小时前
MySQL 常用 SQL 语句大全
数据库·sql·mysql
百***65952 小时前
mysql如何发现慢查询sql
数据库·sql·mysql
资深web全栈开发2 小时前
PostgreSQL 实战指南(面向 MySQL 开发者)
数据库·mysql·postgresql
TG:@yunlaoda360 云老大2 小时前
谷歌云数据库服务概览:关系型与 NoSQL 的多元选择与应用场景解析
数据库·nosql·googlecloud
hello_fracong2 小时前
PostgreSQL (零-1) Windows安装PostgreSQL
数据库·windows·postgresql