Android本地存储方式(三)--SQLite

245 阅读2分钟

「这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战

一、SQLite简介

SQLite是一个轻量级的数据库,无服务器、零配置、事物性的SQL数据库,不区分大小写,但是有些命令是大小写敏感的,支持null、integer、real、text、blob五种数据类型

Android提供SQLiteOpenHelper.java,可以实现数据库的操作,但是它是一个抽象类。在DatabaseHelper类中实现三个方法:构造函数、onCreate、onUpgrade

  • 构造函数

带全部参数的构造函数,此构造函数必不能少,name为数据库名称

public DatabaseHelper(Context context, String name, CursorFactory factory, int version) {
    super(context, name, factory, version);
}
  • onCreate

创建数据库的sql语句,相当于初始化数据库,这个方法继承自SQLiteOpenHelper,当新建了一个DatabaseHelper对象时,就会默认新建一张表person,表里存着名为uid项 public void onCreate(SQLiteDatabase db) {

public void onCreate(SQLiteDatabase db) {
    String sql = "create table person(uid varchar(20))";
    db.execSQL(sql);
}
  • onUpgrade

实现数据库升级等操作

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}

二. 数据库语法

1. 创建表

使用CREATE TABLE语句可以给数据库创建一个新表,约束有:

  • NOT NULL:列不能有NULL值
  • DEFAULT:某列没有指定值时,为该列提供默认值
  • UNIQUE:确保某列中所有的值是不同的
  • PRIMARY KEY:主键:唯一标识数据库表中的每一条记录
  • CHECK:CHECK约束确保某列中的所有值满足一定条件

2. 删除表数据

删除表的关键字是DROP

DROP TABLE <TABLENAME>

3. 插入数据

  • 使用INSERT INTO语句向数据库插入一条数据 语法为:
INSERT INTO <TABLENAME> (column1,column2,……columnN) 
VALUES (value1,value2,……valueN);
//或者为表中所有列插入数据(顺序和表保持一致)
INSERT INTO <TABLENAME> 
VALUES(value1,value2,……valueN);

4. 删除数据

  • 使用DELETE语句可以删除表中数据 语法:
DELETE 
FROM <TABLENAME>  
     WHERE  <condition>;

5. 修改数据

  • 修改表中已有记录为UPDATE 语法:
UPDATE <TABLENAME> 
               SET column1 = value1,column2 = value2,……columnN = valueN 
               WHERE <condition>;

6. 查询数据

  • 从数据库中查询用 SELECT 语句 语法:
SELECT column1,column2,……columnN 
               FROM <TABLENAME> 
               WHERE <codition>;
//或者查询所有列的数据
SELECT * FROM <TABLENAME>