iOS雖然也有SQL,不過用得少(至少我目前是這樣)。大數據直接丟給後臺,小的用Plist足矣。 再退一步,有FMDB,原生的也用得少了。 下麵是之前學SQL時候的筆記。 1、創建 1-1)、打開: 資料庫指針、保存地址 1-2)、創建: 資料庫指針、創建指令、錯誤指令 1-3)、關閉: 資料庫指針 ...
iOS雖然也有SQL,不過用得少(至少我目前是這樣)。大數據直接丟給後臺,小的用Plist足矣。
再退一步,有FMDB,原生的也用得少了。
下麵是之前學SQL時候的筆記。
1、創建
1-1)、打開: 資料庫指針、保存地址
sqlite3_open([path UTF8String], &new_sql)
1-2)、創建: 資料庫指針、創建指令、錯誤指令
NSString *command = @"CREATE TABLE IF NOT EXISTS UserTable (username TEXT primary key,password TEXT,age TEXT)"; sqlite3_exec(new_sql, [command UTF8String], NULL, NULL, &new_error)
1-3)、關閉: 資料庫指針
sqlite3_close(new_sql);
2、插入
2-1)、打開: 資料庫指針、保存地址
同上
2-2)、插入:
//插入:指令 NSString *op = @"INSERT INTO UserTable(username,password,age) VALUES (?,?,?)"; //準備: 資料庫指針、插入指令、句柄 sqlite3_prepare(new_sql, [op UTF8String], -1, &new_stmt, NULL); //綁定: 句柄、位置、數據 sqlite3_bind_text(new_stmt, 1, [name UTF8String], -1, NULL); //下一步: 句柄 sqlite3_step(new_stmt); //結束: 句柄 sqlite3_finalize(new_stmt);
2-3)、關閉: 資料庫指針
同上
3、刪除
3-1)、打開: 資料庫指針、保存地址
同上
3-2)、刪除:
//刪除指令: NSString *op = @"DELETE FROM userTable WHERE userName = ?"; //準備: 資料庫指針、刪除指令、句柄 sqlite3_prepare(new_sql, [op UTF8String], -1, &new_stmt, NULL); //綁定: 句柄、位置、數據 sqlite3_bind_text(new_stmt, 1, [name UTF8String], -1, NULL); //下一步: 句柄 sqlite3_step(new_stmt); //結束: 句柄 sqlite3_finalize(new_stmt);
3-3)、關閉: 資料庫指針
同上
4、選擇
4-1)、打開: 資料庫指針、保存地址
同上
4-2)、選擇:
//選擇指令: 1)NSString *op = @"SELECT username,password,age From UserTable where username = ?"; 2)NSString *op = @"SELECT username,password,age From UserTable"; //準備: 資料庫指針、選擇指令、句柄 sqlite3_prepare(new_sql, [op UTF8String], -1, &new_stmt, NULL); //綁定: 句柄、位置、數據 sqlite3_bind_text(new_stmt, 1, [selet_name UTF8String], -1, NULL); //下一步: 句柄 sqlite3_step(new_stmt); //遍歷: while (result == SQLITE_ROW) { char *c_name = (char *)sqlite3_column_text(new_stmt, 0); char *c_password = (char *)sqlite3_column_text(new_stmt, 1); char *c_age = (char *)sqlite3_column_text(new_stmt, 2); NSString *s_name = [NSString stringWithCString:c_name encoding:NSUTF8StringEncoding]; NSString *s_password = [NSString stringWithCString:c_password encoding:NSUTF8StringEncoding]; NSString *s_age = [NSString stringWithCString:c_age encoding:NSUTF8StringEncoding]; NSLog(@"%@,%@,%@",s_name,s_password,s_age); result = sqlite3_step(new_stmt); //NSLog(@"%d",new_stmt); } //結束: 句柄 sqlite3_finalize(new_stmt);
4-3)、關閉: 資料庫指針
同上
附錄:
5、插入變體:更新
@"UPDATE UserTable SET password = ? where username = ?"
6、選擇變體:排序
@"SELECT * FROM userTable ORDER BY age ASC(DESC)"