📜  android sqlite 初学者教程 - SQL (1)

📅  最后修改于: 2023-12-03 15:29:20.873000             🧑  作者: Mango

Android SQLite 初学者教程 - SQL

SQLite 是一种轻量级的关系型数据库,与 Android 操作系统紧密集成,可以作为应用程序的内部存储或外部存储。

在这份教程中,我们将介绍如何在 Android 中使用 SQLite 数据库,并简单讲解 SQL 查询语句的使用。

创建数据库

在 Android 中创建 SQLite 数据库非常简单。我们可以使用 SQLiteOpenHelper 类来创建或打开一个数据库。以下是一个示例:

public class DatabaseHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "mydatabase.db";
    private static final int DATABASE_VERSION = 1;

    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "CREATE TABLE mytable (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)";
        db.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        String sql = "DROP TABLE IF EXISTS mytable";
        db.execSQL(sql);
        onCreate(db);
    }
}

在上面的示例中,我们创建了一个 DatabaseHelper 类来管理数据库的创建和版本更新。在 onCreate 方法中,我们创建了一个名为 mytable 的表,其中包含两个字段:一个自增长的整数 id 和一个文本 name。在 onUpgrade 方法中,我们在更新数据库时删除旧的表并重新创建一个新的表。

插入数据

在 SQLite 中插入数据的语法非常简单。我们只需要使用 INSERT INTO 语句并指定表和字段即可。以下是一个示例:

public void insertData() {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put("name", "John Doe");
    db.insert("mytable", null, values);
    db.close();
}

在上面的示例中,我们创建了一个 insertData 方法,用于向 mytable 表中插入数据。我们使用 getContentValues 方法来创建一个包含需要插入的列和值的 ContentValues 对象。然后使用 SQLiteOpenHelper 类中的 getWritableDatabase 方法来获取可写的数据库实例。最后,我们使用 insert 方法将数据插入数据库,并关闭数据库连接。

查询数据

在 SQLite 中查询数据的语法也非常简单。我们只需要使用 SELECT 语句,并指定需要查询的表和字段即可。以下是一个示例:

public String readData() {
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery("SELECT name FROM mytable WHERE id = ?", new String[]{"1"});
    String name = "";
    if (cursor.moveToFirst()) {
        name = cursor.getString(cursor.getColumnIndex("name"));
    }
    cursor.close();
    db.close();
    return name;
}

在上面的示例中,我们创建了一个 readData 方法,用于从 mytable 表中读取数据。我们使用 rawQuery 方法来执行一个 SQL 查询,并使用 ? 占位符来避免 SQL 注入攻击。然后我们遍历查询的结果集并获取第一行第一列返回的值。最后我们关闭游标和数据库连接,并返回数据。

更新数据

在 SQLite 中更新数据的语法也非常简单。我们只需要使用 UPDATE 语句,并指定要更新的表、字段和新值即可。以下是一个示例:

public void updateData(String name, int id) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put("name", name);
    db.update("mytable", values, "id = ?", new String[]{String.valueOf(id)});
    db.close();
}

在上面的示例中,我们创建了一个 updateData 方法,用于更新 mytable 表中的数据。我们使用 getContentValues 方法来创建一个包含需要更新的列和值的 ContentValues 对象。然后我们使用 update 方法将数据更新到数据库,并关闭数据库连接。

删除数据

在 SQLite 中删除数据的语法也非常简单。我们只需要使用 DELETE FROM 语句,并指定要删除的表和条件即可。以下是一个示例:

public void deleteData(int id) {
    SQLiteDatabase db = this.getWritableDatabase();
    db.delete("mytable", "id = ?", new String[]{String.valueOf(id)});
    db.close();
}

在上面的示例中,我们创建了一个 deleteData 方法,用于删除 mytable 表中的数据。我们使用 delete 方法将数据从数据库中删除,并关闭数据库连接。

总结

通过本教程,我们介绍了如何在 Android 中使用 SQLite 数据库并执行 SQL 查询语句。我们讲述了如何创建数据库、插入数据、更新数据和删除数据。SQLite 是一个十分强大的数据库系统,在移动应用开发中得到了广泛应用。拥有 SQLite 数据库的基础知识是每个 Android 开发者必备的技能之一。