Swift - 第三方SQLite库FMDB使用详解2(常用数据库操作:增删改查等)
作者:hangge | 2019-04-04 08:10
前文我封装了一个数据库工具类 SQLiteManager(点击查看),下面我们使用这个工具类来对数据库进行操作。
四、常用数据库操作
1,新建表
(1)下面在程序启动后自动创建一个 User 表,里面包含三个字段。
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // 创建表 createTable() } // 创建表 func createTable() { // 编写SQL语句(id: 主键 name和age是字段名) let sql = "CREATE TABLE IF NOT EXISTS User( \n" + "id INTEGER PRIMARY KEY AUTOINCREMENT, \n" + "name TEXT, \n" + "age INTEGER \n" + "); \n" // 执行SQL语句(注意点: 在FMDB中除了查询意外, 都称之为更新) let db = SQLiteManager.shareManger().db if db.open() { if db.executeUpdate(sql, withArgumentsIn: []){ print("创建表成功") }else{ print("创建表失败") } } db.close() } }
(2)程序运行后,打开数据库文件可以看到数据表已经创建成功了。
2,插入数据(新增数据)
(1)使用正常方式的插入一条数据
// 编写SQL语句 let sql = "INSERT INTO User (name, age) VALUES ('hangge', 100);" // 执行SQL语句 let db = SQLiteManager.shareManger().db if db.open() { if db.executeUpdate(sql, withArgumentsIn: []){ print("插入成功") }else{ print("插入失败") } } db.close()
(2)使用预编译方式插入一条数据
// 编写SQL语句 let sql = "INSERT INTO User (name, age) VALUES (?,?);" // 执行SQL语句 let db = SQLiteManager.shareManger().db if db.open() { if db.executeUpdate(sql, withArgumentsIn: ["hangge", 100]){ print("插入成功") }else{ print("插入失败") } } db.close()
3,更新数据(修改数据)
(1)使用正常方式的修改数据
// 编写SQL语句 let sql = "UPDATE User set name = 'hangge.com' WHERE id = 2;" // 执行SQL语句 let db = SQLiteManager.shareManger().db if db.open() { if db.executeUpdate(sql, withArgumentsIn: []){ print("更新成功") }else{ print("更新失败") } } db.close()
(2)使用预编译方式修改数据
// 编写SQL语句 let sql = "UPDATE User set name = ? WHERE id = ?;" // 执行SQL语句 let db = SQLiteManager.shareManger().db if db.open() { if db.executeUpdate(sql, withArgumentsIn: ["hangge.com", 1]){ print("更新成功") }else{ print("更新失败") } } db.close()
4,删除数据
(1)使用正常方式的删除数据
// 编写SQL语句 let sql = "DELETE FROM User WHERE id = 2;" // 执行SQL语句 let db = SQLiteManager.shareManger().db if db.open() { if db.executeUpdate(sql, withArgumentsIn: []){ print("删除成功") }else{ print("删除失败") } } db.close()
(2)使用预编译方式删除数据
// 编写SQL语句 let sql = "DELETE FROM User WHERE id = ?;" // 执行SQL语句 let db = SQLiteManager.shareManger().db if db.open() { if db.executeUpdate(sql, withArgumentsIn: [3]){ print("删除成功") }else{ print("删除失败") } } db.close()
5,查询数据
(1)使用正常方式的查询数据
// 编写SQL语句 let sql = "SELECT * FROM User WHERE id < 10" // 执行SQL语句 let db = SQLiteManager.shareManger().db if db.open() { if let res = db.executeQuery(sql, withArgumentsIn: []){ // 遍历输出结果 while res.next() { let id = res.int(forColumn: "id") let name = res.string(forColumn: "name")! let age = res.int(forColumn: "age") print(id, name, age) } }else{ print("查询失败") } } db.close()
(2)使用预编译方式查询数据
// 编写SQL语句 let sql = "SELECT * FROM User WHERE id < ?" // 执行SQL语句 let db = SQLiteManager.shareManger().db if db.open() { if let res = db.executeQuery(sql, withArgumentsIn: [10]){ // 遍历输出结果 while res.next() { let id = res.int(forColumn: "id") let name = res.string(forColumn: "name")! let age = res.int(forColumn: "age") print(id, name, age) } }else{ print("查询失败") } } db.close()
附:其它一些 SQLite 常用语句补充
1,删除表
drop table User
2,查询表结构(建表语句)
select sql from sqlite_master where name = 'User'
3,新增表字段
ALTER TABLE User ADD phone varchar(256);
全部评论(0)