Swift 中使用 SQLite——修改和删除数据
本文主要介绍在SQLite中修改数据、删除数据:
- 更新记录
/// 将当前对象信息更新到数据库
///
/// - returns: 是否成功
func updatePerson() -> Bool {guard let name = name else {print("姓名不能为空")return false}if id <= 0 {print("id 不正确")return false}let sql = "UPDATE T_Person set name = '\(name)', age = \(age), height = \(height) \n" +"WHERE id = \(id);"return SQLiteManager.sharedManager.execSQL(sql)
}
- 删除记录
/// 将当前对象从数据库中删除
///
/// - returns: 是否成功
func deletePerson() -> Bool {if id <= 0 {print("id 不正确")return false}let sql = "DELETE FROM T_Person WHERE id = \(id);"return SQLiteManager.sharedManager.execSQL(sql)
}
- 测试代码
/// 测试更新数据
private func demoUpdate() {let p = Person(dict: ["id": 3000, "name": "老王", "age": 108, "height": 1.7])if p.updatePerson() {print("更新成功 \(p)")} else {print("更新失败")}
}/// 测试删除数据
private func demoDelete() {let p = Person(dict: ["id": 3000, "name": "老王", "age": 108, "height": 1.7])if p.deletePerson() {print("删除成功 \(p)")} else {print("删除失败")}
}
小结
- 创表 / 新增 / 修改 / 删除 本质上都是执行一条
SQL 指令
- 删除记录时,如果数据不存在,不会返回错误
- 更新记录时,如果指定的 id 不存在,不会返回错误
数据操作方法扩展
- 增加
execUpdate
函数
/// 执行 更新 / 删除 SQL
///
/// - parameter sql: sql
///
/// - returns: 返回 更新 / 删除 的数据行数
func execUpdate(sql: String) -> Int {if !execSQL(sql) {return -1}// 返回影响的数据行数return Int(sqlite3_changes(db))
}
- 修改更新和删除按钮,再次测试
/// 将当前对象从数据库中删除
///
/// - returns: 是否成功
func deletePerson() -> Bool {if id <= 0 {print("id 不正确")return false}let sql = "DELETE FROM T_Person WHERE id = \(id);"return SQLiteManager.sharedManager.execUpdate(sql) > 0
}/// 将当前对象信息更新到数据库
///
/// - returns: 是否成功
func updatePerson() -> Bool {guard let name = name else {print("姓名不能为空")return false}if id <= 0 {print("id 不正确")return false}let sql = "UPDATE T_Person set name = '\(name)', age = \(age), height = \(height) \n" +"WHERE id = \(id);"return SQLiteManager.sharedManager.execUpdate(sql) > 0
}
备注
- 新增记录可以使用
sqlite3_last_insert_rowid
获取最后插入的主键数值 - 更新 / 删除记录可以使用
sqlite3_changes
获取影响数据行数
Swift 中使用 SQLite——修改和删除数据相关推荐
- 视图操作 第3关:在视图中插入、修改、删除数据
任务描述 本关任务: 相关知识 为了完成本关任务,你需要掌握: 1.创建视图 2.插入数据 3.更新数据 4.删除数据 语法 1.使用CREATE VIEW语句创建视图 语法格式: CREATE [O ...
- sqlite数据类型、关键词及创建、修改、删除数据表
//摘自:http://www.cnblogs.com/caizhimin816/articles/1885290.html 谢谢! sqlite数据类型.关键词及创建.修改.删除数据表 Posted ...
- Swift 中使用 SQLite——批量更新(事务处理)
本文是Swift 中使用 SQLite系列的收官之作,介绍一下在数据库中的批量更新. 事务 在准备做大规模数据操作前,首先开启一个事务,保存操作前的数据库的状态 开始数据操作 如果数据操作成功,提交事 ...
- Swift 中使用 SQLite——打开数据库
关于Swift中使用SQLite,接下来可能会分别从打开.增.删.改.查,几个方面来介绍SQLite的具体使用,这一篇重点介绍一下如何打开. 定义全局数据库访问句柄 /// 全局数据库访问句柄 pri ...
- 数据库(概念、语法、DBMS、SQL语言:创建数据库、表格,添加、修改、删除数据记录)...
关系型数据库:以表作为实体,以主键和外键关系作为联系的一种数据结构. 主键:在关系型数据库中,用一个唯一的标识符来标志每一行,这个标识符就是主键.主键有两个特点:非空和不能重复. 外键:在关系型数据库 ...
- vs2010 mysql linq to sql 系列_LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据...
LINQ和 LINQ to SQL 都已经不是一个新事物了,但是我接触的比较晚,本着绝知此事要躬行的态度,决定写这个系列. 本文使用的测试环境是VS 2010,和sql server 2005数据库. ...
- Python Flask实现修改和删除数据
Python Flask实现修改和删除数据 上一篇文章写了查询和添加数据,这篇文章继续写修改和删除数据. 查询和添加数据参考: https://blog.csdn.net/weixin_4379027 ...
- LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据
LINQ和 LINQ to SQL 都已经不是一个新事物了,但是我接触的比较晚,本着绝知此事要躬行的态度,决定写这个系列. 本文使用的测试环境是VS 2010,和sql server 2005数据库. ...
- SqlService基础一篇搞定(建库建表、插入数据、修改和删除数据、基础查询、条件查询、模糊查询、聚合函数、分组查询、多表查询)
SqlService基础知识总汇 前言 一.SQLSERVER建库建表 1.检查数据库名是否存在 2.创建数据库 3.建表 4.修改表结构 5.删除添加约束 二.SQLSERVER插入数据 1.向部门 ...
最新文章
- (20/24) webpack实战技巧:watch实现热打包和添加代码备注
- java中new BigDecimal的坑
- 从LXMERT到VLMO:多模态预训练模型的演变史
- win10安装ensp启动40_装系统不求人,快速制作启动U盘,傻瓜式重装WIN10
- 《BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding》
- mysql写php木马_PHP一句话木马小总结与SQL语句写一句话木马
- 什么是Git最好的视觉合并工具? [关闭]
- java cookie 永久_java web中cookie的永久创建与撤销
- AngularJs(Part 3)--注册服务
- Android Studio 自定义字体显示英文音标
- 【python】正则表达式re模块
- python上传文件
- ffmpeg推流和拉流rtsp
- 天涯红旗linux,红旗linux安装中的几点技巧(转载)
- 网页中插入FLASH的三种方法
- 父级fixed_相对于父元素的fixed定位的实现
- 【控制control】机械臂运动学、动力学模型
- 忘记svn密码怎么办
- Android中设置定时闹钟以及AlarmManager详解
- 纪委计算机管理制度,纪委保密制度
热门文章
- 在DataGrid中显示图片
- ASP.net 中的页面继承实现和通用页面的工厂模式的实现
- Java动态加载一个类的几种方法以及invoke
- linux环境insight安装与使用
- TeamViewer介绍:远程控制计算机
- 提高C++性能的编程技术笔记:引用计数+测试代码
- java振动数据压缩_【数据结构-Java】最佳实践-数据压缩(使用赫夫曼树)
- ai 临摹图片换背景_AI临摹绘制插画图片
- 24点游戏c语言链表做法,C语言实现24点程序(示例代码)
- 基于python的压测工具_Python Locust性能测试简介及框架实践