一、概念:
1.1什么是数据:在计算机科学中,数据是所有能输入计算机并被计算机程序处理的符号的介质的总称、是信息的集合
1.2什么是数据库:在某个管理系统下存储的数据集合。
1.3数据库的分类:大型数据库、中型数据库、小型数据库
1.4sqlite:是一种基于嵌入式linux的一种小型关系型数据库,源代码为C、体积小250KB、操作快、可以在不同字节序的机器上共享、数据库最大2TB。
二、SQLITE数据库的创建
2.1可以在ubuntu的操作系统下、使用sqlite3工具、通过命令行的方式创建数据库
首先安装sqlite3 在命令行输入:sudo apt-get install sqlite3
创建数据库 在命令行输入:sqlite3 data1.db //这样便创建了名为data1的数据库,若是本来就存在该数据库、就直接使用该数据库
在sqlite3的工具界面可以输入 .database来查看创建好的数据库。
2.2可以通过C程序中对API函数的调用完成对数据库的创建
调用sqlite3_open 函数
通过API函数创建了data1.db数据库
要编译 连接通过需要sudo apt-get install libsqlite3-dev
三、SQLITE常用命令
命令分为:系统命令、以“.”开头,sql语句、以“;”结尾
在linux终端输入sqlite3后进入sqlite操作界面:
3.1退出命令 .exit .quit
3.2查看表 .table
查看了建立好的fruit1
3.3查看表的结构
下面是SQL语句:
3.4创建表A:create table A(id integer , name text , age integer , score float);
3.5插入记录:insert into fruit1 values (1 , 'sa' , 20 , 13);
insert into fruit1 (id , name , score) values(1 , 'sa' ,20 ,13);
3.6删除一条记录:delete from fruit1 where name = 'sa' and score = 13;
3.7更新一条记录:update fruit1 set age = 20 where id = 1;
update fruit1 set age = 20 ,score = 13 where id = 1;
3.8增加一列:alter table fruit1 add column level char;
3.9删除一列:create table fruit2 as select id , name from fruit1;
drop table fruit1;
alter table fruit2 rename to fruit1;
3.10查看数据库记录:
select * from fruit1 where score >=0 and score <=50;
select * from fruit1;
select * from fruit1 where id = 1;
select * from fruit1 where id = 1 and name = 'sa'; //and or
select name , score from fruit1; //查询指定字段
3.11删除一张表:drop table fruit1;
四、sqlite3 数据库的API函数
4.1打开数据库
int sqlite3_open( const char *filename; //数据库的名字 sqlite3 **ppDb; //函数的回传的句柄二级指针);
返回值:成功为0 SQLITE_OK ,出错为错误码(const char sqlite3_errmsg(sqlite3 *db))里面的参数为句柄一级指针。
4.2关闭数据库
int sqlite3_close(sqlite3 *db); //参数为回传句柄一级指针
返回值:成功为0 SQLITE_OK ,出错为错误码(const char sqlite3_errmsg(sqlite3 *db))里面的参数为句柄一级指针。
4.3执行sql语句
int sqlite3_exec( sqlite3 *db, //句柄的一级指针 const char *sql ,//sql语句的首地址 int (*callback)(void * arg ,int f_num,char ** f_value , char **f_name), //callback 参数1:sqlite3_exec传递来的参数,参数2:列数,参数3:列的值的地址,参数4:列的名称的地址 void *arg,//为回调函数传递参数 char **errmsg //错误消息);
只有在执行查询语句时、才会传参
返回值:成功时返回SQLITE_OK
4.4查询函数
int sqlite3_get_table( sqlite *db, const char *sql, char* **result ,int *nrow ,int *ncolumn ,char** errmsg);
db:数据库的句柄
sql:sql语句
**result:二维数组 存放查询结果
nrow:表的行数
ncolumn:表的列数
errmsg:存放错误信息