from within a C/C++ program (or a script using Tcl/Ruby/Perl/Python
bindings) you can get access to table and index names by doing a SELECT
on a special table named "SQLITE_MASTER
". Every SQLite database has an SQLITE_MASTER table that defines the schema for the database.
SQL code
SELECT
name
from
sqlite_master
WHERE
type
=
'
table
'
ORDER
BY
name;
......
1) 如何创建自增字段?
简单的回答:一个声明为 INTEGER PRIMARY KEY 的字段将自动增加。
这里是详细的答案: 从 SQLite 的 2.3.4 版本开始,如果你将一个表中的一个字段声明为 INTEGER PRIMARY
KEY,那么无论你何时向该表的该字段插入一个 NULL 值,这个 NULL 值将自动被更换为比表中该字段所有行的最大值大
1 的整数;如果表为空,那么将被更换为 1。比如,假设你有这样的一张数据表:
CREATE TABLE t1(
a INTEGER PRIMARY KEY,
b INTEGER
);
在这张数据表里,声明
INSERT INTO t1 VALUES(NULL,123);
在逻辑意义上等价于:
INSERT INTO t1 VALUES((SELECT max(a) from t1)+1,123);
一个新的API函数 sqlite3_last_insert_rowid()
返回最近的插入操作的整形键
注意这个整型键始终比之前插入表中的最后一个键大1。新键相对于表中的已有键来说是唯一的,
但它可能与之前从表中删除的键值重叠。要始终得到在整个表中唯一的键,在INTEGER PRIMARY
KEY的声明之前加关键词AUTOINCREMENT.这样被选的键将总是比表中已存在的最大键大1。若可能的
最大键已存在于表中,INSERT操作将失败并返回一个SQLITE_FULL错误码.
(2) SQLite 支持 ......
1、SQLite简介
SQLite第一个Alpha版本诞生于2000年5月. 至今已经有9个年头了. SQLite也迎来了一个版本 SQLite 3已经发布.
SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。 ......
再说在linux下建立.a 和点so
到网站下载 sqlite-amalgamation-3.6.22.tar.gz 这个包,反正我下了sqlite3-3.6.22.bin.gz解压后编译不了。
解压,运行
# ./configure --host=armv5l-linux --prefix=/opt/sqlite3/arm --enable-threadsafe.
--host=armv5l-linux表示所用的平台。如果是x86平台,就不用加这句话,注意,我的编译器是armv5l-linux-gcc,如果用的编译器是arm-linux-gcc,那么应该输入--host=arm-linux。
--prefix=/opt/sqlite3/arm。表示安装路径,如果不输入,安装时装到隐藏目录。
--enable-threadsafe.允许多线程。
#make
#make install
在arm/lib下有了*.so 和 *.a 了,配合sqlite3.h ,就可以调用SQLTE的接口了。
......
sqlite数据库第三方java扩展包下载地址:http://www.zentus.com/sqlitejdbc/
有2个包,一个是nested(嵌入式的),一个是native(本地的)。
区别在于:nested 不需要额外的dll文件,但是速度慢。native需要一个额外的dll文件,速度很快。
1.使用nested包:sqlitejdbc-v037-nested.jar
java代码:
java 代码
package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Test {
public static void main(String[] args) throws Exception {
System.setProperty("java.library.path", "C:/TDDOWNLOAD/SQL");
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:e:/testdb.db");
&nb ......
sqlite数据库第三方java扩展包下载地址:http://www.zentus.com/sqlitejdbc/
有2个包,一个是nested(嵌入式的),一个是native(本地的)。
区别在于:nested 不需要额外的dll文件,但是速度慢。native需要一个额外的dll文件,速度很快。
1.使用nested包:sqlitejdbc-v037-nested.jar
java代码:
java 代码
package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Test {
public static void main(String[] args) throws Exception {
System.setProperty("java.library.path", "C:/TDDOWNLOAD/SQL");
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:e:/testdb.db");
&nb ......
/*=================================
.* The Standard include file.
.*
.*===============================*/
#include <stdio.h>
#include <stdlib.h>
/*=================================
.*
.* The extend include file.
.*
.*===============================*/
#include "sqlite3.h"
/* #include "sqlite3ext.h" */
int main()
{
/* Connect SQLite system. */
sqlite3 *pDatabase = NULL;
int result;
char sql[500];
char *err_msg = NULL;
int i;
result = sqlite3_open("test.db3", &pDatabase);
if( result != SQLITE_OK ) {
printf("Failure to open the database.\n");
return -1;
} else
& ......
/*=================================
.* The Standard include file.
.*
.*===============================*/
#include <stdio.h>
#include <stdlib.h>
/*=================================
.*
.* The extend include file.
.*
.*===============================*/
#include "sqlite3.h"
/* #include "sqlite3ext.h" */
int main()
{
/* Connect SQLite system. */
sqlite3 *pDatabase = NULL;
int result;
char sql[500];
char *err_msg = NULL;
int i;
result = sqlite3_open("test.db3", &pDatabase);
if( result != SQLITE_OK ) {
printf("Failure to open the database.\n");
return -1;
} else
& ......