【Linux网络编程】SQLite3 数据库编程

    xiaoxiao2021-04-17  29

    SQLite3并没有提供man手册版的API文档,但是官网有API文档。

    安装

    sudo apt-get install sqlite3 sudo apt-get install libsqlite3-dev

    在Shell中使用

    创建数据库文件

    sqlite3 db_name.db

    显示所有命令

    .help

    退出sqlite3

    .quit

    显示当前打开的数据库文件

    .database

    显示数据库中所有表名

    .tables

    查看表的结构

    .schema

    创建新表

    create table student (id int, name char, score float);

    删除表

    drop table student;

    向表中添加新记录

    insert into student values (1001, 'zhangsan',59.9);

    查询表中所有记录

    select * from student;

    按指定条件查询表中记录

    select * from student where id=1001 ; select * from student where id=1001 and name='wanger'; //and表示并且表示条件同时成立 select * from student where id=1001 or name='wanger'; //or 表示或 只要一个条件成立即可

    更新表中记录

    update student set id=1003,name='wang' where name='wanger';

    按指定条件删除

    delete from student where id=1002;

    在表中添加字段

    alter table student add sex char;

    在表中删除字段

    create table worker as select id, name, score from student; drop table student; alter table worker rename to student;

    在C中编程访问数据库

    头文件

    #include <sqlite3.h>

    API

    sqlite3_open

    int sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */ ); 功能:打开sqlite数据库 参数: filename: 数据库文件"stu.db" ppDb: 数据库指针,方便后面的操作函数执行sql语句对数据库文件的操作 返回值: 成功 SQLITE_OK 失败 错误码(非零值) 使用sqlite3_errmsg查看详细错误信息

    sqlite3_close

    int sqlite3_close(sqlite3 *ppDb); 功能:关闭数据库连接并释放所占用的内存 参数: ppDb:待关闭的数据库对象 返回值: 如果数据库正在进行操作,返回SQLITE_BUSY 如果成功关闭,则返回SQLITE_OK

    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 *arg, /* 1st argument to callback */ char **errmsg /* Error msg written here */ ); 功能:执行多条SQL语句 参数: ppDb:待操作的数据库对象 sql:SQL语句,两条之间用分号隔开 callback:如果执行sql语句时返回一条记录,该函数会被调用一次 arg:传递给回调函数的第一个参数 errmsg:错误信息 返回值: 执行语句时发生错误:SQLITE_ABORT 正确执行完毕:SQLITE_OK

    sqlite3_get_table

    int sqlite3_get_table( sqlite3 *db, /* An open database */ const char *zSql, /* SQL to be evaluated */ char ***pazResult, /* 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 */ ); void sqlite3_free_table(char **result); 功能:获取执行SQL语句后得到的表 参数: db:待操作的数据库 zSql:要执行的SQL语句 paxResult:查询后返回的表的数据 pnRow:表的行数 pnColumn:表的列数 pzErrmsg:错误信息 返回值: 成功:返回SQLITE_OK 失败:返回非SQLITE_OK的值
    转载请注明原文地址: https://ju.6miu.com/read-673381.html

    最新回复(0)