标签: sqlite

Sqlite和Python - 使用fetchone()返回一个字典?

我在python 2.5中使用sqlite3.我创建了一个如下所示的表:

   create table votes (
      bill text,
      senator_id text,
      vote text)
Run Code Online (Sandbox Code Playgroud)

我用这样的东西访问它:

v_cur.execute("select * from votes")
row = v_cur.fetchone()
bill = row[0]
senator_id = row[1]
vote = row[2]
Run Code Online (Sandbox Code Playgroud)

我希望能够做的是让fetchone(或其他一些方法)返回一个字典,而不是一个列表,这样我就可以通过名称而不是位置来引用字段.例如:

bill = row['bill'] 
senator_id = row['senator_id']
vote = row['vote']
Run Code Online (Sandbox Code Playgroud)

我知道你可以用MySQL做到这一点,但是有谁知道如何用SQLite做到这一点?

谢谢!!!

python database sqlite

28
推荐指数
4
解决办法
3万
查看次数

在SQLite中,准备好的语句真的能提高性能吗?

我听说过SQLite准备好的语句可以提高性能.我写了一些代码来测试它,并没有看到使用它们的性能有任何差异.所以,我想也许我的代码不正确.如果您发现我这样做有任何错误,请告诉我......

[self testPrep:NO dbConn:dbConn];
[self testPrep:YES dbConn:dbConn];

reuse=0
recs=2000
2009-11-09 10:39:18 -0800
processing...
2009-11-09 10:39:32 -0800

reuse=1
recs=2000
2009-11-09 10:39:32 -0800
processing...
2009-11-09 10:39:46 -0800

-(void)testPrep:(BOOL)reuse dbConn:(sqlite3*)dbConn{
    int recs = 2000;
    NSString *sql;
    sqlite3_stmt *stmt;

    sql = @"DROP TABLE test";
    sqlite3_exec(dbConn, [sql UTF8String],NULL,NULL,NULL);

    sql = @"CREATE TABLE test (id INT,field1 INT, field2 INT,field3 INT,field4 INT,field5 INT,field6 INT,field7 INT,field8 INT,field9 INT,field10 INT)";
    sqlite3_exec(dbConn, [sql UTF8String],NULL,NULL,NULL);

    for(int i=0;i<recs;i++){
        sql = @"INSERT INTO test (id,field1,field2,field3,field4,field5,field6,field7,field8,field9,field10) VALUES (%d,1,2,3,4,5,6,7,8,9,10)";
        sqlite3_exec(dbConn, [sql UTF8String],NULL,NULL,NULL);
    } …
Run Code Online (Sandbox Code Playgroud)

sqlite performance prepared-statement

28
推荐指数
2
解决办法
2万
查看次数

限制sqlite表的最大行数

我希望实现一种"活动日志"表,其中用户执行的操作存储在sqlite表中,然后呈现给用户,以便他们可以看到他们已完成的最新活动.但是,当然,我觉得没有必要保留每一段历史记录,所以我想知道是否有办法配置表,一旦达到最大设置限制就开始修剪旧行.

例如,如果限制为100,并且表中当前有多少行,则插入另一个操作时,将自动删除最旧的行,以便始终最多包含100行.有没有办法配置sqlite表来执行此操作?或者我必须经营一个cron工作?

澄清编辑:在任何给定时刻,我想显示表格的最后100个(例如)动作/事件(行).

database sqlite database-design database-table

28
推荐指数
1
解决办法
2万
查看次数

如何将sqlite表从磁盘数据库复制到python中的内存数据库?

如何在python中将基于磁盘的sqlite表复制到内存数据库?我知道表格的架构.

python database sqlite copy

28
推荐指数
1
解决办法
2万
查看次数

Android系统.内容提供商或数据库?

我在这个问题上有点困惑,如果使用ContentProvider或者更好Database.或者,如果我不想与其他应用程序共享任何数据,则没有任何区别.

如果我理解正确,内容提供商基于数据库,SQLite并且它们的内容也可能只能访问我的应用程序.

你能解释一下吗?

非常感谢你,

穆尔

sqlite android android-contentprovider

28
推荐指数
2
解决办法
9344
查看次数

是否有像sqlite一样的任何nosql平面文件数据库?

简短问题:是否有任何nosql平面文件数据库可用作sqlite?

说明:可以在不同的进程中打开平面文件数据库进行读取,并保持一个进程写入.如果不需要严格的一致性,我认为它非常适合读缓存.说1-2秒写入文件甚至内存块,读者在此之后获得更新数据.

所以我几乎选择使用sqlite,因为我的python服务器读取缓存.但仍有一个问题.我不喜欢在另一个地方再次重写sqls并在sqlite中构建我的数据表的另一个副本,就像我在PostgreSql中用作后端数据库一样.

还有其他选择吗?谢谢!

python database sqlite caching nosql

28
推荐指数
2
解决办法
1万
查看次数

如何使用PHP连接到SQLite3数据库

我是SQLite3和PHP的新手,想知道是否以及如何使用PHP连接到SQLite3数据库.

我如何从数据库中获取数据,是否可以在浏览器屏幕上输出它们?我一直在网上搜索一段时间,但找不到任何东西.

谢谢.

php sqlite

28
推荐指数
1
解决办法
6万
查看次数

SQL字符串值跨越查询中的多行

更新:bio可能包含撇号(参见更新示例)

我有一个SQL查询,其值跨越多行,并导致查询失败:

UPDATE User SET UserId=12345, Name="J Doe", Location="USA", Bio="I'm a
bio that has an apostrophe, and I'm 
spanning multiple lines!" 
WHERE UserId=12345
Run Code Online (Sandbox Code Playgroud)

在C#中,您可以@在字符串之前放置一个Bio=@"..." 以允许它跨越多行,但我不确定如何使用SQL查询实现相同的功能.你如何得到一个跨越多行的字符串,而不必像手动连接字符串那样:

Bio="I'm a"
+" bio that has an apostrophe, and I'm"
+" spanning multiple lines!" 
Run Code Online (Sandbox Code Playgroud)

sql sqlite string

28
推荐指数
1
解决办法
9万
查看次数

SQL - 插入行并返回主键

我有点诙谐的问题.比如说,我在一个存在主键的表中插入了一些包含一些数据的行.如何"选择"刚刚插入的行的主键?

我应该更具体,并提到我目前正在使用SQLite.

sql sqlite row insert primary-key

28
推荐指数
4
解决办法
7万
查看次数

在尝试保存大(ish)整数值时,获取指示数字的错误"超出ActiveRecord :: Type :: Integer且限制为4的范围"

我在我的Ruby应用程序中使用SQLite + ActiveRecord,这是我在尝试向整数字段写入一个大数字时得到的错误:

1428584647765超出ActiveRecord :: Type :: Integer的范围,限制为4

但根据SQLite文档:

该值是有符号整数,存储为1,2,3,4,6或8个字节,具体取决于值的大小.

8个字节是存储整数1428584647765的足够空间,那么为什么ActiveRecord会给我一个错误?为什么它认为这是一个4字节的字段?

ruby sqlite activerecord

28
推荐指数
3
解决办法
2万
查看次数