Linux 下的sqlite3数据库使用及Linux C的数据库编程总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hello_world12138/article/details/51532439

1.      首先我在终端中,尝试使用数据库,也就是输入命令,对数据库进行操作,这个过程只是过渡,最后还是要过渡到使用数据库的编程接口来实现对应的功能。

2.      创建并打开一个数据库文件sqlite3 student.db;

3.      然后在这个数据库中创建一张表,名字叫做stu_info,然后这个表中可以存储两个数据,就是学生的学号和学生的姓名,这里把学生的学号作为主键,create table stu_info(stu_num interger primary key,stu_name text);

4.      然后就是插入内容,insert into stu_info(stu_num,stu_name) values(001,’zhang’);这样在这个表中就会有这样一条数据 1| zhang。

5.      如何查看呢?可以使用select * from stu_info;从这张表中查找所有数据,就是显示这张表中的所有数据。

6.      可以查看所有的学生姓名,select stu_name from stu_info;

7.      更新数据库表中的内容update stu_info set stu_num=10086 where stu_name='wang';格式为update + 表名 + set + 想要修改的成员 + where + 关键索引信息;这里的关键索引信息也可以是想要修改的内容。

8.      查看表 .schema

9.      删除一条信息delete from stu_info where stu_num = 10000;格式为 delete from + 表名 + where + 索引的信息;

10.  添加表中的列:alter table stu_info add column dept;在表中添加了一列关键字为dept的数据,未制定这个数据的类型,试了以后发现整数和字符串都可以存储进这个中。

11.  其中搜索select有很多的语法,是sqlite3中最强大最复杂的语法,具体详细的可以网上查阅。

 

 

Linux C中的sqlite3函数接口

1.      创建数据库,并返回句柄sqlite3_open("user.db",&db);其中db的类型为sqlite3 *db;

2.      sqlite3_exec(db,"createtable my_table(name,password,favourite)",NULL,NULL,errmsg);执行对数据库操作的函数语句,类似于在终端上的使用,语句用字符串形式放入。

3.      关闭数据库sqlite3_close(db);使用的返回的句柄进行关闭。

4.      获取数据库中的信息,可以通过nrow和ncolumn,在Result中返回需要的结果,Result 的类型为char ** Result,我个人认为这是一个动态的指针数组(我并不确定,但是大致是这样的原理),通过nrow和ncolumn一起配合使用,遍历整张表的时候,可以获取一个数据的内容,然后通过这个Result进行返回,表示获得查找结果。sqlite3_get_table(db,"select* from my_table",&Result,&nrow,&ncolumn,&errmsg);

5.      sqlite3_free_table(char**result);释放查询结果所占的内存。

6.      这里我发现我之前的项目竟然没有第五点的释放内存空间,我知道那时候时间紧,然后只要求能够实现功能就可以,所以就随便封装了一个函数,然后知识获取了数据库中的内容而没有释放,这个是很差劲的做法,我在以后的项目中需要避免,养成好的函数封装风格和内存申请释放的习惯。


不足之处还望指正。

猜你喜欢

转载自blog.csdn.net/hello_world12138/article/details/51532439