Sqlite3数据库学习笔记

一、Sqlite3数据库:第三方库

1、数据库:按照数据结构来组织、存储和管理数据的仓库。

2、如何存储数据? .db

3、管理数据有哪些操作? 增删改查

4、数据库下载:移植第三方库
下载数据库;
把数据库搞到ubuntu上;
sqlite-autoconf-3240000.tar.gz
链接:https://pan.baidu.com/s/1U3QouxSqGWy30H8avH2CuQ
提取码:0gfe

sudo cp sqlite-autoconf-3240000.tar.gz /usr/local
cd /usr/local
sudo tar -xvf sqlite-autoconf-3240000.tar.gz
cd sqlite-autoconf-3240000
./configure
make
sudo make install

5、移植三部曲;
./configure
make
sudo make install

sqlite3 1.db 进入数据库
.quit
.exit 退出数据库

6、数据库两种使用方式:命令控制与函数接口控制

7、命令控制:sqlite3命令+sql(结构化查询语言)

8、sqlite3命令:
进入sqlite3:
sqlite3 1.db或touch 1.db , sqlite3 1.db

以点开头:
.help
.exit
.quit
.tables 查看当前数据库文件下有哪些表
.schema 表名 //查看表的结构

9、sql命令:以;结尾
1、新建表格:
create table (f1 type1,f2 type2);

create table stu (name char[20],age int);

2、删除表格
drop table ;

drop table student;

3、添加数据
insert into values (value1,…);

insert into stu values (“zhangsan”,100);

4、查询数据
select * from ;
select * from stu;

select * from where 表达式;
select * from stu where age<200;
sqlite> select * from stu where name=“zhangsan”;
select * from stu where age<200 and name=“zhangsan”;

5、更改数据
update set , where 表达式;

update stu set age=20 where name=“lisi”;

6、删除数据
delete from where 表达式;

delete from stu where age>80;

10、函数控制
int sqlite3_open(char *path,sqlite3 **db);
打开数据库,没有则创建;
path:数据库文件路径
db : 指向句柄的指针。
返回值:成功返回SQLITE_OK

使用:
sqlite3 *mydb;
sqlite3_open("./1.db",&mydb);

int sqlite3_close(sqlite3 *db);
关闭数据库;

使用:
sqlite3_close(mydb);

int sqlite3_exec(sqlite3 *db,char *sql,int (*callback)(void *arg,int col,char **str,char **name),void *arg,char **errmsg);
执行一条sql语句;

db:句柄
sql:要执行的sql语句
callback:函数指针,只有查询命令时调用
arg:传进去的参数
errmsg:存放错误信息
返回值:成功返回SQLITE_OK

int (*callback)(void *arg,int col,char **str,char **name)
callback : 函数地址
arg : 传进来的参数
col : 总列数
str : 存放查询到的一组信息
name : 表头

练习:
建一个数据库文件,建一个表格,往表格存放数据。通过命令控制验证。。
建一个数据库,建一个表,输入3个学生信息,查询李四的信息

总结:
头文件
编译时加上-lsqlite3
回调函数必须return;
“”前要加转移符号;
在此执行文件先删除之前的数据库,因为不能建同名的表。也可以改表名或create table if not exists stu ();

当数据库执行一条查询命令的时候,他在表格中查找满足条件的一组数据,当查找到一组数据后,就把查到的一组数据存放在回调函数的str
中,执行一遍回调函数。接着再次查询,重复以上步骤。。所以,回调函数是查询到一组符合条件的数据就调用一次。。
查询到查询不到都会返回宏SOLITE_OK,只有出错:例如函数没有返回等才不会返回这个宏。。

你可能感兴趣的:(linux学习)