sqlite 指南pdf
SQLITE使用手册

此时生成的sqlite文件是还未strip过的,你可以使用命令“file sqlite”查看文件信息。用strip处理过后,将去掉其中的调试信息,执行文件大小也将小很多。命令如下:
arm-linux-strip sqlite
第二步 在arm板上运行sqlite
将sqlite拷贝到你的arm板上,方法很多,你需要根据自己的情况来选择。如ftp,cmdftp,wget等。
去掉调试信息后文件大小减小许多。将sqlite_arm /bin目录下的文件sqlite3拷贝到根文件系统的bin目录下,并将sqlite_arm/lib目录下的文件拷贝到根文件系统的lib目录下。
学习内容:SQLite移植
版本:V1.1
作者:Feng dong rui
整理日期:2009.09.29
我的方法是使用NFS网络共享将sqlite挂载后再拷贝到开发板上。此目录是可写的。命令如下:
busybox wget ftp://192.168.0.100/sqlite
chmod +wx sqlite
./sqlite
会出现
sqlite>
./configure --prefix=PREFIX 改变安装路径至PREFIX
./configure --host=arm-linux 为在arm-linux环境下使用而交叉编译
./configure CC=/usr/local/bin/gcc 指定gcc编译器
./configure --srcdir=DIR 指定源码文件夹
“.libs/libsqlite.a”
大功告成,现在可以make了。
应该不会出错,生成
libsqlite.a,libsqlite.so。你可以使用命令:find -name "sqlite";find -name "*.a";find -name "*.so"查看文件所在的目录。
sqlite3-基础教程

第 4 个参数 void * 是你所提供的指针,你可以传递任何一个指针参数到这里,这个参数最终会 传到回调函数里面,如果不需要传递指针给回调函数,可以填 NULL。等下我们再看回调函数的写 法,以及这个参数的使用。 第 5 个参数 char ** errmsg 是错误信息。 注意是指针的指针。 sqlite3 里面有很多固定的错误信息。 执行 sqlite3_exec 之后,执行失败时可以查阅这个指针(直接 printf(“%s\n”,errmsg))得到一串字 符串信息,这串信息告诉你错在什么地方。sqlite3_exec 函数通过修改你传入的指针的指针,把你提 供的指针指向错误提示信息,这样 sqlite3_exec 函数外面就可以通过这个 char*得到具体错误提示。 说明:通常,sqlite3_callback 和它后面的 void * 这两个位置都可以填 NULL。填 NULL 表示 你不需要回调。比如你做 insert 操作,做 delete 操作,就没有必要使用回调。而当你做 select 时, 就要使用回调,因为 sqlite3 把数据查出来,得通过回调告诉你查出了什么数据。 i.2 exec 的回调 typedef int (*sqlite3_callback)(void*,int,char**, char**); 你的回调函数必须定义成上面这个函数的类型。下面给个简单的例子: //sqlite3 的回调函数 // sqlite 每查到一条记录,就调用一次这个回调 int LoadMyInfo( void * para, int n_column, char ** column_value, char ** column_name ) { //para 是你在 sqlite3_exec 里传入的 void * 参数 //通过 para 参数,你可以传入一些特殊的指针(比如类指针、结构指针) ,然后在这里面强制转 换成对应的类型(这里面是 void*类型,必须强制转换成你的类型才可用) 。然后操作这些数据 //n_column 是这一条记录有多少个字段 (即这条记录有多少列) // char ** column_value 是个关键值,查出来的数据都保存在这里,它实际 上是个 1 维数组(不要以为是 2 维数组) ,每一个元素都是一个 char * 值,是一个字段内容(用 字符串来表示,以\0 结尾) //char ** column_name 跟 column_value 是对应的,表示这个字段的字段名称 //这里,我不使用 para 参数。忽略它的存在. int i; printf( “记录包含 %d 个字段\n”, n_column ); for( i = 0 ; i < n_column; i ++ ) { printf( “字段名:%s > 字段值:%s\n”, column_name[i], column_value[i] ); } printf( “\n“ ); return 0; } int main( int , char ** ) { sqlite3 * db; int result; char * errmsg = NULL; result = sqlite3_open( “c:\\Dcg_database.db”, &db ); if( result != SQLITE_OK ) {
Sqlite使用文档

