sqlite3数据库的基本使用

Chipo ·
更新时间:2024-09-20
· 858 次阅读

文章目录1,sqlite简介2,sqlite3数据库的安装2.1本地安装2.2 在线安装2.3 创建新的数据库3 ,sqlite3的基本命令3.1 系统命令3.2 sql命令(除了系统命令,下面的命令都要以;结尾)4,sqlite API函数打开数据库sqlite3_open()关闭数据库sqlite3_close()获取错误码sqlite3_errmsg()执行sql命令sqlite3_exec()sqlite3_get_table() 1,sqlite简介

SQLite 是一款轻量级的关系型数据库,同时也是一种嵌入式数据库,与 Oracle、MySQL、SQL Server 等数据库不同,它可以内嵌在程序中,是程序中的一个组成部分。

特点为占用资源少,管理简单,操作简单,生成的数据库文件很容易与各个平台兼容

2,sqlite3数据库的安装 2.1本地安装

sudo dpkg -i *.deb

2.2 在线安装

sudo apt-get install sqlite3

2.3 创建新的数据库

sqlite3 student.db //这个命令后就可以在sqlite3提示符下进行数据库操作了

3 ,sqlite3的基本命令 3.1 系统命令

以‘.’开头的命令叫做系统命令,例如常用的有,
.help 帮助
.quit 退出
.exit 退出
.schema 查看表的结构图,相当于查看表格的第一行
.table 查看已有的表格
.databases 查看数据库信息

3.2 sql命令(除了系统命令,下面的命令都要以;结尾) 创建一张新的数据库表stu

creat table stu(id Interger,name char,score Interger);//必须以分号结尾,下面的也是

插入全部记录

insert into stu values(1001,‘zhangshan’,47);

插入部分记录

insert into stu (name,score)values(‘xuxinhua’,90);

查询全部插入的记录

select * from stu;

查询部分字段

select name,score from stu;

条件查询

select * from stu where score=90 and id=1001;//同时满足
select * from stu where score=90 or id=1001;//或者满足

删除一条记录

delete from stu where name=‘xuxinhua’;

更新一条记录

update stu set name=‘xuxinhua’,score=90 where id=1001;

添加一列

alter table stu add clomn address char;

选择旧表中指定的列然后创建一张新的表格

create table stu1 as select id,name,score from stu;

删除一张表

drop table stu;

改变一张表格的名字

alter table stu1 rename to stu;

4,sqlite API函数 打开数据库sqlite3_open() int sqlite3_open(char *path, sqlite3 **ppDb);

功能:打开slite3 数据库
path:数据库文件路径
db:指向数据库句柄的指针
返回值:成功返回SQLITE_OK,失败返回错误码(非零值)

关闭数据库sqlite3_close() int sqlite3_close(sqlite3* ppDb);

关闭数据库

获取错误码sqlite3_errmsg() const char *sqlite3_errmsg(sqlite3*ppDb);

函数功能:获取数据库操作错误时的错误码

执行sql命令sqlite3_exec() int sqlite3_exec( sqlite3* ppDb, /* An open database */ const char *sql, /* SQL to be evaluated */ int (*callback)(void*,int,char**,char**), /* Callback function */ void *, /* 1st argument to callback */ char **errmsg /* Error msg written here */ );

函数功能:执行sql指定的数据库命令操作。
参数说明:
ppDb:splite3_open操作时的第二个参数dB数据操作句柄
sql:SQL命令,可以有多条命令组成
callback:执行完该函数的回调函数,只有sql为查询语句的时候才会执行此语句。
void * : 作为callback回调函数的第一个参数传入
errmsg:获取函数错误是的错误码

回调函数 int sqlite_callback(   void* para,   int f_num,   char** f_value,   char** f_name );

说明:每找到一条记录自动执行一次回调函数
para:传递给回调函数的参数
f_num:记录中包含的字段数目
f_value:包含每个字段值的指针数组
f_name:包含每个字段名称的指针数组
返回值:成功返回0,失败返回-1

sqlite3_get_table() int sqlite3_get_table( sqlite3 *ppDb, /* An open database */ const char *zSql, /* SQL to be evaluated */ char ***dbResult, /* Results of the query */ int *pnRow, /* Number of result rows written here */ int *pnColumn, /* Number of result columns written here */ char **pzErrmsg /* Error msg written here */ );

函数功能:获取数据库表格
函数参数:
ppDb:同上
zSql:SQL命令
dbResult:查询结果,它依然是一维数组,它内存布局是:字段名称,后面是紧接着是每个字段的值。
pnRow:查出具体有多少行,即多少条记录(不包括字段名那行)。
pnColumn:查出具体有多少列,即多少字段
pzErrmsg:错误信息

下面给出简单例子

#include #include int main(int argc, char *argv[]) { sqlite3 * db; char *errmsg; if(sqlite3_open("./student.db", &db) != SQLITE_OK) { printf("%s\n",sqlite3_errmsg(db)); return -1; } else { printf("open student.db success\n"); } if(sqlite3_exec(db, "create table xuxinhua (name char);", NULL, NULL, &errmsg) != SQLITE_OK) { printf("%s\n",errmsg); } printf("table success\n"); sqlite3_close(db); return 0; }
作者:blazer小星星



数据 sqlite3 SQLite 数据库

需要 登录 后方可回复, 如果你还没有账号请 注册新账号