|
SQLite是一个开源,符合标准,轻量级单层关系型数据库
SQLite是许多消费类电子设备,比如MP3播放器,iPhone, iPod的首选数据库系统
SQLite的每一行的每一列可以有不同的数据类型,因此在插入或提取时没有严格的类型检查
ContentValue对象用于插入数据到数据表,每个ContentValue对象代表一数据行。Andoid中的Queries的返回Cursor对象,它是底层数据的一个子集。startmanagingCursor方法将cursor的生命周期集成到父Activity的生命周期,当使用完Cursor调用stopManagingCursor来解除集成关系。
SQLite数据库设计Tip
Bitmaps 或 audio文件通常不存储在数据库中,而是存储文件的储存路径(URI)字符串强烈建议每个表有一个自增主键列作为唯一索引,特别是此表需要共享给Content Provider时,此字段是必须的。
可调用openOrCreateDatabase创建新数据库,然后调用execSQL运行SQL语句创建数据库表和关系。
java代码: private static final String DATABASE_NAME = “myDatabase.db”;
private static final String DATABASE_TABLE = “mainTable”;
private static final String DATABASE_CREATE = “create table “ + DATABASE_TABLE +
“ ( _id integer primary key autoincrement,” + “column_one text not null);”;
SQLiteDatabase myDatabase;
private void createDatabase() {
myDatabase = openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE, null);
myDatabase.execSQL(DATABASE_CREATE);}
复制代码插入数据,创建一个新行(ContentValues)-> 给新行分配数据(Put 方法)->输入新行到表(Insert方法)
java代码: // Create a new row of values to insert.
ContentValues newValues = new ContentValues();
// Assign values for each row.
newValues.put(COLUMN_NAME, newValue);
[ ... Repeat for each column ... ]
// Insert the row into your table
myDatabase.insert(DATABASE_TABLE, null, newValues);
复制代码删除数据, 直接调用delete方法,用where子句指定要删除的行
java代码: myDatabase.delete(DATABASE_TABLE, KEY_ID + “=” + rowId, null);
复制代码SQLite命令行管理工具
打开Command Prompt 进入C:\Program Files\Android\android-sdk\platform-tools目录, 运行adb shell
#cd data/data/<项目名>/databases, ls 命令可列表目录,文件名。
Sqlite3 <数据库文件名>打开或创建一个数据库
Ctrl+D 退出sqlite3
SQL语句必须以分号; 结束。如果你省略分号,sqlite3将给你一个连续的命令提示符并等你给当前的SQL命令添加更多的文字,直到;才执行
所有创建、删除和索引数据库时的信息自动更新到sqlite_master表。TEMPORARY表结构被存储在另外一个名叫"sqlite_temp_master"的特定的表中。"sqlite_temp_master"表是临时表自身 |
|