sqlite向很多表中写数据_Flutter 数据库指南

最近一段时间,在学 Flutter,打算把自己写过的项目 HOO 用 Flutter 实现。

里面用到了一些数据库的知识,正好这周我在组内也是分享的SQLite,所以我们就来聊一聊 SQLite 的基础,以及怎么在 Flutter 中去使用数据库。

5ec6a208bc4d81c797482a1b5830a745.png
学习使我快乐

目录

3ade52e07e925cac0b8107914b57ffd3.png
目录

一、SQLite 基础

1. SQLite 定义

SQLite 是一个进程内的库,实现了自给自足、无服务器的、零配置的、事务性的SQL数据库引擎。

2. SQLite 特点

从上面的定义中,我们已经看到 SQLite 的一些特点,我在这里做一下详细的解释:

  • 嵌入式数据库:与MySQL、Oracle 这类数据库服务器相比,SQLite 无需单独的服务器进程或者操作系统,并且可以和应用的进程处在同一个进程。
  • 无需配置:不需要进行一大堆的配置。
  • 存储在磁盘文件:可以跨平台的存储在一个磁盘文件中。
  • 轻量级:完全配置时小于400kb,省略可选功能时低于250kb。
  • 无需外部依赖。
  • 跨平台:可以在 Unix 和 Windows 中运行。

所以,Android 和 ios 设备一般都会采用 SQLite 作为应用的本地数据库。

二、SQL 语法

SQL 语法是比较重要的,因为无论是什么基于 SQLite 的第三方库,它们在进行数据库操作的时候,最后都会转化为 SQL 语句,这个时候即使遇到 bug,我们也能够迎刃而解。

推荐看一下基础教程:SQLite教程

数据库的语言学习可以分为三个部分:

1d51ed4c4e97b7255c302203e7e7380e.png
SQL语言

1. 创建数据库

在进行学习基础语言之前,我们需要了解一下如何创建一个数据库,它通常对应着一个 .db 文件。

如果是在项目中,我们通常会在代码中进行配置,在进入 App 中就会生成对应的 .db 文件。

如果是在电脑中,我们以 mac 为例,需要在系统中安装 SQLite,成功以后,输入命令:

sqlite3 数据库名

就可以成功创建一个数据库。

2. 数据库定义语言

先说一下我们的目标,要建一个用户收藏商品的关系,思考一下,我们要建立几张表?

没错需要建立三张表,分别是 User(用户表)、Goods(商品表) 和 Fav_Goods(收藏表)。UserGoods 是独立的表,Fav_Goods 则要存放 其他两张表的主键。

2.1 CREATE

数据库在之前已经建立完,下一步就是建立表,对应建立表的语法就是 CREATE TABLE,有几个点需要注意。

基础的存储类型只有五种:

存储类型 解释
NULL 值是一个 NULL 值
INTEGER 值是一个带符号的整数,值支持 1,2,3,4,6,8个字节
REAL 浮点数
TEXT 文本字符串
BLOB 二进制大对象,用来存储图片,视频等

一些常用的关键字:

关键字 解释
PRIMARY KEY 主键
AUROINCREMENT 主键自增长,一般需要将主键设置为 INTEGER
FOREIGN KEY 外键

详细的 USER表、GOODS表和 FAV_GOODS 表创建语句:

# main 对应数据库名称
CREATE TABLE main.USER(
   id INTEGER PRIMARY KEY AUTOINCREMENT,
   name TEXT,
   account TEXT,
   pwd TEXT,
   age INT
);

CREATE TABLE main.GOODS(
   id INTEGER PRIMARY KEY AUTOINCREMENT,
   name TEXT,
   price REAL,
   category TEXT,
   brand TEXT
);

CREATE TABLE main.FAV_GOODS(
   id INTEGER PRIMARY KEY AUTOINCREMENT,
   date STRING,
   user_id
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值