面试题答案
一键面试-
导入SQLite框架: 在Xcode项目中,需要导入
libsqlite3.dylib
库。在项目导航器中,选中项目,选择Build Phases
->Link Binary With Libraries
,点击+
号,搜索并添加libsqlite3.dylib
。 -
引入头文件: 在需要使用SQLite的文件中引入头文件:
#import <sqlite3.h>
- 创建数据库:
sqlite3 *database;
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSString *databasePath = [documentsDirectory stringByAppendingPathComponent:@"MyDatabase.db"];
if (sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
NSLog(@"数据库创建成功");
} else {
NSLog(@"数据库创建失败: %s", sqlite3_errmsg(database));
sqlite3_close(database);
}
- 创建表:
NSString *createTableSQL = @"CREATE TABLE IF NOT EXISTS Users (ID INTEGER PRIMARY KEY AUTOINCREMENT, Username TEXT, Email TEXT)";
char *errorMsg;
if (sqlite3_exec(database, [createTableSQL UTF8String], NULL, NULL, &errorMsg) == SQLITE_OK) {
NSLog(@"表创建成功");
} else {
NSLog(@"表创建失败: %s", errorMsg);
sqlite3_free(errorMsg);
}
sqlite3_close(database);
相应的SQL语句
-
创建数据库:SQLite中没有专门创建数据库的语句,当使用
sqlite3_open
函数指定路径打开数据库时,如果数据库不存在则会自动创建。 -
创建表:
CREATE TABLE IF NOT EXISTS Users (
ID INTEGER PRIMARY KEY AUTOINCREMENT,
Username TEXT,
Email TEXT
);
CREATE TABLE IF NOT EXISTS
确保只有在表不存在时才创建。ID
字段设置为INTEGER PRIMARY KEY AUTOINCREMENT
,表示这是一个自增长的主键;Username
和Email
字段类型为TEXT
,用于存储文本数据。