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

前端之家收集整理的这篇文章主要介绍了【Linux网络编程】SQLite3 数据库编程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

创建新表

@H_502_57@create @H_502_57@table student (id @H_502_57@int,name @H_502_57@char,score @H_502_57@float);
@H_404_69@删除
@H_502_57@drop @H_502_57@table student;

向表中添加新记录

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

查询表中所有记录

@H_502_57@select * @H_502_57@from student;

按指定条件查询表中记录

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

更新表中记录

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

按指定条件删除

@H_502_57@delete @H_502_57@from student @H_502_57@where id=1002;

在表中添加字段

@H_502_57@alter @H_502_57@table student @H_502_57@add sex @H_502_57@char;

在表中删除字段

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

在C中编程访问数据库

文件

#include <sqlite3.h>

API

sqlite3_open

@H_502_57@int sqlite3_open(
  @H_502_57@const @H_502_57@char *filename,/* Database filename (UTF-8) */
  sqlite3 **ppDb          /* OUT: sqlite db handle */
);

功能:打开sqlite数据库

参数:
    filename: 数据库文件"stu.db"
    ppDb: 数据库指针,方便后面的操作函数执行sql语句对数据库文件的操作

返回值:
    成功  sqlITE_OK
    失败  错误码(非零值)   使用sqlite3_errmsg查看详细错误信息

sqlite3_close

@H_502_57@int sqlite3_close(sqlite3 *ppDb);

功能关闭数据库连接并释放所占用的内存

参数:
    ppDb:待关闭数据库对象

返回值:
    如果数据库正在进行操作,返回sqlITE_BUSY
    如果成功关闭,则返回sqlITE_OK

sqlite3_exec

@H_502_57@int sqlite3_exec(
  sqlite3 *ppDb,/* An open database */
  @H_502_57@const @H_502_57@char *sql,/* sql to be evaluated */
  @H_502_57@int (*callback)(@H_502_57@void*,@H_502_57@int,@H_502_57@char**,@H_502_57@char**),/* Callback function */
  @H_502_57@void *arg,/* 1st argument to callback */
  @H_502_57@char **errmsg                              /* Error msg written here */
);

功能:执行多条sql语句

参数:
    ppDb:待操作的数据库对象
    sqlsql语句,两条之间用分号隔开
    callback:如果执行sql语句时返回一条记录,该函数会被调用一次
    arg:传递给回调函数的第一个参数
    errmsg:错误信息

返回值:
    执行语句时发生错误sqlITE_ABORT
    正确执行完毕:sqlITE_OK

sqlite3_get_table

@H_502_57@int sqlite3_get_table(
  sqlite3 *db,/* An open database */
  @H_502_57@const @H_502_57@char *zsql,/* sql to be evaluated */
  @H_502_57@char ***pazResult,/* Results of the query */
  @H_502_57@int *pnRow,/* Number of result rows written here */
  @H_502_57@int *pnColumn,/* Number of result columns written here */
  @H_502_57@char **pzErrmsg       /* Error msg written here */
);
@H_502_57@void sqlite3_free_table(@H_502_57@char **result);

功能获取执行sql语句后得到的表

参数:
    db:待操作的数据库
    zsql:要执行的sql语句
    paxResult:查询后返回的表的数据
    pnRow:表的行数
    pnColumn:表的列数
    pzErrmsg:错误信息

返回值:
    成功:返回sqlITE_OK
    失败:返回非sqlITE_OK的值

猜你在找的Sqlite相关文章