轉載請註明出處:http://blog.csdn.net/linglongxin24/article/details/53316096
本文出自【DylanAndroid的博客】
- 【玩轉SQLite系列】文章目錄
【玩轉SQLite系列】(三)通過sql語句操作SQLite數據庫
由於Android系統的諸多權限問題,我才用的是真機進行調試,所以操作SQLite數據庫變得很麻煩,需要進行root;
所以,我們來採用(SQLiteDatabase.openOrCreateDatabase)來創建和打開數據庫,這樣的話,可以指定創建的數據庫文件的路徑。
我們可以用一些可視化工具(Navicat_for_SQLite)變得更好操作。這篇文章介紹一下通過純sql語句對數據庫的以下操作:1.創建表
2.刪除表
3.新增數據
4.修改數據
5.刪除數據
6.查詢數據
0.創建或打開一個數據庫
- 在SD卡的sqlite文件夾下創建和打開一個info.db數據庫
File dataBaseFile = new File(Environment.getExternalStorageDirectory() + "/sqlite", Contacts.DATABASE_NAME);
if (!dataBaseFile.getParentFile().exists()) {
dataBaseFile.mkdirs();
}
sqLiteDatabase = SQLiteDatabase.openOrCreateDatabase(dataBaseFile, null);
- 通過adb pull命令將手機中建立的數據庫文件/sdcard/sqlite/info.db導出到電腦D:\Andriod\Navicat_for_SQLite
adb pull /sdcard/sqlite/info.db D:\Andriod\Navicat_for_SQLite
1.創建表
/**
* 1.創建數據表user
* 表名 user
* *數據表user表結構字段
* 主鍵:id
* 名字:name
* 年齡:age:
*
* @param v
*/
public void create(View v) {
String sql = "CREATE TABLE " +
"IF NOT EXISTS " +
"user(" +
"id Integer PRIMARY KEY AUTOINCREMENT," +
"name varchar," +
"age Integer)";
sqLiteDatabase.execSQL(sql);
}
我們通過Navicat_for_SQLite工具打開我們導出的數據庫文件,可以看到uesr表已經成功創建
2.刪除表格
/**
* 2.刪除數據表user
*
* @param v
*/
public void drop(View v) {
String sql = "DROP TABLE " +
"IF EXISTS " +
"user";
sqLiteDatabase.execSQL(sql);
}
3.插入(新增)數據
/**
* 3.給user表中新增一條數據
*
* @param v
*/
public void insert(View v) {
String sql = "INSERT INTO" +
" user(name,age) " +
" VALUES('張三',25)";
sqLiteDatabase.execSQL(sql);
}
我們插入兩次數據來查看一下結果
成功插入了兩條數據
4.修改數據
/**
* 4.修改user表中id爲2的名字改成“李四”
*
* @param v
*/
public void update(View v) {
String sql = "UPDATE" +
" user SET" +
" name='李四' " +
" WHERE id=2";
sqLiteDatabase.execSQL(sql);
}
我們來查看一下修改的結果
成功將id爲2的姓名修改成了李四
5.刪除數據
/**
* 5.刪除user表中id爲2的記錄
*
* @param v
*/
public void delete(View v) {
String sql = "DELETE FROM user WHERE id=2";
sqLiteDatabase.execSQL(sql);
}
我們來查看一下刪除的結果
成功將id爲2的數據刪除
6.查詢數據
/**
* 6.查詢數據
*
* @param v
*/
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public void query(View v) {
String sql = "SELECT * FROM user";
/***這裏得到的是一個遊標*/
Cursor cursor = sqLiteDatabase.rawQuery(sql, null, null);
if (cursor == null) {
return;
}
/***循環遊標得到數據*/
while (cursor.moveToNext()) {
Log.d(Contacts.TAG, "id=" + cursor.getInt(0) + ",name=" + cursor.getString(1) + ",age=" + cursor.getInt(2));
}
/***記得操作完將遊標關閉*/
cursor.close();
}
我們通過Log來查看結果