今天在不同的地方看到有关这个数据库软件的名字,好奇心驱使下我来到了sqlite.org站点,查看了关于它的介绍,并下载了windows下的执行码和python绑定包。
windows版根本不用安装,解开到任何地方即可。它只有一个执行码。它的设计目标是嵌入式的,从而不需要server进程。运行时只要后面带上文件名,那么那个文件就会做为你的库文件而使用。如:sqlite d:/mydb.db。它支持大部分的sql命令,这是一个列表:
它还提供了虚拟机用于处理sql语句,这是一个很有趣的东西。支持事务功能。
Python的绑定安装也很简单,下载安装包执行后一切就OK了。运行一下,很正常。
看一看在一些简单语句的处理性能与MysqL和postgresql的比较,除了一些不常用的语句外,竟然比其它两个都快,了不起。
它还有Tcl,PHP,Java的绑定。甚至还有ODBC接口。
这些东西全部是免费的。
我想以后做些小东西,用它保存数据真是方便不过了。
咦咦咦?
比ZODB 还要轻便哪!马上学习!
Zoom.Quiet—— 2004年04月23日 @9:25 am
我下了一个,但不会用,E文太差了,能介绍一下Python如何使用它吗?
Python的绑定已装好,但文档不太理解,说得简
单了点。
ibrick—— 2004年07月04日 @3:03 am
好的,我回头会写一个简单的入门教程,列出一些基本的操作。有兴趣请关注我的Blog。
limodou—— 2004年07月04日 @11:30 am
太谢谢你了;)
ibrick—— 2004年07月04日 @2:57 pm
用Python处理sqlite时,用什么方法得到数据库有多少表格,每个表格的结构怎么样,有多少记录?看了一下Python–>sqlite的源码“main.py”,里面有一个PgResultSet好象与此有关,但不知怎么用。能抽空提点一下吗?先谢谢了。。
ibrick—— 2004年07月07日 @6:48 pm
现在我还不太知道。因为你不是做一个通用的数据库管理工具,而是针对数据库的一个具体的应用。因此,你肯定是知道库里有多少个表,每个表的字段是什么的。
一个简单的方法,你可以安装sqlite命令行工具。在命令行下,如:
sqlite test.db
sqlite> .schema catalog
你会看到catalog的表结构,在我的示例中为:
create table catalog (
id integer primary key,
pid integer,
name varchar(10) UNIQUE
);
create index catalog_idx on catalog (id asc);
可以看到建表的语句,表中的字段,是否有主键等等,还有索引信息。
不知这样是否可以满足你的需要?
limodou—— 2004年07月07日 @7:44 pm
在sqlite命令行下,执行
sqlite>.tables
就可以知道有哪些表名了。
想知道有多少记录,可以执行
sqlite>select count(*) from catalog;
1
后面的分号一定要写。
limodou—— 2004年07月07日 @7:49 pm
非常感谢你的帮助,本来我就对.schema的用途搞不清,现在知道了,真好!
E文太差害人啊!
刚下载了Pysqlite(0.5.0) for linux 的包,里面有例子,大乐中!!
粗看了一下,应该能解决我的问题,搞懂了贴上,你再指点一二,好吗?
原先我下载的是for win的,里面文档、例子都没有,连测试也没,气闷!! 这是系统歧视?:-(
ibrick—— 2004年07月07日 @10:31 pm
在数据库理论中表的英文就有用schema的,有的使用table。有什么想法可以交流。其实我sqlite我用得也不多,但感觉用在个人软件中非常方便。我用的就是windows下的,不过是看着主页上的文档(文档中有一些例子),又参考了DB-API的说明来测试的。pysqlite许多地方都是按DB-API来实现的,有兴趣你可以先了解一个它,再看看pysqlite是否实现了。
limodou—— 2004年07月07日 @11:41 pm
知道是按DB-API来实现的,在网上来回搜了N遍,无中文译本,下了DB-API 2.0的网页,慢慢啃,要知道我是不是学计算机的,搞这个是个人兴趣,电脑是用了很多年了,全是自学,一些专用的、比较专业的词(只指英文)不太懂。不会编程是我的遗憾,Python给了机会,所以想好好学学,让电脑真正为我所用。我的周围都是玩游戏的,我是怪物,他们找我一定是电脑完玩了,哈! 不是科班的,周围没有可直接交流的对象,进步?踏步尔矣:<
就说sqlite吧,我早就下了,可我看不懂文档啊,只能慢慢翻译,只是不懂的东西太多,想到了只有苦笑,sql也没学过,找来了Postgresql 7.2 Documentation,是中文的特感激他们–Postgresql 中文网站。这样东拼西凑,用了能用的所有工具如金山,网上的英->中工具等,到现在还没完成。有时一圈找下来,当初的目的都忘了,真累啊
DB-API就是那时了解到的。说了大堆的废话挺乐,感谢你的Blog,你的回复:-)
ibrick—— 2004年07月08日 @12:55 am
原来如此。编程是一件很有趣的事,特别是当你编出的程序对自已的工作,对别人有帮助时你会有一种成就感。这种成就感就是一个程序员的乐趣。有问题或不明白的问题请提出来,我们一起交流。
limodou—— 2004年07月08日 @5:17 pm
请教你几个问题啊,我这里正在做一个嵌入式项目的开发,我们看中了sqlite存数据部分。现在由我去熟悉它,但我很有些疑惑:
1、首先,我们这个项目几乎是由java开发的,我不知道怎么和这个用c写的sqlite联系起来,不知道如何用java写的语句访问它
2、你说这个有java绑定,我好象没找到,就看到个什么tcl的绑定啊,就算有了java接口,我该怎么用?
3、我下了个sqlite3.exe,是个dos命令行,你说的什么
sqlite test.db和sqlite d:/mydb.db都说有Syntax错误啊??怎么回事?不知道怎么建立一个数据库名为ex1的数据库,还有这个数据库应该是文件的形式建立的,不知道是不是先建立文件,或者这个文件名和数据库名相同~
谢谢了!!!
如果你有qq,能加我qq么?11389698
鸭子—— 2004年09月26日 @8:53 pm
1.见第2个回答
2.关于Java的绑定我是看到页面上面有介绍,因为我不用Java,所以没有试过。你没找到链接是因为不太仔细。这里是链接:http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers有了接口就和一般的模块一样调用吧。应该有例子的,可以看一看。
3.我的Blog已经说明“运行时只要后面带上文件名,那么那个文件就会做为你的库文件而使用。如:sqlite d:/mydb.db”,这些我都试过没有问题,不知道你是如何试的。sqlite一个文件就是一个库,在执行sqlite d:/mydb.db时,如果这个文件不存在就会创建一个新的,如果已经存在就打开这个文件。打开一个文件就直接使用它里面的表就可以了,不用再指定数据库的名字。
limodou—— 2004年09月26日 @9:47 pm
我模拟一下它的界面。
一开始运行的时候都是这个样的:
sqlite version 3.0.7
Enter ".help" forinstructions
sqlite>_
我输入sqlite d:/mydb.db
sqlite version 3.0.7
Enter ".help" forinstructions
sqlite> sqlite d:/mydb.db
…> ;
sql error:unrecognized token:":"
sqlite>
ps:如果这样输入
sqlite test.db,它是不会出现
sqlite> 等待你输入的,
而是这个…> 好象表示没有结束一样,我加个分号,就出来出错信息了~~就像上面的一样
唉,人笨没办法~~~请解答
duck—— 2004年09月27日 @10:32 am
呵呵。你的错误就是把命令行与sqlite的命令给弄混了。sqlite d:/mytest.db 是在dos命令行下执行的,不是在sqlite自已的shell环境下执行的。再试试吧。
limodou—— 2004年09月27日 @11:56 am
大哥,你就给我一个痛快吧~~~
不知道你这个命令行从哪来的,总不会是点运行->输入cmd->直接敲sqlite。。。系统也不认啊~~
“一个简单的方法,你可以安装sqlite命令行工具。”不知道怎么安装,是不是装了什么.dll文件,然后配置环境变量,最后就可以了?急死,一个小问题把我搞成这样~~
真正困难的jdbc部分还没开始做呢~~~~哭死~~
duck—— 2004年09月27日 @2:54 pm
能不能通过odbc连接sqlite
QQ:304198791—— 2004年10月09日 @6:20 pm
没试过。去sqlite的网站看一看行不行吧。
limodou—— 2004年10月09日 @8:25 pm
鸭子的问题我也遇到了
大哥,这到底怎么回事
到底在哪里输入 sqlite d:/mydb.db
orange—— 2004年10月22日 @9:41 am
在命令行啊,兄弟们。
limodou—— 2004年10月22日 @10:18 am
可以这样操作
devil—— 2004年10月24日 @11:38 am
我想用C来调用,怎么做呀?谁能够翻译一下sqlITE函数的功能说明。
cjs—— 2004年10月27日 @8:44 am
在C下调用应该和一般的库方法一样,我没有试过,不过一般在C下调用一个库不外乎包含头文件,调用函数,可能有一定的调用规则,比如先初始化,然后执行,最后释放。再有就是make时把需要的库加进去。应该就是这样。自已试试吧。
limodou—— 2004年10月27日 @7:22 pm
请问Limodou
我在linux下装的sqlite不知道怎么attach命令,请指点。
tower—— 2004年10月28日 @8:54 pm
我没有试过。不过它放在语法中应该是可以在api中进行调用的,写在程序中的。在sqlite的交互环境下好象不可以直接这样做。
limodou—— 2004年10月29日 @3:39 pm
大哥,我也想用这个东西啊,你的教程有没有写好啊?可以发出来给兄弟门看看好么?谢谢了,我遇到的问题和那个duck的一样,呵呵,到底怎么才能够用啊? 我门都是文盲,期待着您的点播,请写点详细一点的傻瓜级读物给我们么?谢谢谢谢了
imlh—— 2004年11月01日 @10:16 pm
因为我研究的是python。在我的blog中只有关于python的教程。至于duck的问题,那是要在命令行下执行。并且要注意你下的到底是什么版本的。如果是3版,那么执行文件是sqlite3,如果不是,则执行文件是sqlite。
怎么启动sqlite带数据库:
c:/sqlite> sqlite test.db
在dos提示符下运行上面的命令就可以打开一个数据库了。如果这个库文件不存在则会新创建,如果已经存在则打开。剩下许多命令都可以先在启动后的交互环境中学习了。
limodou—— 2004年11月01日 @11:09 pm
好东西啊
smilerain—— 2004年11月02日 @1:06 pm
c:/sqlite>命令行如何对已经存在的表结构中的字段进行增加或减少?
我想给一个已经存在的表中增加一个字段,以前建表的时候漏了,现在添加记录时发现少了一个字段,怎么增加啊?
studysqlite—— 2004年11月12日 @10:42 am
好象sqlite现在不支持改表结构。只能删了重建。
limodou—— 2004年11月12日 @10:47 am
谢谢limodou,看了你的文章清晰多了^_^
PHPlover—— 2004年12月15日 @3:58 am
Ping Back来自:blog.csdn.net
onefish—— 2004年12月21日 @8:28 pm
请问创建时它怎么知道你的表的结构啊?
比如说该表需要有哪些子段
假设表是通过程序创建并管理的,不是事先就有的
陈浩—— 2004年12月27日 @1:33 pm
可以使用create来建表呀。刚开始肯定是空的,需要你自已建。或者直接使用sqlite命令行来建,或者在程序里建。
limodou—— 2004年12月27日 @1:52 pm
那我很纳闷,假设对于已经存在的表,我使用create命令,会有问题么?^_^
嘿嘿见笑了,我不是搞数据库的,是做嵌入式的,最近我们需要开发一个计费系统,需要在设备里面存储计费信息,由于不可能用太大的数据库,目前考虑使用sqlite。请问对于数据量比较大的情况,不知道该数据库的性能是否有保障?
多谢了!!
陈浩—— 2004年12月28日 @4:38 pm
在我的经验中,一般建表的操作都是单独完成的。比如手工或通过脚本来完成。而程序只进行对表的操作。当然在你已经知道存在表的情况下,可以先drop掉,然后再create。对于已经存在一个表直接创建会报错的。而且我想sqlite可能是有方法得知一个表是否存在,这一点要查sqlite的文档才知道。因为我平时不这么用,因此不太清楚。
因此我的建议,做一个初始化的功能,此操作与你的程序分离。它的功能就是创建环境,建库建表等。
至于它的性能应该是可以的,它的主页上面有一个性能的比较,你找一找吧。
limodou—— 2004年12月28日 @5:17 pm
谁能告诉我sqlite在C中需要哪些文件?谢谢
waft—— 2005年02月20日 @4:14 pm
请问sqlite支持过程和函数吗?谢谢!!!我正在学习sqlite在C++中的应用,希望和大家多多交流。QQ:39143566
飘荡—— 2005年03月23日 @2:55 pm
大家讨论的很热闹吗!我是昨天才知道了这个数据库,用了一下,很好用。
hansy—— 2005年03月29日 @11:14 am
只可惜它是用c做的,好多年没有看C程序了,看它的源代码太费力了,幸好我们是用JDBC 连接
hansy—— 2005年03月29日 @11:16 am
看程序当然很累了,能用就可以了。
limodou—— 2005年03月29日 @3:08 pm
确实有方法:如下
select tbl_name from sqlite_master
其中sqlite_master是系统内部的“系统表”
axgle—— 2005年04月02日 @3:22 am
limodou,你好,我是刚才在搜数据库的时候才知道有这么个轻巧的数据库的。我不是搞数据库的,对这方面不是很懂,最近要在我们的嵌入式系统中(arm7+uclinux)建个小型数据库,而考虑到我的flash只有2M,本身操作系统都要近1M,再添加个数据库貌似很难,但是刚才看到了sqlite,我似乎看到了希望,好象它只要占250k左右的空间,对吧?这样的话添加到我的操作系统中就没问题了。以后还要多多向大家学习哦!!
robinxu—— 2005年04月02日 @12:22 pm
limodou你好,我正在看sqlite,但有个命令我搞不懂,就是.dump,把数据库文件转成sql文本,怎么转?(我是Windows平台)
2DB—— 2005年04月06日 @10:55 pm
.开始的命令先要进入交互环境,就是在dos窗口下运行sqlite,这样会进入一个交互环境。敲入.help会看到交互环境下所用的命令。直接运行
.dump 表名
会将一个表的内容生成sql语句,显示在屏幕上。如果想输出到文件中去,要先执行
.output FILENAME
命令就行了。多看一看.help就行了。
limodou—— 2005年04月06日 @11:03 pm
是这样啊!要分两步走吗?我以为一个命令就能完成的。看了.help,就是.dump ?TAble? …这最后三个小点不明白是什么用意,我总觉得应该是一个命令就能完成的,在摸索一下。
2DB—— 2005年04月07日 @5:15 pm
终于找到组织了,呵呵~~
很开心在这里看到有这么多人在讨论sqlite的有关问题。可是交流好象还是慢了点。
斑竹,有什么方法加快大家关于在学习sqlite过程中对不懂的问题的交流吗?例如专门开个讨论区,或者建立一个qq群什么的。
Cooper—— 2005年04月08日 @10:40 am
呵呵。这只是我的个人Blog,并不是真正用来交流的。可以在google上建立邮件列表,如果你有兴趣可以建一个,我帮助你宣传一下。
limodou—— 2005年04月08日 @10:44 am
忘了说,我是个新手,正在学习sqlite,想给它建立一个c api,用于实现通过串口对sqlite建立的数据库进行操作。请大家多多指点。
Cooper—— 2005年04月08日 @10:47 am
大家一起学。不过我用得是python来访问sqlite和你不同。
limodou—— 2005年04月08日 @10:50 am
终于遇上斑竹了。呵呵。
您的blog虽然不是真正用来交流,但这也是我在网上看到的比较多的对sqlite的讨论了。多谢斑竹提供这个地方。其实在这里讨论也不错。只是不能及时看到谁在线,谁发表了新贴等。
对于我想建立的c api,我的思路是(我的sqlite是2.8.16版的):
1、设置串口参数
2、区分串口过来的字符是对数据库操作的命令和数据。
3、根据命令,利用
sqlite_open()
sqlite_close()
特别是sqlite_exec()
将串口想要执行的命令放到sqlite_exec()中,付上各参数和记录信息。
4、对数据库进行操作。
5、将结果通过串口传给上位机。
请各位提下建议和意见。谢谢!
Cooper—— 2005年04月08日 @11:00 am
Python我很感兴趣,据说很适合新手,但不知Python能开发一些怎样的软件,它的应用主要在什么方面,Limodou能不能说说。
2db—— 2005年04月08日 @1:36 pm
呵呵,我的Blog几乎全部是Python的东西,而且我也介绍过许多Python的应用,象我自已编的NewEdit是一个Python的编辑器,还有象使用Python作数据库,游戏,图形,web,网络,科学计算等等。太多了,说不过来。你想到的可能都有Python对应的模块。
limodou—— 2005年04月08日 @2:02 pm
to Cooper:
挺好呀。可以将处理分为两层,一层用于通讯处理,一层用于访问数据库处理。然后通讯层可以搞一个自已的简单协议,这样可以提高通用性。以后通讯层换了,访问层可以不变。
limodou—— 2005年04月08日 @2:04 pm
to limodou:
你的建议很好啊!这样结构比较清晰。
请问各位,有sqlite编程方面的资料吗?连接也可以呀。这东西就是资料少(包括英文),呵呵~~不过可能是自己英文差,没有找到。
如果是c语言的就更好了。谢谢
Cooper—— 2005年04月08日 @2:25 pm
sqlite主页上没有吗?它是开放源码的,应该可以找到许多的示例程序吧。我没有研究过C的调用。
limodou—— 2005年04月08日 @2:32 pm
我找到一本叫:sqlite Nov 2004
的书。里面讲了一些,大家可以去看看。
sqlite主页和它的maillist上有一些例子,可说得不够深入和有针对性。
不知道有没有更多这方面的论坛、maillist、code等。呵呵
Cooper—— 2005年04月08日 @2:42 pm
sqlite Nov 2004我刚看完,对sqlite有了一个较全面的了解。已经把Python的接口装上,测试已经成功,现在要攻Python了。sqlite是比较简单,很快就能掌握。现在发现除了sqlite3.exe这个文件外,还有一个sqlite.dll文件可用,不知道这个动态库怎么用?在什么地方用?
2db—— 2005年04月08日 @9:23 pm
没有用过。如果是使用python的话,python有相应的模块,它可以不用下载sqlite就可以使用。当然装一个进行管理还是方便的。python的只是用来编程的。
limodou—— 2005年04月08日 @10:55 pm
“如果是使用python的话,python有相应的模块,它可以不用下载sqlite就可以使用。"——是不是sqlite.exe的功能它都有呢?
2db—— 2005年04月09日 @12:02 am
不是。python 下的模块没有命令行工具,因此许多管理功能就没有了。只是用来通过程序访问的。
limodou—— 2005年04月09日 @12:25 am
斑竹:请问sqlite可以运行在uc/os-ii上吗?如果不行,那另外一个数据库berkeley db能不能运行在uc/os-ii上?
Cooper—— 2005年04月14日 @3:57 pm
我不太清楚,我都不知道uc/os-ii是个什么东西。
limodou—— 2005年04月14日 @8:31 pm
to cooper:我准备做的和你的几乎一样,现在也在学习sqlite,如果可以,请网上交流一下。我的qq:303904405
qianli—— 2005年04月15日 @11:01 am
我没有看到关于uc/os-ii嵌入sqlite,不过看到sqlite嵌入到uclinux里,我现在就是做这。
qianli—— 2005年04月15日 @11:05 am
fda
Andy—— 2005年05月12日 @10:20 am
to robinxu:
我跟你做的东西差不多,也是嵌入式方面的,我已经把sqlITE烧到了班子上,可以直接用了。但是c编程调用不是很熟悉。不知道有没有这方面的资料。我已经把sqlite官方网站的manual下载下来并作了整理。如果谁要的话可以发邮件联系sunsyc2001@yahoo.com.cn
Andy—— 2005年05月12日 @10:26 am
哇,我仔仔细细地看了大家的交谈近一个小时.
强啊,这个东东跨平台好用么?
jies—— 2005年05月24日 @4:41 pm
我觉得不错。功能挺全,小巧,支持事务。
limodou—— 2005年05月24日 @8:23 pm
俺也是要开发一套嵌入式终端,需要用sqlite作数据库部分,可是以前没怎么接触过sql阿,请问各位大虾怎么开始看书吗?我用的是c语言,以后要移植到uclinux上去。
现在有点摸不着头绪!
sqlite Nov 2004这本书谁有?能传给俺一份么?小女子谢了~~~
cingis—— 2005年05月26日 @3:58 pm
忘了说我的邮箱地址了呵呵:cingis@163.com
thx~~
cingis—— 2005年05月26日 @4:04 pm
sql在上学时在工作中学的。在学校学习了基本的数据库的知识和sql的操作,在工作中学习了具体的数据库的使用,我学的是informix,但sql基本上都是一样的,区别一般是sql中可以使用的函数。其它的差别不大。
limodou—— 2005年05月26日 @9:30 pm
请问sqlite源文件中它的主文件是哪一个,有没有关于它的整个源程序的文件调用流程
nplcyox—— 2005年05月28日 @11:03 am
sqlite如何与.net平台进行接口
nplcyox—— 2005年05月28日 @11:05 am
我没有看过sqlite的源文件,不清楚哪个是主文件。如果想同时访问.net的话,就我了解可以使用python.net模块,它既可以访问cpython下的东西也可以访问.net下的东西。
limodou—— 2005年05月28日 @5:25 pm
sqlite Nov 2004这本书谁有?能否发到我的邮箱:nplcyox@tom.com来。谢谢了
nplcyox—— 2005年05月28日 @8:29 pm
sqlite运行流程如下:
Interface(main.c table.c tclsqlite.c)–>
Tokenizer(tokenize.c 字符标记过程)–>
Parser(parser.c 词法解释器)–>
Code Generator(build.c delete.c insert.c ..)–>
Virtual Machine(vdbe.c)–>
B-tree Driver(btree.c)–>
Page Cache(paper.c)–>
OS Interface(oh.c)
lujun—— 2005年05月31日 @2:28 pm
cingis Andy robinxu:
我的学习方向亦为ARM+uClinux。
希望sqlite能胜任嵌入式数据库。
QQ:70259435
lujun—— 2005年05月31日 @2:37 pm
感谢斑竹的地盘!呵呵。。
lujun—— 2005年05月31日 @2:37 pm
呵呵,已经成了论坛了。
limodou—— 2005年05月31日 @2:56 pm
请问sqlite它是从哪一个文件开始进行编译的
nplcyox—— 2005年06月01日 @3:53 pm
偶遇到了个问题,
大家帮帮忙,
如何修改表的结构啊.
比如原来的integer类型改成varchar(50)
不会是要先删除表吧
jies—— 2005年06月02日 @3:00 pm
sqlite支持大部分的sql92语法
lujun—— 2005年06月02日 @4:33 pm
但很遗憾,尚只能更改表名及增加列。
lujun—— 2005年06月02日 @5:20 pm
大家好,昨天刚发现sqlite,确实挺不错,源码量也挺小的可以写出这个东东来,不错!
昨晚试着去掉shell那块编译了一下,还算通过了,以后可以嵌入到自己程序中,挺爽的。
只是有个问题想请教大家,今天下了个python的模块来测试,发现他有个挺麻烦的问题sqlite的模块对象只能在单线程中使用,从另一个线程引用其他线程创建的数据库对象会提示只有创建那个线程才能引用,即使锁住了也不行,这个好遗憾,有什么解决办法吗?还是我的测试有问题?请指教!
moncat—— 2005年06月10日 @7:59 pm
今天看了sqlite的文档说支持多线程呀。没必要在多线程中使用同一个连接对象,多建几个没有关系的。
limodou—— 2005年06月14日 @9:22 pm
弱弱地问:大家如何在sqlite中进行数据的排序和字符替换?以下这两句不管用,大家试试:
1、原表排序:select * from 表名称 order by 字段名称 desc
2、字符5替换为1:update 表名称 set 字段名称=replace(字段名称,’5′,’1′) where 字段名称 like ‘%5%’
lxke—— 2005年07月03日 @2:23 pm
第一个没有问题呀。
第二个应该写为:
update 表名 set 字段名=值 where 字段名 = ‘5′
这里是精确比较。如果使用like也是可以的。
你那个replace是从哪里看来的?标准的sql中没有呀。
limodou—— 2005年07月03日 @3:40 pm
建议用用sqlite浏览器sqlitebrowser-1.2版,
目前中文支持不好
liniv—— 2005年07月04日 @5:26 pm
本人也在学习sqlite中,想通过sqlitebrowser-1.2互转数据库文件。
用sqlitebrowser-1.2导入一个大的CSV文件时死机,郁闷中…
liniv—— 2005年07月04日 @5:38 pm
sqlitebrowser我没有用过,可以试一试sqlite3explorer试试。再不行就写程序吧。
limodou—— 2005年07月05日 @8:24 am
1.先将数据按顺序卸下来,再装回去的重新排序方法实际与搜索出排序记录集已没有根本区别,不说也罢;
2.通过 where 字段名 like ‘%5%’ 可以找到含有5的字符,这是没有问题的,问题在于如何把他替换成2,set 字段名=值 替换的是具体的值而不是替换某个字符,我们不能把所有含有5的记录全部变成值为2的数据.如1534变成1234.
再次表示感谢!!
lxke—— 2005年07月06日 @11:07 am
2.原来是这样。我想不出只使用sql能做到吗?要是我只能写程序来替换了。
limodou—— 2005年07月06日 @12:00 pm
limodou:
谢谢你的答复,可能我的问题可能没有说清楚
1、希望实现sqlite原表的重新排序,而不是通过搜索排序记录集,这个有没有办法;
2、你提供的update 表名 set 字段名=值 where 字段名 = ‘5′ 只能对指定值的精确更新,而我要的是对任意字符的更新,比如表A字段B任意记录内含有字符2的都替换为5。
lxke—— 2005年07月06日 @7:16 am
1. 重新排序当然可以,不过要先将数据按顺序卸下来,再装回去。但有一个问题就是,如果插入数据可能就破坏了原来的顺序,可能需要更重新导一遍数据,为什么要这样做呢?
2. 我那个只是一个示例,你完全可以把where 字段名=’5′改为where 字段名 like ‘%5%’ 就和你想得一样了。而且我也说了,“使用like也可以”,你可能没试吧。
limodou—— 2005年07月06日 @8:51 am
你说的对,今天和其他朋友讨论时认为除非支持replace,负责不可能达到,sqlite是不支持replace的,只能通过读写来替换了,这样做就慢多了.
奇怪的是我用replace这句系统并没有提示出错
lxke—— 2005年07月06日 @9:01 pm
这个就不太清楚了。
limodou—— 2005年07月06日 @9:08 pm
源码我怎么编译通不过
说:不能打开tcl.h头文件。
这是怎么回事呀
可源码里没有tcl.h头文件呀
我该到那去弄tcl.h头文件
fan—— 2005年07月15日 @1:28 pm
我没有直接从源码编译过,建议你先仔细看文档,看它到底要求哪些条件,如果解决不了可以订阅sqlite的邮件列表提问,不过还是先查一下它的归档文件为好。
limodou—— 2005年07月15日 @2:08 pm
好热闹呀,
这一段一直在做sqlite的移植实验,想把它放到arm+uclinux上,参考了余涛的那篇移植文章,可是总是做不成功,他的方法基本上是看不懂.大家有没有别的办法?
我有一个思路,可是总是做不对:
既然是移植,那就做交叉编译吧,我直接去sqlite/makefile中,修改它的TCC和BCC为arm-elf-gcc,结果不行,还需要修改别的什么东西呢?
这种方法是不是太幼稚了??可是我感觉可以.
期待大家的好方法!!!
nlxswig—— 2005年07月16日 @11:43 am
最近自己用VC写了从CSV文件导入sqlite3数据库。
使用 insert into 方法导入。
速度实在太慢,约 500条/分钟(每条只有6列)。
(cpu:1.5G,256M内存)
sqlite3有提供批量、或者大数据写入的方法吗?我没找到。
谁知道有什么快的方法?
liniv—— 2005年07月27日 @5:19 pm
liniv:你的从CSV文件导入sqlite3数据库为什么这么慢,我没试过,但我从其他方法导入数据很快.
另如何跨数据库复制或添加记录?
lxke—— 2005年07月27日 @6:12 pm
sqlite使用的时候一定要注意使用事务处理,否则速度会很慢。
xlp223—— 2005年07月27日 @8:45 pm
to lxke:
可以卸出成sql语句,然后再添加到其它数据库中。
limodou—— 2005年07月27日 @10:24 pm
to lxke:
您说的“其他方法导入数据很快”,
能否告知用什么方法导入数据?谢谢!
liniv—— 2005年07月28日 @12:41 pm
to xlp223:
使用了事务处理,批量导入数据,果然快多了。谢谢!
简单比较如下:
从CSV文件导入到sqlite库,共20840行,6列(每项数据都不大)
1、直接使用insert into,没有使用事务处理,需40分钟;
2、加入事务处理后,仅15秒
liniv—— 2005年07月28日 @2:50 pm
可以使用非常接近PHPMYADMIN的sqlite管理程序:
WTCsqlITE 设置
下载WTCsqlITE:http://www.webtrickscentral.com/
下载解压到你的PHP服务器目录下。
用户名和密码设置:
用记事本打开 /includes/config.xml.PHP,明码修改用户名和密码
COOKIE设置:
用记事本打开 /includes/functions.PHP, 在function checkPerms()内,改:
setcookie(‘wtcsqlite_username’,$info['username'],null);
setcookie(‘wtcsqlite_password’,md5(md5($info['password']) . md5(’05salty05′)),null);
即去掉COOKIE设置的域和路径。
这样就可以打开管理页了。
js5131—— 2005年08月02日 @6:32 am
今天试试用事务处理导入文本数据,原来1260行11列的数据要4分40秒,现在只要1秒就稿定,简直让我不相信自己眼睛,连试了几次都是如此。
大家还知道在什么地方用到事务比较好?在用表格显示大数据比如2-3万行数据的时候有没有办法让显示快点?
lxke—— 2005年08月07日 @4:10 pm
表格显示数据因为是装在内存中,而且要进行大量的GUI 操作,因此快不了,我想办法那只有采用虚拟表格,也就是说数据只装入部分,在需要时再装入。这样需要表格控件能够支持才行。当然我想功能上可能也会有一些限制。不过我没有试过。
limodou—— 2005年08月07日 @4:55 pm
我用的sqlITE数据库
select tbl_name from sqlite_master 找出来怎么有两个A啊 应该只有一个A表啊 其中一个是不是临时表啊?
CRYSTAL—— 2005年09月09日 @6:13 pm
应该不会。你再建一个新库看一看。
limodou—— 2005年09月09日 @7:36 pm
哦 是对的,是只有一个A,先不知道是怎么回事情。在我已经创建表A的情况下,我想把表A的名称改成B,数据结构都不变,请问怎么写语句,谢谢
CRYSTAL—— 2005年09月10日 @11:34 am
不知道是不是可以修改tbl_name,需要测试一下。也许还提供了alter table的命令。需要查一查。笨办法是先将表内容卸出,然后创建一个新表,再装回去。
limodou—— 2005年09月10日 @1:40 pm
大家讨论了很多关于事务处理的问题,我想问问具体是如何操作实现呢?
jamie—— 2005年09月15日 @8:33 pm
明天就要提交一个项目了,其中用到了sqlite,但目前在往库中写入数据时,爆慢无比阿!好痛苦!
望哪位大侠指点我一下如何解决这个问题,真的是非常感谢阿!!!
Jamie—— 2005年09月15日 @8:37 pm
各位前辈,怎么从C语言中调用sqlite的函数啊,开发的环境应该是什么样子的,烦请各位成功做过的多多指教啊!!谢谢拉!!谢谢,虽然这个问题很简单但是对我很重要 ,搞了好久没搞定啊
iviva—— 2005年10月02日 @10:33 pm
需要去sqlite的官方站看一看,我使用的都是python下的包,很简单,C的没有做过。
limodou—— 2005年10月02日 @11:35 pm
今天在狗蛋俱乐部发现一篇文章,转发170的:Limodou发布GT BOT独立运行版本。
我们楼主果然是个高手
lxke—— 2005年10月09日 @1:39 am
我的博客上有介绍sqlite,如何用C操作3.0,2.0以及其与MysqL 比较的文章,还有sqlite权威文章的翻译,欢迎访问.
wuxing—— 2005年10月09日 @11:23 am
斑竹大人:
小女子最近才接触sqlite,感觉还有很多地方很茫然,看了这么多前辈们的帖子才让偶有了点眉目,不过人太笨了,还是有很多地方搞不太懂.希望可以得到大家的指点.
偶的qq号是:59123765 加偶吧!
yolanda—— 2005年11月16日 @10:23 am
小声的问一句,怎样把其他的数据库的数据加到sqlite中!
比如access!
yolanda—— 2005年11月16日 @10:28 am
我不用qq,可以使用limodou@gmail.com加我的google talk
把其它的数据(如access)加入到sqlite,可以将数据生成insert语句,然后在sqlite中执行即可。
limodou—— 2005年11月16日 @10:39 am
要一条一条的插入吗?
可以整个数据表插入吗?
怎样加你的google talk ?
偶没用过!
yolanda—— 2005年11月16日 @11:36 am
呵呵!
原来是一个类qq工具,原谅偶的无知!
偶在下!
看看怎样使用!
yolanda—— 2005年11月16日 @11:39 am
偶没有gmail,怎么加入!
yolanda—— 2005年11月16日 @11:48 am
给我一个邮箱我发给你一个邀请。
把所有的数据生成一堆的insert语句,如:
insert into a(…) values(…);
insert into a(…) values(…);
insert into a(…) values(…);
然后在最前面加上:
BEGIN TRANSACTION;
在最后加上:
COMMIT;
这样就行了。
每行的;号可不能省啊。
limodou—— 2005年11月16日 @12:35 pm
数据非常大了?
近百万条数据就这样一条一条的加吗?
5555….不要!
手都会废了!
不可以批处理吗?
我的邮箱!
daiqin3814@sina.com
yolanda—— 2005年11月16日 @1:53 pm
没说让你手工加呀。你写一个程序把数据一条条生成insert语句,写到一个文件中。然后在sqlite中执行这个文件来进行插入呀。
limodou—— 2005年11月16日 @3:16 pm
整个表覆盖过去可以不?
yolanda—— 2005年11月16日 @3:42 pm
格式不同,如何覆盖。可以写一个程序,一边读一边写。
limodou—— 2005年11月16日 @4:04 pm
斑竹,有没有把地图数据添加到sqlite中的例子?
yolanda—— 2005年11月16日 @5:11 pm
没有。先把地图数据读出到内存,然后建议转为base64,再保存到数据库中。直接存二进制的不是很清楚。要测试才知道。
limodou—— 2005年11月16日 @5:34 pm
谁有 sqlite Nov 2004的书啊,能不能给我发个电子版啊,急用啊,发到jeffyh@126.com
jeffyu—— 2005年11月16日 @11:06 pm
呵呵这里人气好旺,我也在学习sqlite,只是现在遇到了一个问题,希望可以得到大家的帮助,谢谢:);
我用的是sqlite,c语言编程,程序运行在uclinux下面:
想把数据库里面的东西取出来放到我自己设定的变量里面存储起来,然后对这些数据进行操作,
不知道这样的功能该怎么实现.
查过一些资料,尝试用select * into var1 from testtable where ID== ‘1122′;
然后查看var1里面的值,发现是乱码;唉,看来是用错了:( 现在不知道该怎么办了
苏堤花开—— 2005年11月21日 @10:44 am
C语言的话它应该有例子的,找一找吧。
limodou—— 2005年11月21日 @10:56 am
看不下去了,C++调用的在www.codeproject.com中找
Cppsqlite是C++的封装包。
喝水不上火—— 2005年11月22日 @7:45 pm
呵呵谢谢哦:)
我再去看看
苏堤花开—— 2005年11月24日 @6:27 pm
我需要c++ API接口封装,谁知道哪里提供啊,有人用过吗
michael—— 2005年12月07日 @3:45 am
谁能帮我看看这问题怎么解决,到底sqlite怎么和PHP捆绑
我可用的是PHP5啊!晕死!
Fatal error: Call to undefined function sqlite_open() in D:/test/index.PHP on line 1067
PHP Warning: Cannot load module ‘sqlite’ because required module ‘pdo’ is not loaded in Unknown on line 0
饮九江—— 2005年12月17日 @5:45 pm
我已经N年不用PHP了。这个问题建议去PHP相关的论坛问一下。PHP不是已经绑定了sqlite吗?还会有问题?
limodou—— 2005年12月17日 @6:12 pm
我是sqlite新手,今天才接触的。主要是一个新项目中碰到一个如下格式的数据库:user.db,经在网上查找资料分析这个数据库可能是sqlite数据库。如果是的话,我如何打开他呢?请高手不吝赐教。QQ:120959077
jason.net—— 2005年12月28日 @12:19 am
一个程序自带了一个数据库Common.db,我想分析这个数据库,就去下载了sqlite3.2.8,在命令行中输入.tables,出现下面的错误:Error:file is encrypted or is not a database,请问如何解决啊?
jason.net—— 2005年12月28日 @12:32 am
苏堤花开 加我QQ 75532376
枫血如诗—— 2006年01月05日 @8:18 pm
新年了,怎么没人发言呢?
枫血如诗—— 2006年01月07日 @1:31 pm
为何:在开始->cmd->d:/到d盘
然后输入sqlite d:/test.db;—为何没有出现数据库
请问费的到dos下吗,在window下的dos可以吗?
军—— 2006年02月24日 @3:42 pm
如果刚开始什么都没有做,这个文件有可能不会生成。你执行一些sql语句再试试看。
limodou—— 2006年02月24日 @4:38 pm
请问怎么破解sqlITE数据库的密码??我忘记自己的密码了。
collins—— 2006年03月07日 @5:58 pm
没破解过。而且我根本没有设过口令。
limodou—— 2006年03月07日 @8:30 pm
sqlite数据库的介绍及站点资源
roger—— 2006年03月25日 @4:58 pm
这里的讨论对我很有帮助。我成功的将sqlite3移植到wince5.0下面了,在此表示对各位的感谢!
thank you—— 2006年03月30日 @11:29 am
楼上兄弟姐妹:
我在ARM+uclinux上移植sqlite,已成功移植,在/bin目录下生成了sqlite可执行命令,但我不想通过单行命令进行数据插入删除,而是通过函数sqlite_exec()等进行数据处理:
main()
{…
appsqlite(…);#数据库操作
…
}
Makefile 如何写阿?不盛感激!
betty—— 2006年03月30日 @1:09 pm
可以写一个文本文件,里而是insert()语句,前后加上:begin transaction; 和 commit; 语句。然后通过重定向去执行即可呀:
sqlite databasename < sqlfile
limodou—— 2006年03月30日 @2:25 pm
有没有人用过sqlite的浏览器 sqlite Database Browser 1.2.1,
它是如何与sqlite相关联起来的啊???我今天下来看了一下,实在没发觉它有什么好处,请教一下哈,这个东东究竟是用来做什么的呀???只是纯粹地执行操作一下sql语句吗????
lanjun—— 2006年03月31日 @1:33 pm
各位兄弟姐妹,问个问题,如何在liunx下用sqlITE语句进行多行插入?
最好把相关代码帮忙写下,谢谢了,另外如何提高查询速度,谢谢~!
急
枫血如诗—— 2006年05月23日 @6:07 pm
我还是希望看到介绍些postgresql与python的用法
scilab—— 2006年12月18日 @10:19 pm
不错收了 有空访问我的网站新朋友:)加个链接哦
tomisong—— 2008年04月10日 @4:57 pm
加上了。
limodou—— 2008年04月11日 @4:31 pm
不太懂python但这两天在弄PHP,正好可以用sqlite这个轻量级的数据库学一下sql指令,谁有比较好的教程推荐给我看一下,谢啦~~
@L_404_223@—— 2008年06月05日 @5:46 pm
个位朋友们.看了这么的理论性的东西,我不知道为什么还是安装不上.好心人可否告诉我具体怎么安装.谢谢了.(急需你们的帮助,我会感激不尽.我时间紧,可加加我QQ方便联系.谢谢了.421233115
枫飘絮城—— 2008年07月18日 @11:34 am
请问PHP写完程序要怎么编译执行啊,我的不能执行。请说一下,线谢谢了
LILY—— 2008年07月19日 @10:24 am
?????????????????????????????? » sqlite ??????
匿名—— 2009年03月16日 @4:52 pm
PHP是解释型语言
persky—— 2009年09月14日 @2:50 am