5.删除表记录:sqlite> delete from test where name = "prochip";
6.删除表;
sqlite> drop table test;
5.2 命令行语言:
1) .help 查看命令行的帮助文件
sqlite> .help .bail ON|OFF .databases .dump ?TABLE? ...
3
南京博芯电子技术有限公司
v 1.0
TCC = gcc -O6 将其修改为: TCC = arm-linux-gcc -O6 找到下面这样一行(line 81): AR = ar cr 将其修改为: AR = arm-linux-ar cr 找到下面这样一行(line 83): RANLIB = ranlib 将其修改为: RANLIB = arm-linux-ranlib 找到下面这样一行(line 86): MKSHLIB = gcc -shared 将其修改为: MKSHLIB = arm-linux-gcc -shared 找到下面这样一行(line 96): TCL_FLAGS = -I/home/drh/tcltk/8.4linux 将其修改为: #TCL_FLAGS = -I/home/drh/tcltk/8.4linux 注释掉下面这一行(line 103): LIBTCL = /home/drh/tcltk/8.4linux/libtcl8.4g.a -lm –ldl 将其修改为:
库函数文件: libsqlite3.a
头文件:
sqlite3.h
应用程序;
sqlite3
此时将 sqlite3 应用程序拷贝到文件系统的系统路径 bin 目录下,这样就可以 在嵌入式开发平台上使用 SQLite 了。
SQLite基本语法手册

[转]SQLite基本语法手册SQLite是一个软件库,用于实现自包含、非服务式、零配置、事务化的SQL数据库引擎。
SQLite是一个嵌入式SQL数据库引擎,与其它大多数SQL数据库不同的是,SQLite没有独立的服务进程。
SQLite直接读写原始的磁盘文件,一个拥有多个表、索引、触发器和视图的完整SQL数据库就包含在一个独立的磁盘文件中。
一.结构定义1.CREATE TABLE:创建新表。
语法:sql-command ::=CREATE[TEMP | TEMPORARY]TABLE table-name (column-def [, column-def]*[, constraint]*)sql-command ::=CREATE[TEMP | TEMPORARY]TABLE[database-name.]table-name AS select-statem entcolumn-def ::= name [type][[CONSTRAINT name]column-constraint]*type ::= typename |typename ( number ) |typename ( number , number )column-constraint ::=NOT NULL[ conflict-clause ]|PRIMARY KEY[sort-order][ conflict-clause ]|UNIQUE[ conflict-clause ]|CHECK ( expr ) [ conflict-clause ]|DEFAULT value |COLLATE collation-nameconstraint ::=PRIMARY KEY ( column-list ) [ conflict-clause ]|UNIQUE ( column-list ) [ conflict-clause ]|CHECK ( expr ) [ conflict-clause ]conflict-clause ::=ON CONFLICT conflict-algorithm2.CREATE VIEW:创建一个视图(虚拟表),该表以另一种方式表示一个或多个表中的数据。
sqlite手册

