「这是我参与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>