zoukankan      html  css  js  c++  java
  • android原始sqlite中query的复杂用法

    android直接执行sql是execSQL(String sql)。

    这个方法可以执行任意sql语句。但是改变这个不够灵活。

    query这个方法可以很好的解决这个问题。

    执行query查询指定的数据表返回一个带游标的数据集

    工具/原料

    • 编译工具:Eclipse

    方法/步骤

    1.  

      因为只是介绍一个sqlite的方法,我们这里就不解释项目结构什么的。

      建表等我们也不说了。

      (Cursor) query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)

    2.  

      现在对参数的解释

      String table: 要查询的那个表

      String[] columns: 返回那一列,如果参数是null,则返回所有列。

      (不过不推荐这个样子)

      String selection: 返回那一行的过滤器。

      (格式是SQL的WHERE,设置为null,返回这个table的所有行)

      android原始sqlite中query的复杂用法
    3.  

      String[] selectionArgs: 在selection字段中可能会用'?'的形式来加一些额外的参数。

      String groupBy: 一个过滤器,如何来分组。(设置为null则不分组)

      android原始sqlite中query的复杂用法
    4.  

      String having: 分组后聚合的过滤条件。(作用和sql语句的having作用一样)

      String orderBy: 排序,格式是SQL的ORDER一样。

      (设置null使用默认(无序unonder)排列。)

      android原始sqlite中query的复杂用法
    5.  

      String limit: 返回的行数,设置为null表示没有限制条款。

      例子如下图:

      android原始sqlite中query的复杂用法
    6.  

      query返回一个Cursor。

      针对游标(Cursor)也提供了不少方法

      getCount():总记录条数

      isFirst():判断是否第一条记录

      isLast():判断是否最后一条记录

      moveToFirst():移动到第一条记录

      moveToLast():移动到最后一条记录

      move(int offset):移动到指定的记录

      moveToNext():移动到吓一条记录

      moveToPrevious():移动到上一条记录

      getColumnIndex(String columnName):获得指定列索引的int类型值

      android原始sqlite中query的复杂用法
    7.  

      sql语句中聚合函数的编写为例如:SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。 SELECT SUM(population) FROM bbc

      android原始sqlite中query的复杂用法
    8.  

      sql语句中having是分组(group by)后的筛选条件,分组后的数据组内再筛选where则是在分组前筛选。

      通过使用GROUP BY 子句,可以让SUM 和 COUNT 这些函数对属于一组的数据起作用。

      HAVING子句可以让我们筛选成组后的各组数据。 WHERE子句在聚合前先筛选记录。也就是说作用在GROUP BY 子句和HAVING子句前。而 HAVING子句在聚合后对组记录进行筛选。 

      END

    注意事项

  • 相关阅读:
    ztCreateUserWizard输入密码和设置安全问题
    寻觅在office(确切的说是word) 的工具栏中添加控件的方法,找到了这个控件列表
    vs2005,combox 数据绑定和SelectedIndexChanged事件触发 引发的问题
    今天下载安装了Enterprise Library for .NET Framework 2.0 January 2006,准备试试dataAccess application block
    zt 3DO的历史,让人感慨啊
    iBM,tivoli,flash挺有意思的
    zt科学家发现自转最快中子星 比地球快1亿倍
    c#中读取应用程序路径的方法
    郁闷啊郁闷,为了access的like,折腾了一上午.
    人生
  • 原文地址:https://www.cnblogs.com/mochaMM/p/5112703.html
Copyright © 2011-2022 走看看