- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
文档仅供参考
PAGE 1
SQLite学习教程
1:sqlite常用接口
2个重要结构体和5个主要函数:
sqlite3 ? ? ? ? ? ? ? *pdb, 数据库句柄,跟文件句柄FILE很类似
sqlite3_stmt ? ? ?*stmt, 这个相当于ODBC的Command对象,用于保存编译好的SQL语句
?
sqlite3_open(), ? 打开数据库
sqlite3_exec(), ? 执行非查询的sql语句
sqlite3_prepare(), 准备sql语句,执行select语句或者要使用parameter bind时,用这个函数(封装了sqlite3_exec).
Sqlite3_step(), 在调用sqlite3_prepare后,使用这个函数在记录集中移动。
Sqlite3_close(), 关闭数据库文件
?
还有一系列的函数,用于从记录集字段中获取数据,如
sqlite3_column_text(), 取text类型的数据。
sqlite3_column_blob(),取blob类型的数据
sqlite3_column_int(), 取int类型的数据
…
?2:sqlite数据类型介绍
?? ? 在进行数据库Sql操作之前,首先有个问题需要说明,就是Sqlite的数据类型,和其他的数据库不同,Sqlite支持的数据类型有他自己的特色,这个特色有时会被认为是一个潜在的缺点,但是这个问题并不在我们的讨论范围之内。
大多数的数据库在数据类型上都有严格的限制,在建立表的时候,每一列都必须制定一个数据类型,只有符合该数据类型的数据可以被保存在这一列当中。而在 Sqlite 2.X中,数据类型这个属性只属于数据本生,而不和数据被存在哪一列有关,也就是说数据的类型并不受数据列限制(有一个例外:INTEGER PRIMARY KEY,该列只能存整型数据)。
但是当Sqlite进入到3.0版本的时候,这个问题似乎又有了新的答案,Sqlite的开发者开始限制这种无类型的使用,在3.0版本当中,每一列开始拥有自己的类型,并且在数据存入该列的时候,数据库会试图把数据的类型向该类型转换,然后以转换之后的类型存储。当然,如果转换被认为是不可行的,Sqlite仍然会存储这个数据,就像他的前任版本一样。
举个例子,如果你企图向一个INTEGER类型的列中插入一个字符串,Sqlite会检查这个字符串是否有整型数据的特征, 如果有而且可以被数据库所识别,那么该字符串会被转换成整型再保存,如果不行,则还是作为整型存储。
总的来说,所有存在Sqlite 3.0版本当中的数据都拥有以下之一的数据类型:
空(NULL):该值为空
整型(INTEGEER):有符号整数,按大小被存储成1,2,3,4,6或8字节。
实数(REAL):浮点数,以8字节指数形式存储。
文本(TEXT):字符串,以数据库编码方式存储(UTF-8, UTF-16BE 或者 UTF-16-LE)。
BLOB:BLOB数据不做任何转换,以输入形式存储。
ps: 在关系数据库中,CLOB和BLOB类型被用来存放大对象。BOLB表示二进制大对象,这种数据类型通过用来保存图片,图象,视频等。CLOB表示字符大对象,能够存放大量基于字符的数据。
对应的,对于数据列,同样有以下的数据类型:
TEXT
NUMERIC
INTEGER
REAL
NONE
数据列的属性的作用是确定对插入的数据的转换方向:
TEXT 将数据向文本进行转换,对应的数据类型为NULL,TEXT 或 BLOB
NUMERIC 将数据向数字进行转换,对应的数据类型可能为所有的五类数据,当试图存入文本时将执行向整型或浮点类型的转换(视具体的数值而定),转换若不可行,则保留文本类型存储,NULL或BLOB不做变化
INTEGER 将数据向整型转换,类似于NUMERIC,不同的是没有浮点标志的浮点数将转换为整型保存
REAL 将数据向浮点数类型转换,类似于NUMERIC,不同的是整数将转换为浮点数保存
NULL 不做任何转换的数据列类型
?
实例代码如下,
附件工程可直接编译,例子使用了blob数据类型。
#include sqlite3.h ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//包含一个头文件就可以使用所以sqlite的接口了
#include stdlib.h
#include stdio.h
#include string.h
?
#pragma comment(lib, sqlite.lib) ? ? ? ? ? //我把sqlite编译成了一个静态的lib文件。
?
void ? ? ? createdb();
void ? ? ? querydb();
?
int ? ?
您可能关注的文档
- 《尊敬老师 从心开始》主题微班会课设计.pdf
- 【思维导图】【选必3】第05课 南亚、东亚和美洲文化.pdf
- 1-6年级数学法则归类.pdf
- 1号库监控设备更换说明.docx
- 5G技术与教育的融合:挑战与机遇.pdf
- 10医疗企业-工作服管理规程.pdf
- 11某机械制造有限公司组织架构图模板.pdf
- 100个创意婚礼策划宝典.pdf
- 100个脑筋急转弯题目,可以复制.pdf
- 100个最常见的德国姓氏.pdf
- [东莞]2023年广东东莞市第一人民法院招聘劳动合同制审判辅助人员51人 笔试上岸试题历年典型考题及考点剖析附答案详解.docx
- [上饶]江西上饶市公安局招聘警务辅助人员47人 笔试上岸试题历年典型考题及考点剖析附答案详解.docx
- [上海]上海高等研究院院办公室招聘 笔试上岸试题历年典型考题及考点剖析附答案详解.docx
- [中央]2023年中国历史研究院专业技术人员招聘 笔试上岸试题历年典型考题及考点剖析附答案详解.docx
- [中央]2022年中国民航科学技术研究院招聘 笔试上岸试题历年典型考题及考点剖析附答案详解.docx
- [中央]2022年中国兽医药品监察所(农业农村部兽药评审中心)招聘应届生等人员 笔试上岸试题历年典型考题及考点剖析附答案详解.docx
- [中央]2023年中国中医科学院医学实验中心招聘应届生 笔试上岸试题历年典型考题及考点剖析附答案详解.docx
- [上饶]江西上饶市余干县司法局招聘工作人员 笔试上岸试题历年典型考题及考点剖析附答案详解.docx
- [中央]2023年中国历史研究院招聘 笔试上岸试题历年典型考题及考点剖析附答案详解.docx
- [中央]2022年生态环境部信息中心招聘 笔试上岸试题历年典型考题及考点剖析附答案详解.docx
文档评论(0)