当前位置:   article > 正文

SQLite3 基础_sqlite3基础

sqlite3基础

一、SQLite3 数据库的安装

1、安装
(1)本地安装

sudo dpkg -i *.deb
  • 1

sudo -----以管理员身份执行
dpkg -----软件包管理器
-i -----安装
*.deb -----所有deb软件包

(2)在线安装

sudo apt-get install sqlite3
  • 1

2、运行
在这里插入图片描述

二、SQLite 基本命令

1、系统命令
‘.’开头的命令

.help  	   ----帮助 
.exit  	   ----退出 
.quit  	   ----退出  
.schema	   ----查看表的结构图 
  • 1
  • 2
  • 3
  • 4

2、sql命令
(1)创建一张数据表 stu

表名(字段名 字段类型)

create table stu(id Integer, name char, score Integer);
  • 1

(2)插入一条记录

insert into stu values(1001, 'zhangsan', 80);
  • 1

插入部分字段的操作:

insert into stu(id, name) values(1001, 'zhangsan');
  • 1

(3)查询记录

select * form stu;
  • 1

查询部分字段:

select name,score from stu,
  • 1

按指定条件查询:

select * from stu where score=80 and id=1001;
  • 1

(4)删除记录

delete from stu where id=1;
  • 1

(5)更新/修改记录

update stu set name=‘王五’ where id=100;
update stu set name=‘王五’,score=88 where id=100;
  • 1
  • 2

三、SQLite 进阶命令

1、系统命令

.database  ----查看打开数据库的路径
.table 	   ----查看表
  • 1
  • 2

2、sql命令
(1)插入一列

alter table stu add column address char;
  • 1

.schema查看下表结构,可以看到多了一列

(2)删除一列
SQLite3不支持,直接删除一列
1)创建一张表,从旧表种提取字段
2)删除原有的表
3)将新的表名字改成原有的旧的表的名字

create table tmp as select id, name, score from stu;
drop table stu;
alter table tmp rename to stu;
  • 1
  • 2
  • 3

四、SQLite3 编程接口

1、基本接口
https://www.sqlite.org/c3ref/funclist.html

int sqlite3_open(
  const char *filename,   /* Database filename (UTF-8) */
  sqlite3 **ppDb          /* OUT: SQLite db handle */
);
功能:打开数据库
参数: ppDb 数据库的操作句柄(指针)
返回值:成功SQLITE_OK,失败错误码
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
int sqlite3_close(sqlite3*);
  • 1
const char *sqlite3_errmsg(sqlite3*);
功能:打印错误信息
返回值:错误信息的首地址
  • 1
  • 2
  • 3
int sqlite3_exec(
  sqlite3*,                                  /* 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语句
参数:sql	   一条sql语句
	 callback  回调函数,每找到一条记录自动执行一次回调函数
	 errmsg    错误消息

回调函数的功能:查询的结果,只有sql为查询语句的时候,才会执行此语句
回调函数的参数:void*  传递给回调函数的参数
               int    记录包含的字段数目
               char** 包含每个字段值的指针数组
               char** 包含每个字段名称的指针数组
回调函数的返回值: 成功返回0;失败返回-1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

2、编写代码
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
getchar() 是为了消掉回车符
在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
sqlite3_free(errmsg); 释放错误信息
if(errmsg != NULL)
{
sqlite3_free(errmsg); //这里需要用sqlite3_free去free,切忌!
}
3、不使用回调函数进行查询

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);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
gcc student.c -o student -lsqlite3 -lm

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/562537
推荐阅读
相关标签
  

闽ICP备14008679号