26 图解关于 SQL 数据库的二三事(一)

和尚刚刚学习一下关于数据存储方面的小知识点,用sqflite对数据库进行基本操作。sqflite为三方pub通用的引入方式。和尚仅对数据库的基本操作进行学习整理。

集成方式

pubspec.yaml中添加sqflite: any

在相应的.dart文件中添加引用import 'package:sqflite/sqflite.dart';

根据需求对数据存储进行具体的SQL操作,如下:

SQL 操作

1. 创建数据库

sqflite创建数据库时优先创建一个路径,用来存储数据库。注:对于数据库的操作都是耗时操作,都要通过asyncawait异步处理。

2. 创建数据表

借助db.execute来创建一张数据表,跟普通的SQL方式相同。

3. 【增】插入数据

借助rawInsertdb.insert对数据库表数据进行插入。根本上都是通过insert into方式插入数据表。

4. 【查】查询数据

借助rawQuerydb.select对数据库表信息进行查询,是操作最灵活对部分,配合各种SQL语句进行处理。

5. 【删】删除数据

借助rawDeletedb.delete对数据库表进行数据删除,和尚测试删除id = 0和1的对应数据,sqflite内部已处理好,若数据库表不存在也不会报异常。

6. 【改】更新数据

借助rawUpdatedb.update对数据库表进行内容数据更新,可根据需求变更固定字段或整条数据。

7. 删除数据表

和尚刚接触数据库,没有找到直接删除表的方式,没有类似drop的方法,如果有哪位大神了解请多多指导。注:若用如下方式只会删除当前表中所有数据而不会删除表。

8. 删除数据库

删除数据库与创建数据库相对应,直接对路径进行操作。

注意事项

建议在对数据库表进行增删改查前优先判断数据库是否存在,可统一封装方法以降低异常;

对于数据库表的增删改查,和尚使用了两种方式:一种是直接db.增删改查,另一种是db.transaction后对回调raw+增删改查,两种的区别是,第一种使用更便捷,可直接修改整条数据;第二种使用更灵活,可对部分数据字段进行调整,可以看图例中的【更新】结果;

在使用db.transaction对数据库表进行增删改查时要注意SQL语句的完整性,包括传递String类型参数时要加引号,执行的是一个完整的SQL语句。

数据库的操作灵活多样,和尚刚刚尝试,本篇仅记录一下基本的使用情况,对于更多灵活的方法会继续尝试整理,有问题的地方请大家多多指导。以下是和尚公众号,欢迎前来吐槽~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181219G1G0Y900?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券