sqlite3数据库基础命令及函数接口

文章目录

  • 一、安装sqlite3
  • 二、sqlite3系统命令
    • 1.进入数据库
    • 2.系统命令
  • 三、sqlite3基础命令
    • 1.创建表
    • 2.插入数据
    • 3.查询记录
    • 4.删除记录
    • 5.更新记录
    • 6.在表中新增一列属性
    • 7.修改表名
    • 8.删除表
    • 9.创建一个新的表并从原有表中提取字段
  • 四、sqlite3函数接口
    • 1.sqlite3_open
    • 2.sqlite3_close
    • 3.sqlite3_errmsg
    • 4.sqlite3_exec
    • 5.sqlite3_get_table

一、安装sqlite3

		1.在线安装:sudo apt-get install sqlite3     
		2.三方库的安装: sudo apt-get install libsqlite3-dev   

二、sqlite3系统命令

1.进入数据库

   sqlite3 数据库名              //如果数据库不存在则创建,存在则进入数据库

在这里插入图片描述

2.系统命令

进入之后可正常输入命令,如果出现...>的模式,CTRL + d 结束,或者CTRL + z
  
  以‘.’(点)开头的命令
  .help	帮助
  .quit	退出
  .exit	退出
  .schema	查看标的结构图
  .databases	查看打开的数据库
  .table	查看表

三、sqlite3基础命令

1.创建表

create table if not exists 表名 (属性1 数据类型,属性2 数据类型,......);

例如:
在这里插入图片描述

2.插入数据

insert into student values(1,'zhangsan');

例如:
在这里插入图片描述

3.查询记录

查询表中所有数据
	select * from 表名;

在这里插入图片描述

查询表中部分数据
	select name from 表名;

在这里插入图片描述

根据条件查询记录
	select * from 表名 where name = '张三';

在这里插入图片描述

4.删除记录

删除某一条记录:
		delete from 表名 where name='lisi';

sqlite3数据库基础命令及函数接口_第1张图片

删除整张表数据:	
		delete from student;     //只是删除数据,不删除表

在这里插入图片描述

5.更新记录

update 表名 set name =‘wanger’ where name = 'wangwu';

sqlite3数据库基础命令及函数接口_第2张图片

6.在表中新增一列属性

alter table student add column age int;

在这里插入图片描述

7.修改表名

alter table 原表名 rename to 新表名;

在这里插入图片描述

8.删除表

drop table teachar;

在这里插入图片描述

9.创建一个新的表并从原有表中提取字段

create table 新表名 as select id, name from 原有表;

sqlite3数据库基础命令及函数接口_第3张图片

四、sqlite3函数接口

1.sqlite3_open

功能 : 打开数据库

int sqlite3_open(const char *filename,sqlite3 **ppDb)

参数 :
	filename : 要操作的数据库文件的路径
	ppDb : 数据库的操作指针
	
返回值 :
	成功 : 返回SQLITE_OK
	失败 : 返回错误码

sqlite3数据库基础命令及函数接口_第4张图片

2.sqlite3_close

功能 : 关闭数据库

int sqlite3_close(sqlite3*);
参数:
	db	:操作数据库的指针
返回值:
	成功 : SQLITE_OK
	失败 : 错误码

3.sqlite3_errmsg

功能:通过db指针,得到数据库操作的错误信息;

const char *sqlite3_errmsg(sqlite3* db);
参数 :
	db指针
返回值:
	错误信息的首地址

4.sqlite3_exec

功能:执行一条sql语句;

int sqlite3_exec(
  sqlite3*,                                  /* 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 */
);

参数 : 
	db	:数据库操作指针;
	sql	:一条sql语句;
	callback:只有sql为查询语句的时候,才会执行此语句;
	arg	:给回调函数callback传递参数;
	errmsg	:错误消息

返回值 : 
	成功 : SQLITE_OK
	失败 : 错误码

int callback(void *para, int f_num, char **f_value, char **f_name)

功能:查询的结果,是一个函数指针类型,传递一个函数名即可,每找到一条记录自动执行一次回调函数

参数:
	para	:传递给回调函数的参数;
	f_num	:记录中包含的字段数目;
	f_value	:包含每个字段值的指针数组;
	f_name	:包含每个字段名称的指针数组;
	
返回值:成功返回0,失败返回-1;

sqlite3数据库基础命令及函数接口_第5张图片

查询到一条数据,进入一次callback函数

sqlite3数据库基础命令及函数接口_第6张图片
sqlite3数据库基础命令及函数接口_第7张图片

5.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 */
);

参数:
	db	:数据库操作指针
	zSql	:查询的sql语句
	pazResult	:查询结果的返回地址;
	pnRow	:满足条件的记录数目(表中的行数)
	pnColumn:每条记录包含的字段数目(表中的列数)
	pzErrmsg:错误信息指针的地址;
	
返回值:
	成功 返回0
	失败 返回错误码。

sqlite3数据库基础命令及函数接口_第8张图片
sqlite3数据库基础命令及函数接口_第9张图片
sqlite3数据库基础命令及函数接口_第10张图片

你可能感兴趣的:(sqlite3,c语言,Linux,数据库,sqlite,sql)