sqlite手册SQLite是一种嵌入式关系型数据库管理系统,它被广泛应用于移动设备和小型应用程序中。
本手册将介绍如何创建和管理SQLite 数据库以及使用SQL命令进行数据查询和操作。
1. 安装SQLite在开始使用SQLite之前,您需要先安装SQLite。
您可以通过以下方式安装SQLite:- 下载SQLite二进制文件并安装- 使用包管理器(如apt、yum)安装SQLite- 使用SQLite源代码进行编译和安装2. 创建数据库要创建一个新的SQLite数据库,您可以使用以下命令:```sqlite3 <database_name>.db```这将创建一个名为`<database_name>.db`的新数据库,如果数据库不存在,则会自动创建它。
3. 创建表要在SQLite数据库中创建表,请使用以下命令:```CREATE TABLE <table_name> (<column_name> <data_type>,<column_name> <data_type>,...);```这将创建一个名为`<table_name>`的新表,并为每个列指定名称和数据类型。
4. 插入数据要向SQLite表中插入数据,请使用以下命令:INSERT INTO <table_name> (<column_name1>, <column_name2>, ...) VALUES (<value1>, <value2>, ...);```这将向`<table_name>`中插入新行,并为每个指定列指定值。
5. 查询数据要从SQLite表中查询数据,请使用以下命令:```SELECT <column_name1>, <column_name2>, ... FROM <table_name> WHERE <condition>;```这将从`<table_name>`中选择指定列,并根据指定的条件筛选行。
sqlite 入门至精通共11页文档

sqlite 入门至精通sqlite入门至精通2019年04月09日星期五19:07关键字:sqlite入门至精通菜鸟入门1。
从下载SQLite 3.3.4的版本为了方便,我把它解压了,就一个SQLite3.exe,放入Windows目录下。
Cmd进入命令行1)创建数据库文件:SQLite3 d:\test.db回车就生成了一个test.db在d盘。
这样同时也SQLite3挂上了这个test.db 2)用.help可以看看有什么命令.help回车即可3)可以在这里直接输入SQL语句创建表格用;结束,然后回车就可以看到了4)看看有创建了多少表.tables 5)看表结构.schema表名6)看看目前的数据库.database 7)如果要把查询输出到文件.output文件名查询语句;查询结果就输出到了文件c:\query.txt把查询结果用屏幕输出.output stdout 8)把表结构输出,同时索引也会输出.dump表名9)退出.exit或者.quit 2。
从.phxsoftware/下载Ado驱动。
下载了安装,在安装目录中存在System.Data.SQLite.dll我们只需要拷贝这个文件到引用目录,并添加引用即可对SQLite数据库操作了所有的Ado对象都是以SQLite开头的,比如SQLiteConnection连接串只需要如下方式Data Source=d:\test.db或者DataSource=test.db--应用在和应用程序或者能够自动找到的目录剩下的就很简单了~~3。
SQL语法由于以前用SQLServer或者ISeries,所以DDL的语法很汗颜1)创建一个单个Primary Key的table CREATETABLE[Admin]([UserName][nvarchar](20)PRIMARY KEY NOTNULL,[Password][nvarchar](50)NOT NULL,[Rank][smallint]NOTNULL,[MailServer][nvarchar](50)NOT NULL,[MailUser][nvarchar](50)NOT NULL,[MailPassword][nvarchar](50)NOT NULL,[Mail][nvarchar](50)NOT NULL);2)创建一个多个Primary Key的table CREATETABLE[CodeDetail]([CdType][nvarchar](10)NOTNULL,[CdCode][nvarchar](20)NOT NULL,[CdString1][ntext]NOTNULL,[CdString2][ntext]NOT NULL,[CdString3][ntext]NOT NULL,PRIMARY KEY(CdType,CdCode));3)创建索引CREATEINDEX[IX_Account]ON[Account]([IsCheck],[UserName]);还可以视图等等。
SQLite学习手册 中文全本

SQLite学习手册内容收集自网络整理:zhoushuangsheng@新浪微博:@_Nicky开篇一、简介:SQLite是目前最流行的开源嵌入式数据库,和很多其他嵌入式存储引擎相比(NoSQL),如BerkeleyDB、MemBASE等,SQLite可以很好的支持关系型数据库所具备的一些基本特征,如标准SQL语法、事务、数据表和索引等。
事实上,尽管SQLite拥有诸多关系型数据库的基本特征,然而由于应用场景的不同,它们之间并没有更多的可比性。
下面我们将列举一下SQLite的主要特征:1. 管理简单,甚至可以认为无需管理。
2. 操作方便,SQLite生成的数据库文件可以在各个平台无缝移植。
3. 可以非常方便的以多种形式嵌入到其他应用程序中,如静态库、动态库等。
4. 易于维护。
综上所述,SQLite的主要优势在于灵巧、快速和可靠性高。
SQLite的设计者们为了达到这一目标,在功能上作出了很多关键性的取舍,与此同时,也失去了一些对RDBMS关键性功能的支持,如高并发、细粒度访问控制(如行级锁)、丰富的内置函数、存储过程和复杂的SQL语句等。
正是因为这些功能的牺牲才换来了简单,而简单又换来了高效性和高可靠性。
二、SQLite的主要优点:1. 一致性的文件格式:在SQLite的官方文档中是这样解释的,我们不要将SQLite与Oracle或PostgreSQL去比较,而是应该将它看做fopen和fwrite。
与我们自定义格式的数据文件相比,SQLite不仅提供了很好的移植性,如大端小端、32/64位等平台相关问题,而且还提供了数据访问的高效性,如基于某些信息建立索引,从而提高访问或排序该类数据的性能,SQLite提供的事务功能,也是在操作普通文件时无法有效保证的。
2. 在嵌入式或移动设备上的应用:由于SQLite在运行时占用的资源较少,而且无需任何管理开销,因此对于PDA、智能手机等移动设备来说,SQLite的优势毋庸置疑。
SQLITE3资料文档全

INTEGER PRIMARY KEY数据存储2010-06-1813:38:56阅读46评论0字号:大中小订阅.Sqlite中INTEGER PRIMARY KEY AUTOINCREMENT和rowid/INTEGER PRIMARY KEY的使用在用sqlite设计表时,每个表都有一个自己的整形id值作为主键,插入后能不能直接得到该主键呢?还有可不可以指定这么一个id值,因为sqlite内部本来就会为每个表加上一个rowid,这个rowid可以当成一个隐含的字段使用,但是由sqlite引擎来维护的,在3.0以前rowid是32位的整数,3.0以后是64位的整数,为什么不直接使用这个内部的rowid作为每个表的id主键呢。
查了下文档。
参照/c3ref/last_insert_rowid.html。
Each entry in an SQLite table has a unique64-bit signed integer key called the"rowid".The rowid is always available as an undeclared column named ROWID,OID,or_ROWID_as long as those names are not also used by explicitly declared columns.If the table has a column of type INTEGER PRIMARY KEY then that column is another alias for the rowid.如果表中有个INTEGER PRIMARY KEY字段,那么它只是rowid的别名。
This routine returns the rowid of the most recent successful INSERT into the database from the database connection in the first argument.If no successful INSERTs have ever occurred on that database connection,zero is returned.如果成功插入一条数据,会返回刚刚插入的数据的rowid.如果失败返回0.Android中如果发生错误返回的是-1参照/faq.htmlShort answer:A column declared INTEGER PRIMARY KEY will autoincrement.Here is the long answer:If you declare a column of a table to be INTEGER PRIMARY KEY,then whenever you insert a NULL into that column of the table,the NULL is automatically converted into an integer which is one greater than the largest value of that column overall other rows in the table,or1if the table is empty.(If the largest possible integer key, 9223372036854775807,then an unused key value is chosen at random.)For example,suppose you have a table like this:CREATE TABLE t1(a INTEGER PRIMARY KEY,b INTEGER);With this table,the statementINSERT INTO t1VALUES(NULL,123);is logically equivalent to saying:INSERT INTO t1VALUES((SELECT max(a)FROM t1)+1,123);There is a function named sqlite3_last_insert_rowid()which will return the integer key for the most recent insert operation.Note that the integer key is one greater than the largest key that was in the table just prior to the insert.The new key will be unique over all keys currently in the table,but it might overlap with keys that have been previously deleted from the table.To create keys that are unique over the lifetime of the table,add the AUTOINCREMENT keyword to the INTEGER PRIMARY KEY declaration.Then the key chosen will be one more than than the largest key that has ever existed in that table.If the largest possible key has previously existed in that table,then the INSERT will fail with an SQLITE_FULL error code.把一个列申明为INTEGER PRIMARY KEY,那么在向它插入NULL,该列就由系统指定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sqlite 指南
SQLite是一个C库,实现了轻量级的关系型数据库系统。
以下是SQLite的指南:
1. 安装:首先需要下载并安装SQLite库。
可以从SQLite官网下载最新版本的SQLite源代码,并按照说明进行编译和安装。
2. 创建数据库:使用sqlite3命令行工具可以创建一个新的数据库文件。
例如,在命令行中输入“sqlite3 mydatabase.db”将创建一个名为“mydatabase.db”的数据库文件。
3. 创建表:在SQLite中,可以使用CREATE TABLE语句创建表。
例如,“CREATE TABLE mytable (id INTEGER PRIMARY KEY, name TEXT, age INTEGER);”将创建一个名为“mytable”的表,包含id、name和age 三个字段。
4. 插入数据:可以使用INSERT INTO语句向表中插入数据。
例如,“INSERT INTO mytable (name, age) VALUES ('John', 25);”将在“mytable”表中插入一条记录,包含name和age两个字段的值。
5. 查询数据:可以使用SELECT语句查询表中的数据。
例如,“SELECT * FROM mytable WHERE age > 20;”将查询“mytable”表中年龄大于20的所有记录。
6. 更新数据:可以使用UPDATE语句更新表中的数据。
例如,“UPDATE mytable SET age = 30 WHERE name = 'John';”将更新“mytable”表中name字段为“John”的记录的age字段为30。
7. 删除数据:可以使用DELETE语句删除表中的数据。
例如,“DELETE FROM mytable WHERE name = 'John';”将删除“mytable”表中name字段为“John”的所有记录。
8. 关闭数据库:使用sqlite3命令行工具时,可以在完成操作后使用“.quit”命令关闭数据库连接。
以上是SQLite的基本使用方法,更深入的使用可以参考SQLite 的官方文档和教程。