flutter sqlite(4) 关于存储数据的类型

1、CHAR。CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充。

2、VARCHAR。存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。

3、TEXT。text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。

4、NCHAR、NVARCHAR、NTEXT。这三种从名字上看比前面三种多了个“N”。它表示存储的是Unicode数据类型的字符。我们知道字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较起来,nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。

原文章
https://www.cnblogs.com/grooovvve/p/13308752.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flutter 提供了许多用于本地存储的选项,其中 SQLite 是最常用的选项之一。SQLite 是一个轻量级的关系型数据库管理系统,它可以在移动设备中存储和管理数据。 要在 Flutter 中使用 SQLite,您需要使用 sqflite 插件。该插件提供了 SQLite 的 Dart 版本,可以让您从 Flutter 应用程序中轻松地访问和管理 SQLite 数据库。 以下是使用 sqflite 插件的基本步骤: 1. 添加 sqflite 插件依赖到您的 flutter 项目中 在项目的 pubspec.yaml 文件中添加以下代码 ``` dependencies: sqflite: ^1.3.0 ``` 2. 导入 sqflite 在您需要使用 sqflite 的文件中添加以下代码 ``` import 'package:sqflite/sqflite.dart'; ``` 3. 打开数据库 使用以下代码打开数据库并创建一个表: ``` Future<Database> database = openDatabase( // Set the path to the database. join(await getDatabasesPath(), 'example.db'), // When the database is first created, create a table to store dogs. onCreate: (db, version) { // Run the CREATE TABLE statement on the database. return db.execute( "CREATE TABLE dogs(id INTEGER PRIMARY KEY, name TEXT, age INTEGER)", ); }, // Set the version. This executes the onCreate function and provides a // path to perform database upgrades and downgrades. version: 1, ); ``` 4. 插入数据 使用以下代码向数据库中插入数据: ``` // Get a reference to the database. final Database db = await database; // Insert the Dog into the correct table. You might also specify the // `conflictAlgorithm` to use in case the same dog is inserted twice. await db.insert( 'dogs', dog.toMap(), conflictAlgorithm: ConflictAlgorithm.replace, ); ``` 5. 查询数据 使用以下代码从数据库中查询数据: ``` // Query the table for all The Dogs. final List<Map<String, dynamic>> maps = await db.query('dogs'); // Convert the List<Map<String, dynamic> into a List<Dog>. return List.generate(maps.length, (i) { return Dog( id: maps[i]['id'], name: maps[i]['name'], age: maps[i]['age'], ); }); ``` 这些是使用 sqflite 插件进行 SQLite 数据库操作的基本步骤。您可以根据您的需求进行更改和定制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值