【玩轉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來查看結果

插入數據

發佈了134 篇原創文章 · 獲贊 73 · 訪問量 63萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章