您的位置:首页 > 数据库

【玩转SQLite系列】(三)通过sql语句操作SQLite数据库

2016-12-06 09:53 561 查看
转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53316096 

本文出自【DylanAndroid的博客】

【玩转SQLite系列】文章目录 
【玩转SQLite系列】(一)初识SQLite,重拾sql语句
【玩转SQLite系列】(二)SQLite创建和打开数据库的三种方式
【玩转SQLite系列】(三)通过sql语句操作SQLite数据库
【玩转SQLite系列】(四)通过Android提供的API操作SQLite数据库
【玩转SQLite系列】(五)SQLite数据库优化
【玩转SQLite系列】(六)SQLite数据库应用案例实现历史搜索记录
【玩转SQLite系列】(七)SQLite数据库轻量级ORM操作数据库工具类 




【玩转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);
1
2
3
4
5
1
2
3
4
5
通过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);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

我们通过Navicat_for_SQLite工具打开我们导出的数据库文件,可以看到uesr表已经成功创建



2.删除表格

/**
* 2.删除数据表user
*
* @param v
*/
public void drop(View v) {
String sql = "DROP TABLE " +
"IF EXISTS " +
"user";
sqLiteDatabase.execSQL(sql);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13

3.插入(新增)数据

/**
* 3.给user表中新增一条数据
*
* @param v
*/
public void insert(View v) {
String sql = "INSERT INTO" +
" user(name,age) " +
" VALUES('张三',25)";
sqLiteDatabase.execSQL(sql);
}
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11

我们插入两次数据来查看一下结果



成功插入了两条数据

4.修改数据

/**
* 4.修改user表中id为2的名字改成“李四”
*
* @param v
*/
public void update(View v) {
String sql = "UPDATE" +
" user SET" +
" name='李四' " +
" WHERE id=2";
sqLiteDatabase.execSQL(sql);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13

我们来查看一下修改的结果



成功将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);
}
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10

我们来查看一下删除的结果



成功将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();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

我们通过Log来查看结果



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: