SQLite数据库--增删改查

作者: 大话程序 | 来源:发表于2016-05-13 10:43 被阅读1812次

对数据库的操作CRUD:C:create创建 R:retrieve查询 U:updata更新 D:delete删除

使用SQLiteOpenHelpergetReadableDatabase()getWritableDatabase()方法是可以直接用于创建和升级数据库的,同时还会返回一个SQLiteDatabase对象,借助这个对象就可以对数据库进行CRUD操作

添加数据

SQLiteDatabase对象中有一个insert (String table, String nullColumnHack, ContentValues values)方法,这个方法就是用来专门添加数据的

  • table:数据库表名
  • nullColumnHack:用于在未指定添加数据的情况下给某些可为空的列自动赋值为null,一般用不到这个功能,直接传入null即可
  • values:是一个ContentValues对象,它提供一系列的put()方法重载,用于向ContentValues中添加数据,只需要将表中的每个列名以及相应的待传入的数据传入即可

添加数据,代码如下:

    SQLiteDatabase db = dbHelper.getWritableDatabase();
    ContentValues values = new ContentValues();        
    //组装第一条数据                                          
    values.put("name", "The Da Vinci Code");           
    values.put("author", "Dan Brown");                 
    values.put("pages", 454);                          
    values.put("price", 16.96);                        
    //插入数据 
    db.insert("Book", null, values);                   
    //将ContentValues对象中存储的数据清空                         
    values.clear();                                    
    values.put("name", "The Lost Symbol");             
    values.put("author", "Dan Brown");                 
    values.put("pages", 510);                          
    values.put("price", 19.95);                        
    db.insert("Book", null, values);                   

使用adb shell命令来查询数据库表中插入的数据:


插入数据

更新数据:

SQLiteDatabase对象中有个一update(String table, ContentValues values, String whereClause, String[] whereArgs)方法,专门用来更新数据

  • table:数据库表名
  • values:ContentValues对象,要把更新的数据在这里组装进去
  • whereClause:对应的是SQL语句的where部分,使用占位符?
  • whereArgs:提供一个字符串数组为第三个参数中的每一个占位符指定相应的内容

更新数据,代码如下:

//得到数据库对象
SQLiteDatabase db = dbHelper.getWritableDatabase();  
//创建ContentValues对象                    
ContentValues values = new ContentValues();       
//组装需要跟新的数据                       
values.put("price", 10.99);                                              
//调用update方法,实现数据的更新
db.update("Book", values, "name = ?", new String[]{"The Da Vinci Code"});

查询更新后的数据:


更新数据

删除数据

SQLiteDatabase对象中有一个delete(String table, String whereClause, String[] whereArgs)方法,专门用来删除数据

  • table:数据库表名
  • whereClause:使用占位符?
  • whereArgs:给出占位符的值
    第二个和第三个参数是用于约束删除某一行或者某几行的数据,不指定的话默认就是删除所有行

删除数据,代码如下:

SQLiteDatabase db = dbHelper.getWritableDatabase(); 
//指定delete方法
db.delete("Book", "pages > ?", new String[]{"500"});

查询删除后的数据:


删除数据

查询数据

SQLiteDatabase对象中有多个重载的query()方法,使用一个最简单的方法(七个参数):

query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy)
  • table:表名
  • columns:指定查询的列,不指定则默认查询所有列
  • selection:使用占位符?,给出查询条件
  • selectionArgs:selection中占位符的值
  • groupBy:分组
  • having:对分组的结果进行过滤
  • orderBy:排序

此方法放回的是一个Cursor对象,查询的所有数据都将从这个对象中取出

取出数据,代码如下:

//拿到数据库对象
SQLiteDatabase db = dbHelper.getReadableDatabase();                           
//查询Book表中的所有数据                                                               
Cursor cursor = db.query("Book", null, null, null, null, null, null);     
//遍历Cursor对象,指针位移,判断是否有下一个元素    
while (cursor.moveToNext()) {                                                 
    //根据列名找到序号,根据序号再查找出来数据                                            
    String name = cursor.getString(cursor.getColumnIndex("name"));            
    String author = cursor.getString(cursor.getColumnIndex("author"));        
    int pages = cursor.getInt(cursor.getColumnIndex("pages"));                
    double price = cursor.getDouble(cursor.getColumnIndex("price"));          
    Log.d("MainActivity", name + "  " + author + "  " + pages + "  " + price);
}                                                                             

相关文章

  • 关于python的list的增查删改

    说到增查删改,想起了数据库,我们在关系型数据库当中就会对表进行增查删改。 在python当中我们也可以对list进...

  • 数据库

    SQL语句增删改查 SQL表关系 SQLiteDatabase操作SQLite数据库 SQLiteOpenHelp...

  • MYSQL数据库的增删改查

    MYSQL数据库的增删改查 一.对于库的增删改查 增create database 库名称;create data...

  • iOS疯狂详解之SQlite数据库增删改查

    SQLite 增删改查

  • 数据库的存储

    如何创建数据库 数据库的增删改查 增insert into student (name,phone) values...

  • 曹老师的iOS基础知识C

    { 24、Sqlite数据库 1、存储大数据量,增删改查,常见管理系统:Oracle、MSSQLServer、DB...

  • SQL查询结构总结

    SQL 增删改查 对数据库有修改的操作是:增删改 增 insert into 表名 values(); 删 del...

  • 解决sqlite3查询数据返回字典格式的方法

    问题:python使用 sqlite3 数据库进行增删改查时发现,sqlite3查询数据返回的元组,会导致我使用c...

  • iOS数据库FMDB

    iOS数据库FMDB 简介 iOS中使用C语言函数对原生SQLite数据库进行增删改查操作,复杂麻烦,于是,就出现...

  • Sqlite

    Sqlite是Android内置的一个轻量级数据库,具备和普通数据库的、增删改查、和事物的功能。 使用 关于数据库...

网友评论

    本文标题:SQLite数据库--增删改查

    本文链接:https://www.haomeiwen.com/subject/xhxprttx.html