【玩转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操作数据库工具类
由于Android系统的诸多权限问题,我才用的是真机进行调试,所以操作SQLite数据库变得很麻烦,需要进行root;
所以,我们来采用(SQLiteDatabase.openOrCreateDatabase)来创建和打开数据库,这样的话,可以指定创建的数据库文件的路径。
我们可以用一些可视化工具(Navicat_for_SQLite)变得更好操作。这篇文章介绍一下通过纯sql语句对数据库的以下操作:
1.创建表
2.删除表
3.新增数据
4.修改数据
5.删除数据
6.查询数据
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
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
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
我们插入两次数据来查看一下结果
成功插入了两条数据
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的姓名修改成了李四
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
我们来查看一下删除的结果
成功将id为2的数据删除
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来查看结果
本文出自【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来查看结果
相关文章推荐
- Oracle模糊查询时间以及按照时间区间查询
- 【玩转SQLite系列】(二)SQLite创建和打开数据库的三种方式
- 数据库数 创建 C# 实体 类
- Oracle分页查询语句
- 详解SQL Server数据库架构和对象、定义数据完整性
- oracle查看用户;查看用户表空间;设置用户表空间;创建、修改、删除表空间
- mongodb 物理删除数据
- Memcached常规应用与分布式部署方案
- VS2015安装之后加装SQL SERVER2014的步骤
- 从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)
- MYSQL一些用法
- mysql数据库优化
- SQL2005关于quotename的用法(转)
- mysql 5.6 myisam 引擎表损坏
- 偶遇mysql(Percona Server)的一个新bug
- mysql 左连接 右连接 内连接 union
- Rails连接mysql数据库在ubuntu上跑
- ORACLE CONNECT_BY_ROOT
- 【密码】Oracle用户密码系列
- sql server行级锁,排它锁,共享锁的使用