数据库(Sqlite3)(Linux)(C)

sudo apt-get install sqlite3 安装数据库
sudo apt-get install libsqlite3-dev 安装数据库函数库

操作方式:

命令操作

	.quit 退出
	.help 帮助
	.table 查看表名
	.database 查看当前打开的数据库
	.schema table_name 查看表结构
	.indices table_name 查看表索引

sql语句

	create table table_name(id int,passwad char) 创建表
	drop table table_name 删除表
	
	insert into table_name (id,passwad) values (5,"64231") 插入

	select * from table_name 查找
	select * from table_name where id="" 按条件查找 
	select * from table_name limit n offset m 只查询前n条,从m+1开始
	select * from table_name order by id desc/asc 查询按id降序/升序

	delete from table_name where id="" 按条件删除
	
	update table_name set passwad="" where id="" 按条件修改

	alter table table_name add column <字段名><类型> 添加一个字段
	alter table table_oldname rename to table_newname 修改表名

C程序

头文件: sqlite3.h
编译时: -lsqlite3

int sqlite3_open(char  *path, sqlite3 **db);
功能:打开数据库
返回值:成功返回0,失败返回错误码(非零值)
path: 数据库文件路径
db: 指向sqlite句柄的指针
	
int sqlite3_close(sqlite3 *db);
功能:关闭sqlite数据库
db: 指向sqlite句柄的指针
返回值:成功返回0,失败返回错误码

const char *sqlite3_errmsg(sqlite3 *db);
功能:获取错误信息 
db: 指向sqlite句柄的指针
返回值:返回错误信息
 
int sqlite3_exec(sqlite3 *db, const char *sql,  sqlite3_callback callback, void *,  char **errmsg);
功能:执行SQL操作
db:数据库句柄
sql:SQL语句
callback:回调函数
void*:传入回调中的参数
errmsg:错误信息指针的地址
返回值:成功返回0,失败返回错误码

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

int sqlite3_get_table(sqlite3 *db, const char *sql, char ***resultp, int*nrow, int *ncolumn, char **errmsg);
功能:执行SQL操作
db:数据库句柄
sql:SQL语句
resultp:用来指向sql执行结果的指针
nrow:满足条件的记录的数目(行)
ncolumn:每条记录包含的字段数目(列)
errmsg:错误信息指针的地址
返回值:成功返回0,失败返回错误码

部分代码示例

//针对用户表进行操作(users)
#include "database_method.h"
#include <sqlite3.h>
#include <stdio.h>

int database_CreateUser(User user)
{
   
    if(database_SelectUserName(user)==1)
    {
   
        printf("name is exist\n");
        return -1;
    }

    sqlite3 *db;
    int reto = sqlite3_open("project.db",&db);
    if(reto!=0)
    {
   
        printf("sqlite3_open_CreateUser:%s\n",sqlite3_errmsg(db));
        return -1;
    }

    char sql[1024];
    sprintf(sql,"insert into users (name,password,vip) values('%s',%d,%d);",user.name,user.password,NO);
    char *errmsg;
    int rete = sqlite3_exec(db,sql,NULL,NULL,&errmsg);
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值