玩转SQLite系列通过sql语句操作SQLite数据库

Posted DylanAndroid

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了玩转SQLite系列通过sql语句操作SQLite数据库相关的知识,希望对你有一定的参考价值。

转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53316096
本文出自【Dylanandroid的博客】


【玩转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来查看结果

开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系

以上是关于玩转SQLite系列通过sql语句操作SQLite数据库的主要内容,如果未能解决你的问题,请参考以下文章

玩转SQLite系列打造轻量级ORM工具类SQLiteDbUtil操作数据库

玩转SQLite系列SQLite数据库应用案例实现历史搜索记录

玩转SQLite系列SQLite数据库应用案例实现历史搜索记录

玩转SQLite系列SQLite创建和打开数据库的三种方式

玩转SQLite系列初识SQLite,重拾sql语句

通过SQL语句操作Sqlite数据库