# 数据库

SQLite 是 Android 内置的数据库,内存占用较低

# 数据类型

  • null : NULL 值
  • integer : 带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中
  • real : 浮点值,存储为 8 字节的 IEEE 浮点数字
  • text : 文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储
  • blob : blob 数据,完全根据它的输入存储

# 创建数据库

class MyDatabaseHelper(val context: Context, name: String, version: Int) :
    SQLiteOpenHelper(context, name, null, version) {

    private val createDB = "create table 表名 (" +
"字段名 数据类型," +
"字段名 数据类型)"

    override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {

    }

    override fun onCreate(db: SQLiteDatabase) {
        db.execSQL(createDB)
        Toast.makeText(context, "数据库创建完成", Toast.LENGTH_SHORT).show()
    }
}
val dbHelper = MyDatabaseHelper(this, "数据库名.db", 版本号)

# 增加数据

contentValuesOf("" to "")
val db = dbHelper.writableDatabase
val values = ContentValues().apply {
    // 组装数据
    put("字段名", "值")
    put("字段名", "值")
}
//增加数据
db.insert("表名", null, values)
Toast.makeText(this, "数据增加成功", Toast.LENGTH_SHORT).show()

# 更新数据

var db = dbHelper.writableDatabase
val values = ContentValues
values.put("字段名",)
values.put("字段名",)
db.update("表名",values,"字段名=?",arrayOf("值"))

# 删除数据

var db = dbHelper.writableDatabase
db.delete("表名", "字段名=?", arrayOf("值"))
Toast.makeText(this, "已删除字段名为“值“的数据", Toast.LENGTH_SHORT).show()

# 查询数据

db.query("表名","列名","where条件",为where中的占位符提供具体的值,指定需要group by的列,对group by后的结果进一步约束,指定查询结果的排序方式)

# 查询所有数据

var db = dbHelper.writableDatabase
//查询表中的所有数据
var cursor = db.query("表名", null, null, null, null, null, null)
if (cursor.moveToFirst()) {
    do {
        var 字段名 = cursor.getString(cursor.getColumnIndex("字段名"))
        var 字段名 = cursor.getInt(cursor.getColumnIndex("字段名"))
        Log.d("数据库查询", "字段名:$字段名")
    } while (cursor.moveToNext())
}
cursor.close()

# 执行 SQL 语句

# 增加数据

db.execSQL("insert into 表名 (字段名,字段名) values (?,?)",arrayOf("值","值"))

# 更新数据

db.execSQL("update 表名 set 字段名=? where 字段名=?",arrayOf("值","值"))

# 删除数据

db.execSQL("delete from 表名 where 字段名=?",arrayOf("值"))

# 查询数据

val cursor = db.rawQuery("select * from 表名",null)
最后更新: 2022/9/12 16:01:28