Android SQLite 查询相关的笔记

来源:互联网 发布:老男孩linux运维 编辑:程序博客网 时间:2024/05/23 00:13

            SQLite查询分析几个参数就可以了,下面是参数列表。

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

        下面是对这些参数的粗略解释:

         boolean isUnique:一个可选的布尔值,用来说明返回的值是否只包含唯一的值。

         String table:没什么好解释的,要查询的表名。

         String[] columns:要查询的列,若为空,则查询所有的列。

         String selection:一个“where”子句,定义了要返回的行,可以在其中包含?通配符,这个通配符将会被下一个参数即selectionArgs替换。

         String[] selectionArgs:与上一个参数selection息息相关,用来通配上一个参数的?通配符。对于这两个参数,举一个例子:

        有这样一句SQL语句:SELECT * FROM Employees WHERE City='Beijing',我们将它转换为java语句。 

String selection="City=?",这时候selectionArgs就能派上用场了,String[] selectionArgs={"Beijing"};

也就是说selectionArgs中的字符串就是对应selection中的问号所代表的变量。实际上就是让selection中的过滤条件City可以动态的赋值,而不是写死在程序当中。

         继续解释下面的参数: 

         String groupBy:很显然就是对应SQL语句中GROUP BY后面的字符串,GROUP BY是与合计函数(Aggregate Functions)如SUM()一起使用的。

         String having:对应SQL语句HAVING后面的字符串,也是要与合计函数一起使用的。

         String orderBy:用来表述返回的行的顺序。

         String limit:一个可选的参数,用来定义对返回的行的限制。

         对以上几个参数,用一个例子简单说明下:

         

 假设有如下数据表,表名"Orders":

IdCustomerNameOrderPriceCountryOrderDate1Arc100China2010/1/22Bor200USA2010/3/203Cut500Japan2010/2/204Bor300USA2010/3/25Arc600China2010/3/256Doom200China2010/3/26

假设我们想查询客户总的订单数在500元以上的,且County在中国的客户的名称和订单总数,且按照CustomerName来排序,默认ASC排序,那么SQL语句应当是:

Sql代码  收藏代码
  1. SELECT CustomerName, SUM(OrderPrice) FROM Orders WHERE Country=?   
  2. GROUP BY CustomerName   
  3. HAVING SUM(OrderPrice)>500  
  4. ORDER BY CustomerName  

 那么对应Android的query函数的参数如下:

Java代码  收藏代码
  1. String table = "Orders";  
  2. String[] columns = new String[] {"CustomerName""SUM(OrderPrice)"};  
  3. String selection = "Country=?";  
  4. String[] selectionArgs = new String[]{"China"};  
  5. String groupBy = "CustomerName";  
  6. String having = "SUM(OrderPrice)>500";  
  7. String orderBy = "CustomerName";  
  8. Cursor c = db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy, null);   
OK ,笔记到此先结束。
原创粉丝点击