LV.10 D1-D2 SQLite数据库 学习笔记

数据库基本概念

        数据(Data)      

        能够输入计算机并能被计算机程序识别和处理的信息集合

        数据库 (Database)    

        数据库是在数据库管理系统管理和控制之下,存放在存储介质上的数据集合

基于嵌入式的数据库

        基于嵌入式Linux的数据库主要有SQLite, Firebird, Berkeley DB, eXtremeDB

        Firebird是关系型数据库,功能强大,支持存储过程、SQL兼容等

        SQLite关系型数据库,体积小,支持ACID事务

        Berkeley DB中并没有数据库服务器的概念,它的程序库直接链接到应用程序中

        eXtremeDB是内存数据库,运行效率高

SQLite 基础

        SQLite的源代码是C,其源代码完全开放。SQLite第一个Alpha版本诞生于2000年5月。 他是一个轻量级的嵌入式数据库。

SQLite有以下特性:

        零配置一无需安装和管理配置;

        储存在单一磁盘文件中的一个完整的数据库;

        数据库文件可以在不同字节顺序的机器间自由共享;

        支持数据库大小至2TB;

        足够小,全部源码大致3万行c代码,250KB;

        比目前流行的大多数数据库对数据的操作要快;

创建数据库

手工创建

        使用SQLite3工具,通过手工输入SQL命令行完成数据库创建.

        用户在Linux的命令行界面中输入SQLite3可启动SQLite3工具

代码创建

        在代码中常动态创建数据库

        在程序运行过程中,当需要进行数据库操作时,应用程序会首先尝试打开数据库,此时如果数据库并不存在,程序则会自动建立数据库,然后再打开数据库

数据库常用命令介绍

在终端下运行sqlite3   <*.db>,出现如下提示符

        SQLite  version  3.7.2

        Enter “.help” for instructions

        Enter SQL statements terminated with a “;”

        sqlite>

<*.db> 是要打开的数据库文件。若该文件不存在,则自动创建

显示所有命令

sqlite> .help

退出sqlite3

sqlite>.quit

显示当前打开的数据库文件

sqlite>.database

显示数据库中所有表名

sqlite>.tables

查看表的结构

sqlite>.schema  <table_name>

/*******************************************/

以下为SQL命令,每个命令以;结束

创建新表

        sqlite>create  table  <table_name>  (f1  type1, f2  type2,…);

删除表

        sqlite>drop  table  <table_name>

查询表中所有记录

        sqlite>select  *  from  <table_name>;

按指定条件查询表中记录

        sqlite>select  *  from  <table_name>  where  <expression>;

向表中添加新记录

        sqlite>insert  into  <table_name>  values (value1, value2,…);

按指定条件删除表中记录

        sqlite>delete  from  <table_name>  where  <expression>

更新表中记录

        sqlite>update  <table_name>  set  <f1=value1>, <f2=value2>…   where  

        <expression>;  

在表中添加字段

        sqlite>alter table <table> add column <field> <type> default  …;

在表中删除字段

Sqlite中不允许删除字段,可以通过下面步骤达到同样的效果

        sqlite> create table stu as select no, name, score from student

        sqlite> drop table student

        sqlite> alter table stu rename to student

SQLite编程接口

int   sqlite3_open(char  *path,   sqlite3 **db);

功能:打开sqlite数据库

path:数据库文件路径

db:指向sqlite句柄的指针

返回值:成功返回0,失败返回错误码(非零值)

int   sqlite3_close(sqlite3 *db);

功能:关闭sqlite数据库        

返回值:成功返回0,失败返回错误码

const  char  *sqlite3_errmg(sqlite3 *db);    

返回值:返回错误信息

Typedef  int (*sqlite3_callback)(void *, int, char **, char **);
Int sqlite3_exec(sqlite3 *db, const  char  *sql, sqlite3_callback callback, void *, char **errmsg);

功能:执行SQL操作

db:数据库句柄

sql:SQL语句

callback:回调函数

errmsg:错误信息指针的地址

返回值:成功返回0,失败返回错误码

typedef  int (*sqlite3_callback)(void *para, int f_num, char **f_value, char **f_name);

功能:每找到一条记录自动执行一次回调函数

para:传递给回调函数的参数

f_num:记录中包含的字段数目

f_value:包含每个字段值的指针数组

f_name:包含每个字段名称的指针数组

返回值:成功返回0,失败返回-1

不使用回调函数执行SQL语句

int   sqlite3_get_table(sqlite3 *db, const  char  *sql,  char ***resultp,  int*nrow,  int *ncolumn, char **errmsg);

功能:执行SQL操作

db:数据库句柄

sql:SQL语句

resultp:用来指向sql执行结果的指针

nrow:满足条件的记录的数目

ncolumn:每条记录包含的字段数目

errmsg:错误信息指针的地址

返回值:成功返回0,失败返回错误码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值