db = sqlite.connect("test.sqlite")
res = db.execute("select * from table")
Run Code Online (Sandbox Code Playgroud)
通过迭代,我得到与行相对应的列表.
for row in res:
print row
Run Code Online (Sandbox Code Playgroud)
我可以得到列的名称
col_name_list = [tuple[0] for tuple in res.description]
Run Code Online (Sandbox Code Playgroud)
但是有一些功能或设置来获取字典而不是列表吗?
{'col1': 'value', 'col2': 'value'}
Run Code Online (Sandbox Code Playgroud)
或者我必须自己做?
如何在Android中的SQlite中使用预准备语句?
我以编程方式创建了一个sqlite数据库,使用默认的扩展SQLiteOpenHelper和覆盖方式onCreate().这样,db就会在需要时动态创建.
我想用sqlite浏览器检查OS X机器上db文件的内容.我知道db文件的名称,但我在设备上找不到它.我已经通过USB连接到设备并查找了finder和终端,但我找不到db文件.
android设备上的sqlite数据库的默认位置是什么?
我试图primary key在Sqlite3中创建一个自动递增的表.我不确定这是否真的可行,但我希望只需要指定其他字段.
例如:
CREATE TABLE people (id integer primary key auto increment, first_name varchar(20), last_name varchar(20));
Run Code Online (Sandbox Code Playgroud)
然后,当我添加一个值时,我希望只需要这样做:
INSERT INTO people
VALUES ("John", "Smith");
Run Code Online (Sandbox Code Playgroud)
这甚至可能吗?
我在Windows 7 sqlite3下运行cygwin.
是否可以SQL在SQLite表中使用来替换字符串的一部分?
例如,我有一个表,其中一个字段保存文件的路径.是否可以替换部分字符串,例如
c:\afolder\afilename.bmp
Run Code Online (Sandbox Code Playgroud)
变
c:\anewfolder\afilename.bmp
Run Code Online (Sandbox Code Playgroud)
?
如何获得SQLite中两个日期之间的天数差异?我已经尝试过这样的事情:
SELECT Date('now') - DateCreated FROM Payment
Run Code Online (Sandbox Code Playgroud)
每次返回0.
我使用CREATE TABLE AS语法在Sqlite 中创建了一个基于SELECT语句创建表的表.现在这个表没有主键,但我想添加一个.
执行ALTER TABLE table_name ADD PRIMARY KEY(col1, col2,...)给出语法错误"near PRIMARY"
有没有办法在表创建期间或之后在Sqlite中添加主键?
编辑:"在创作过程中"我的意思是在创作过程中CREATE TABLE AS.
这可能是一个愚蠢的问题,但我是SQLite的新手,我似乎无法解决这个问题.我有了列1台KEY_ROWID,KEY_NAME,KAY_LATITUDE,和KEY_LONGITUDE.我希望用户能够选择一个并删除它; 任何人都可以给我一个开始的方向吗?我的问题是实际删除了只给出其名称的行.
相关代码:
public class BeaconDatabase {
public static final String KEY_ROWID = "_id";
public static final String KEY_NAME = "beacon_name";
public static final String KEY_LATITUDE = "beacon_lat";
public static final String KEY_LONGITUDE = "beacon_lon";
private static final String DATABASE_NAME ="BeaconDatabase";
private static final String DATABASE_TABLE ="beaconTable";
private static final int DATABASE_VERSION = 1;
private DbHelper helper;
private final Context context;
private SQLiteDatabase db;
public BeaconDatabase(Context context) {
this.context = context;
} …Run Code Online (Sandbox Code Playgroud) 我需要在列表视图中显示SQLite结果.当然,我需要分页结果.
第一种选择是使用LIMIT子句.例如:
SELECT * FROM Table LIMIT 100, 5000
Run Code Online (Sandbox Code Playgroud)
它返回记录5001到5100.问题是内部SQLite"读取"前5000条记录并且效率不高.
当有大量记录时,分页的最佳方法是什么?
我有一个Android项目,它有一个包含两个表的数据库:tbl_question和tbl_alternative.
要使用问题和替代方法填充视图,我使用游标.在我尝试加入这两个表之前,获取所需的数据没有问题.
Tbl_question
-------------
_id
question
categoryid
Tbl_alternative
---------------
_id
questionid
categoryid
alternative
我想要以下内容:
SELECT tbl_question.question, tbl_alternative.alternative where
categoryid=tbl_alternative.categoryid AND tbl_question._id =
tbl_alternative.questionid.`
Run Code Online (Sandbox Code Playgroud)
这是我的尝试:
public Cursor getAlternative(long categoryid) {
String[] columns = new String[] { KEY_Q_ID, KEY_IMAGE, KEY_QUESTION, KEY_ALT, KEY_QID};
String whereClause = KEY_CATEGORYID + "=" + categoryid +" AND "+ KEY_Q_ID +"="+ KEY_QID;
Cursor cursor = mDb.query(true, DBTABLE_QUESTION + " INNER JOIN "+ DBTABLE_ALTERNATIVE, columns, whereClause, null, null, null, null, null);
if (cursor != …Run Code Online (Sandbox Code Playgroud)