当前位置: 首页 > news >正文

数据库——基础概念与 SQLite 实践

目录

一、数据库的核心概念

二、SQLite 概述

三、SQLite 的安装与编译

1.安装(Linux 系统)

2.编译(C 语言程序)

四、SQLite 操作指令与 SQL 语句

1.SQLite 终端指令

2.常用 SQL 语句

五、C 语言操作 SQLite


数据库是用于存储、统计与管理数据(增删改查)的系统,广泛应用于各类场景,包括嵌入式设备。本文将介绍数据库基础概念,并以 SQLite 为例展开实践说明。

一、数据库的核心概念

数据库的层级结构为:库→表(行)→记录(行)→字段(列)。

常用数据库按规模分类:

  • 大型数据库:ORACLE
  • 中型数据库:MySQL、MSSQL
  • 小型数据库:SQLite、DBII、powdb

关键术语:

  • DB:数据库
  • DBMS:数据库管理系统
  • MIS:管理信息系统
  • OA:办公自动化

二、SQLite 概述

SQLite 是一款嵌入式数据库,具备以下特性:

  1. 开源,基于 C 语言开发
  2. 代码量约 1 万行,整体体积小于 10M
  3. 无需安装,为绿色软件
  4. 属于文件型数据库,可直接移动
  5. 最大数据存储容量为 2T

三、SQLite 的安装与编译

1.安装(Linux 系统)

执行以下命令完成安装:

sudo apt-get install sqlite3 # 安装SQLite工具 sudo apt-get install libsqlite3-dev # 安装开发依赖库

2.编译(C 语言程序)

编写 C 语言代码后,通过以下命令编译(以 sqli.c 为例):

gcc sqli.c -lsqlite3

四、SQLite 操作指令与 SQL 语句

1.SQLite 终端指令

进入 SQLite 环境(执行 sqlite3 数据库名 .db)后,常用指令:

  • .database:查看数据库关联文件
  • .table:查看数据库中的表
  • .schema:查看表的创建语句
  • .q/.quit/.exit:退出数据库
  • .header on:查询结果显示表头

2.常用 SQL 语句

SQL 语句需以分号结尾,核心操作如下:

  • 创建表
create table user(id int, name char, age int);
  • 删除表:
drop table user;
  • 插入数据
insert into user values(3,"wang",11);
  • 查询数据
select * from user where age>20 or age<50;
  • 修改数据:
update user set id = 1 where name = 'li';
  • 删除数据
delete from user where id = 1 or id = 2;

五、C 语言操作 SQLite

通过 C 语言操作 SQLite 的核心流程为:

  1. 打开数据库(sqlite3_open)
  2. 执行 SQL 语句(sqlite3_exec)
  3. 关闭数据库(sqlite3_close)

示例代码如下(向 user 表插入数据):

#include <stdio.h> #include <sqlite3.h> int main(int argc, char** argv) { sqlite3* db = NULL; // 1. 打开数据库 int ret = sqlite3_open("123.db", &db); if (ret != SQLITE_OK) { fprintf(stderr, "sqlite3_open: %s\n", sqlite3_errmsg(db)); sqlite3_close(db); return 1; } char* errmsg = NULL; // 2. 执行SQL语句 char sql_cmd[512] = "insert into user values(6,'zhangsan',21);"; ret = sqlite3_exec(db, sql_cmd, NULL, NULL, &errmsg); if (ret != SQLITE_OK) { fprintf(stderr, "sqlite3_exec: %s\n", errmsg); sqlite3_free(errmsg); sqlite3_close(db); return 1; } // 3. 关闭数据库 sqlite3_close(db); return 0; }
http://www.jsqmd.com/news/162349/

相关文章:

  • PyTorch-CUDA镜像能否用于金融风控模型训练?
  • D触发器电路图电平触发与边沿触发区别:一文说清
  • Git stash暂存未提交更改以便切换PyTorch开发分支
  • vivado2020.2安装教程:手把手带你完成FPGA开发环境搭建
  • 基于HuggingFace Transformers库快速加载大模型Token
  • Disk read/write speed测试PyTorch数据加载
  • Docker build缓存机制加速PyTorch镜像构建过程
  • mptools v8.0自定义安装路径配置实战案例
  • 从Anaconda配置到模型训练:一站式PyTorch入门路径
  • PyTorch v2.7文档更新重点:torch.compile改进
  • HuggingFace AutoModel通用加载接口使用说明
  • PyTorch-CUDA-v2.7镜像构建原理:从Dockerfile看技术细节
  • PyTorch-CUDA-v2.7镜像中处理OOM(内存溢出)问题的策略
  • Windows系统下multisim14.3下载安装操作指南
  • Vitis AI推理延迟优化技巧:系统学习指南
  • 批量下载HuggingFace模型文件的脚本编写技巧
  • SSH代理转发实现跨跳板机访问PyTorch集群
  • 轻松调用NVIDIA显卡:PyTorch GPU加速设置详细步骤
  • Docker Compose结合GPU监控工具实时查看资源使用
  • 深度学习环境搭建太难?试试PyTorch-CUDA-v2.8预装镜像
  • Anaconda Prompt命令行安装PyTorch-GPU版本指南
  • Anaconda环境下切换不同CUDA版本运行多个PyTorch项目
  • SSH公钥认证实现无密码安全登录PyTorch主机
  • PyTorch广播机制详解:张量运算背后的逻辑
  • Altium Designer中过孔类型与允许电流对照超详细版
  • PyTorch镜像中运行Named Entity Recognition命名实体识别
  • 在Kubernetes上进行云原生分布式数据库的垂直规格变更流程
  • Markdown插入公式示例:描述PyTorch损失函数数学原理
  • PyTorch-CUDA-v2.7镜像运行HuggingFace Transformers示例
  • PyTorch-CUDA镜像能否用于医疗诊断辅助系统开发?