当谈到 sqlite 时,我是一个菜鸟,不太确定如何做到这一点。
我想要一个包含一堆行的数据库,每个包含一个单词。当用户输入一个单词时,我将通过检查它是否在数据库中来验证它。
我猜我没有的东西,也不知道如何创建,是索引吗?我该如何插入?如何编写查询以利用索引?
我也有两列,“id 和 word”。有id好还是只占空间?
这是我到目前为止得到的:
CREATE TABLE words (id INTEGER PRIMARY KEY, word VARCHAR(15));
我不希望单词超过 15 个字符,所以我设置了 VARCHAR(15);
INSERT INTO words(word) VALUES('hello');
INSERT INTO words(word) VALUES('bye');
etc. for all words
并检查一个词:
NSString *sql = [NSString stringWithFormat:@"SELECT EXISTS(SELECT 1 FROM words WHERE word=\"%@\" LIMIT 1)", word];
const char *sqlStatement = [sql UTF8String];
if (sqlite3_prepare_v2(db, sqlStatement, -1, &selectStmt, NULL) == SQLITE_OK)
{
int count = 0;
while(sqlite3_step(selectStmt) == SQLITE_ROW)
{
count = sqlite3_column_int(selectStmt, 0);
}
NSLog(@"COUNT: %i",count);
//If count is 1, we have a match.
}