SQLite开发入门——轻量级数据库
SQLiteDatabase是Android中的一个轻量级数据库,在Android的应用程序中被广泛使用。它支持SQL语言的基本操作,包括SELECT、INSERT、UPDATE和DELETE,以及事务操作等功能。本文将介绍SQLite的基本使用、数据类型和主键等基础概念。
SQLite基本使用
在Android应用程序中,首先需要创建一个SQLiteOpenHelper类,并实现其onCreate()和onUpgrade()方法。在onCreate()方法中,可以通过SQLiteDatabase对象创建数据库表。在onUpgrade()方法中,可以更新数据库结构。下面是一个简单的SQLiteOpenHelper类的代码示例:
public class MyDatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = \"mydb.db\"; private static final int DATABASE_VERSION = 1; private static final String TABLE_NAME = \"mytable\"; public MyDatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String CREATE_TABLE = \"CREATE TABLE \" + TABLE_NAME + \"(id INTEGER PRIMARY KEY, name TEXT, age INTEGER)\"; db.execSQL(CREATE_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //TODO: 升级数据库结构的代码 }}
创建数据库表后,就可以通过SQLiteOpenHelper类的getWritableDatabase()或getReadableDatabase()方法获取可读或可写的数据库对象了。下面是一个简单的代码示例:
MyDatabaseHelper dbHelper = new MyDatabaseHelper(context);SQLiteDatabase db = dbHelper.getWritableDatabase();
在获取了可读或可写的数据库对象后,就可以执行SQL操作了。下面是一个基本的查询操作的代码示例:
String[] columns = { \"name\", \"age\" };Cursor cursor = db.query(TABLE_NAME, columns, null, null, null, null, null);while (cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex(\"name\")); int age = cursor.getInt(cursor.getColumnIndex(\"age\")); //TODO: 对查询结果的处理}
SQLite数据类型
在SQLite中,有五种基本数据类型:INTEGER、REAL、TEXT、BLOB和NULL。其中INTEGER和REAL分别代表整型和实型,TEXT代表字符串,BLOB代表二进制数据,NULL代表空值。
除此之外,SQLite还支持以下几种特殊数据类型:
- INTEGER PRIMARY KEY:代表整型的主键
- REAL DEFAULT 0.0:代表实型的默认值
- TEXT COLLATE NOCASE:代表大小写不敏感的字符串
- BLOB DEFAULT X'00':代表二进制数据的默认值
- NULL NOT NULL:代表空值的约束
在创建表或修改表结构时,可以使用这些数据类型来指定列的类型。
SQLite主键
在SQLite中,主键是用来保证唯一性和快速查询数据的。一个表可以有一个或多个主键。有以下两种创建主键的方式:
- 在列定义中使用INTEGER PRIMARY KEY约束,如下所示:
CREATE TABLE mytable ( id INTEGER PRIMARY KEY, name TEXT);
- 在表定义中使用UNIQUE约束,如下所示:
CREATE TABLE mytable ( id INTEGER, name TEXT, PRIMARY KEY(id));
在插入数据时,如果主键重复,将会导致插入失败。在更新数据时,如果更新的数据不存在,将会插入一条新的数据。
在查询数据时,可以使用主键来快速定位数据。查询语句的格式如下:
SELECT * FROM mytable WHERE id = ?;
其中,问号代表需要查询的主键的值。
本文介绍了SQLite的基本使用、数据类型和主键等基础概念。SQLite作为一款轻量级数据库,特别适合于Android应用程序的开发。开发者可以根据本文的内容来学习SQLite的使用,从而开发出更加高效、稳定的Android应用程序。