首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ANDROID:在SqliteDatabase中查找单个表的大小

Android是一种基于Linux内核的开源操作系统,主要运行在移动设备如智能手机和平板电脑上。在SQLiteDatabase中查找单个表的大小,可以使用SQLite的pragma命令查询数据库文件的总大小,然后减去该表的大小,得到单个表的大小。

具体操作步骤如下:

  1. 打开SQLite数据库,可以使用SQLiteDatabase类的openDatabase方法打开数据库文件。
  2. 获取数据库的Cursor对象,可以使用SQLiteDatabase类的query方法查询数据库中的表。
  3. 获取表的Table对象,可以使用Cursor对象的getTable方法获取表的Table对象。
  4. 获取表的Columns对象,可以使用Table对象的getColumnNames方法获取表的Columns对象。
  5. 获取每个列的大小,可以使用Columns对象的get方法获取每个列的大小。
  6. 计算表的大小,可以将所有列的大小相加得到表的大小。

示例代码如下:

代码语言:java
复制
SQLiteDatabase db = SQLiteDatabase.openDatabase("test.db", null, SQLiteDatabase.OPEN_READONLY);
Cursor cursor = db.rawQuery("SELECT * FROM my_table", null);
Table table = cursor.getTable(0);
Columns columns = table.getColumnNames();
int size = columns.size();
int tableSize = 0;
for (int i = 0; i < size; i++) {
    String columnName = columns.get(i);
    int columnSize = cursor.getColumnIndex(columnName);
    tableSize += columnSize;
}
db.close();

其中,my_table是数据库中的表名,cursor是查询结果的Cursor对象,table是表的Table对象,columns是表的Columns对象,size是表的列数,tableSize是表的大小。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel公式嵌入查找

标签:Excel公式 通常,我们会在工作中放置查找,然后使用公式查找相对应值。然而,这也存在风险,就是用户可能会在删除行时无意识地将查找内容也删除,从而导致查找错误。...如下图1所示,将查找放置列AA和列BB。 图1 如下图2所示,查找查找列A值并返回相应结果。...图2 此时,如果我们删除行,而这些删除行刚好在查找数据所在行,那么就破坏了查找。那么,该怎么避免这种情况呢? 一种解决方法是另一个工作中放置查找,然后隐藏该工作。...然而,如果查找数据不多,正如上文示例那样,那么可以将查找嵌入到公式。 如下图3所示,选择公式中代表查找所在单元格区域字符。...如果不好理解,你可以直接将其复制到工作。 按Ctrl+C键复制花括号内容后,工作中选择5行2列区域,输入=号,按Ctrl+V键,再按Ctrl+Shift+Enter组合键,结果如下图6所示。

19530

Excel公式技巧94:不同工作查找数据

很多时候,我们都需要从工作簿各工作中提取数据信息。如果你在给工作命名时遵循一定规则,那么可以将VLOOKUP函数与INDIRECT函数结合使用,以从不同工作中提取数据。...假如有一张包含各种客户销售数据,并且每个月都会收到一张新工作。这里,给工作选择命名规则时要保持一致。...也就是说,将工作按一定规则统一命名。 汇总表上,我们希望从每个月份工作查找给客户XYZ销售额。...假设你单元格区域B3:D3输入有日期,包括2020年1月、2020年2月、2020年3月,单元格A4输入有客户名称。每个月销售结构是列A是客户名称,列B是销售额。...当你有多个统一结构数据源工作,并需要从中提取数据时,本文介绍技巧尤其有用。 注:本文整理自vlookupweek.wordpress.com,供有兴趣朋友参考。 undefined

12.9K10

Android单个View触摸事件分发机制

,为该activity控件触摸事件进行分发,分发意思也就是说,如果该方法返回true,当你对activityview进行点击,长按,滑动等操作时Log信息如下: <span style="font-size...默认<em>的</em>是返回<em>的</em>false 在此声明:当屏幕进行触摸时首先是activity感受到该触摸事件,然后对事件进行分发处理,也就是说要不要传给activity<em>中</em><em>的</em>view进行处理。...<em>在</em>事件进行分发时,首先判断点击<em>的</em>位置是否处于view<em>的</em>范围,如果不属于会执行onTouchEvent方法,如果属于然后再分发到view。...activity首先将事件分发到你所定义<em>的</em>最外层<em>的</em>view,<em>在</em>本程序<em>中</em>我只定义了一个view,所以当dispatchTouchEvent返回false进行事件分发时就理所当然<em>的</em>分发给了我所定义<em>的</em>view...<em>的</em>listener,<em>在</em>ACTION_UP结束后会触发onClick方法。

75820

Android SQLite 性能优化

数据库是应用开发中常用技术,Android应用也不例外。Android默认使用了SQLite数据库,应用程序开发,我们使用最多无外乎增删改查。...本文将介绍一些实用数据库优化操作,希望可以帮助大家更好地开发过程中使用数据库。 建立索引 很多时候,我们都听说,想要查找快速就建立索引。...这句话没错,数据索引类似于字典拼音索引或者部首索引。...对于不知道拼音字,比如欗这个字,我们只需要在部首索引里面查找这个字,就能找到确定这个字词典页码。 没错,索引做事情就是这么简单,使得我们不需要查找整个数据就可以实现快速访问。...建立索引会增加数据库大小,比如字典拼音索引和部首索引实际上是会增加字典页数,让字典变厚。 为数据量比较小建立索引,往往会事倍功半。

1.1K10

Android之ListView,AsyncTask,GridView,CardView,本地数据存储,SQLite数据库

Handler和AsyncTask为了是为了不阻塞主线程即UI线程,UI更新只能在主线程中进行处理,所以异步处理Android开发不可免。...关系型数据库,二维列为属性,称为字段;行为记录,如一对象;属性(字段)取值范围称为域。 这里我们要学会数据库,如DDL,DML等,数据定义语言和数据操作语言,创建表格和增删改查。...SQLite我们要了解认识SQLiteOpenHelper和SQLiteDatabase,并学会用。和两种方法rawQuery():用于查询和execSQL():用于增删改查。...Android提供了SQLiteDatabase创建对象,运用不用写数据库语法封装好API类。分别用query(),insert(),delete(),update()表示。...创建表语句 //注意这里 _id Android写这种形式,如果写 id为报错 create table student(_id Integer primary key autoincrement

1.2K20

关于vim查找和替换

1,查找 normal模式下按下/即可进入查找模式,输入要查找字符串并按下回车。 Vim会跳转到第一个匹配。按下n查找下一个,按下N查找上一个。...2,大小写敏感查找 查找模式中加入\c表示大小写不敏感查找,\C表示大小写敏感查找。例如: /foo\c 将会查找所有的"foo","FOO","Foo"等字符串。...例如当前为foo, 可以匹配foo barfoo,但不可匹配foobarfoo。 这在查找函数名、变量名时非常有用。 按下g*即可查找光标所在单词字符序列,每次出现前后字符无要求。...还有很多其他有用替换标志: 空替换标志表示只替换从光标位置开始,目标的第一次出现: :%s/foo/bar i表示大小写不敏感查找,I表示大小写敏感: :%s/foo/bar/i # 等效于模式\...^E与^Y是光标移动快捷键,参考: Vim如何快速进行光标移 大小写敏感查找 查找模式中加入\c表示大小写不敏感查找,\C表示大小写敏感查找

21.6K40

Android Sqlite并发问题

(Binder.java:565) 如上异常堆栈错误信息error code 5: database is locked,经过查找发现code为5代sqliteSQLITE_BUSY异常,详见...会创建一个数据库实例SQLiteDatabase,如果在不同进程如果通过shareuserid来实现数据库共享,那么会造成每一个进程都有SQLiteDatabase对象,并发操作时候也有可能会出现如上问题...比如,有一个删除操作发生在其他线程在对这个进行读操作过程,那么就会报SQLITE_LOCKED异常,也就是说一个线程删除操作和另一个线程对相同读取操作存在冲突,前提是这两个操作都是使用同一个数据库连接...java.lang.IllegalStateException: get field slot from row 0 col 0 failed异常,这个异常是数据库执行查询操作时候,如果数据库一条记录所占用内存大于...详见:https://github.com/sqlcipher/android-database-sqlcipher/issues/341#issuecomment-310289295,现在是改成动态来分配大小

1.4K40

BIT类型SQL Server存储大小

对于一般INT、CHAR、tinyint等数据类型,他们占用存储空间都是以Byte字节为单位,但是BIT类型由于只有0和1或者说false和true,这种情况只需要一个Bit位就可以表示了,那么...例如这样一个: CREATE TABLE tt ( c1 INT PRIMARY KEY, c2 BIT NOT NULL, c3 CHAR(2) NOT NULL ) SQL Server存储数据时先是将列按照原有顺序分为定长和变长...在数据页存储数据时先存储所有定长数据,然后再存储变长数据。...关于数据行具体格式我就不在这里多说了,《SQL Server 2005技术内幕 存储引擎》中有详细介绍。我们插入数据从第5个字节开始,是01000000 016161。...3.一个中有多个BIT类型列,其顺序是否连续决定了BIT位是否可以共享一个字节。SQL Server按照列顺序存储,第一列和最后一列都是BIT数据类型列,不可以共用一个字节。

3.4K10

未知大小父元素设置居中

当提到web设计居中元素时。关于被居中元素和它父元素信息,你知道越多就越容易设置。那么假如当你不知道任何信息?居中也是可设置。...以下这些方法不太全面,现做补充。 1) 待居中元素外 包裹table-cell,设置table-cell只是让table-cell元素table-cell居中。...2)table添加tr,td前要先添加tbody。 ---- 困难:不知道子元素宽高 当你不知道待居中子元素尺寸时,设置子元素居中就变得困难了。 ?...那么这个ghost元素是一个无语意元素?不,它是一个pseudo元素。 ? 我要告诉你是这个ghost元素技巧是更好方式并且应该是你想要居中技巧近些年来。...最好做法是父元素设置font-size:0 并在子元素设置一个合理font-size。

4K20

Excel实战技巧74: 工作创建搜索框来查找数据

End Sub 代码,对要搜索文本使用了通配符,因此可以搜索部分匹配文本。此外,对数据区域使用了“硬编码”,你可以将其修改为实际数据区域。代码运行结果如下图2所示。 ?...End Sub 在编写好代码后,将宏指定给表示按钮矩形形状。形状单击右键,如下图4所示。 ? 图4 选取“指定宏”命令,“指定宏”对话框中选择宏名,如下图5所示。 ?...图5 可以在此基础上进一步添加功能,例如,搜索完成后,我想恢复原先数据,可以工作再添加一个代表按钮矩形形状,如下图6所示。 ?...但细心朋友可能发现,由于我们使用是文本框和形状,因此会出现Excel编辑形状线,特别是输入文本后,单击形状前,都需要在其他单元格单击一下,才能再单击形状。这可能会带来不便!...我们编写代码,有很多注释掉代码语句,可供参考。

14.5K10

Sqlite数据库使用---基础研究

和文件相比,sqlite存储是一系列有规则数据对象,每个对象都有固定某些数据。...所以,你究竟要选择何种存储方式就看你自己数据对象特点了 Android中有现成对数据库操作api—SqliteDatabase.这些api其实也不过是拼接成一个sql语句,只有搞清楚了sql语句规则...,才能更好发挥作用 sqlite语句中常用有这么几类,sql对大小写不敏感 定义Table(把整个table作为一个整体考虑) create:创建 drop:删除 操作Table(传说中...) insert:向插入数据 update:更新数据 delete:删除数据 浏览Table(传说中) select:查询数据 为了更直观感受sqlite命令语法,直接使用...创建时,我们每一个数据类型后有写not null,也就是要求非空。 所以赋值时要求非空列是必须要赋值

1.3K00

手机卫士黑名单功能(列表展示)

列表展示所有的黑名单手机号码 布局文件添加控件,定义一个id 获取ListView对象 调用ListView对象setAdapter()方法,参数:ListAdapter对象...()方法 调用View.inflate()方法,转换布局文件为View对象,参数:上下文,布局资源,null 查找到相应控件,设置文件 数据库操作 db包下新建一个BlackNumberDBOpenHelper...名,允许为null列,ContentValues对象 获取ContentValues对象,new出来 调用ContentValues对象put()方法,参数:key,value 修改记录 定义方法...对象update()方法,修改表记录,参数:String名,ContentValues对象,String条件(“number=?”)...对象 调用SQLiteDatabase对象delete()方法,删除表记录,参数:String名,String条件(“number=?”)

62130

Excel公式技巧17: 使用VLOOKUP函数多个工作查找相匹配值(2)

我们给出了基于多个工作给定列匹配单个条件来返回值解决方案。本文使用与之相同示例,但是将匹配多个条件,并提供两个解决方案:一个是使用辅助列,另一个不使用辅助列。 下面是3个示例工作: ?...图3:工作Sheet3 示例要求从这3个工作从左至右查找,返回Colour列为“Red”且“Year”列为“2012”对应Amount列值,如下图4所示第7行和第11行。 ?...图4:主工作Master 解决方案1:使用辅助列 可以适当修改上篇文章给出公式,使其可以处理这里情形。首先在每个工作数据区域左侧插入一个辅助列,该列数据为连接要查找两个列数据。...16:使用VLOOKUP函数多个工作查找相匹配值(1)》。...C:C"}),2012)>0,0) 转换为: =MATCH(TRUE,{0,0,1}>0,0) 结果为: 3 表明工作表列表第3个工作(即Sheet3)中进行查找

13.3K10

Excel公式技巧16: 使用VLOOKUP函数多个工作查找相匹配值(1)

某个工作表单元格区域中查找值时,我们通常都会使用VLOOKUP函数。但是,如果在多个工作查找值并返回第一个相匹配值时,可以使用VLOOKUP函数吗?本文将讲解这个技术。...最简单解决方案是每个相关工作中使用辅助列,即首先将相关单元格值连接并放置辅助列。然而,有时候我们可能不能在工作中使用辅助列,特别是要求在被查找左侧插入列时。...图3:工作Sheet3 示例要求从这3个工作从左至右查找,返回Colour列为“Red”对应Amount列值,如下图4所示。 ?...,我们首先需要确定在哪个工作中进行查找,因此我们使用函数应该能够操作三维单元格区域,而COUNTIF函数就可以。...} 分别代表工作Sheet1、Sheet2、Sheet3列B“Red”数量。

20.1K21

Excel公式技巧54: 多个工作查找最大值最小值

学习Excel技术,关注微信公众号: excelperfect 要在Excel工作获取最大值或最小值,我们马上就会想到使用MAX/MIN函数。...例如,下图1所示工作,使用公式: =MAX(A1:D4) 得到最大值18。 使用公式: =MIN(A1:D4) 得到最小值2。 ?...图1 然而,当遇到要在多个工作查找最大值或最小值时,该怎么做呢?例如,示例工作簿中有3个工作:Sheet1、Sheet2和Sheet3,其数据如下图2至图4所示。 ? 图2 ? 图3 ?...图4 很显然,这些数据中最小值是工作Sheet21,最大值是工作Sheet3150。 可以使用下面的公式来获取多个工作最小值: =MIN(Sheet1:Sheet3!...A1:D4) 使用下面的公式来获取多个工作最大值: =MAX(Sheet1:Sheet3!A1:D4) 结果如下图5所示。 ?

8.3K10

matplotlib改变figure布局和大小实例

为了便于说明,用 matplotlib绘制相应图形,如 1 所示。 如果以英寸为单位更改图形大小,而 dpi 不变,较大图形仍具有相同元素大小。...因此,改变图形尺寸就像拿一张不同尺寸纸张一样,这样做当然不会改变用同一笔绘制线条宽度。通过 1 图形2, 4, 6 对比,可以明显看出来这一点。 另一方面,更改dpi会缩放元素。...通过 1 图形 1 3 5 对比,可以看出这一点。 综上: 图形尺寸(figsize)确定图形大小(以英寸为单位)。 这给出了轴(和其他元素)图中空间量。...较大图形尺寸将允许显示更长文本,更多轴或更多标记标签(1图形3与图形4,图形5与图形6对比可看出,像素尺寸相同时,图形尺寸越大,所能容纳内容越多)。...dpi 确定了图形每英寸包含像素数,图形尺寸相同情况下, dpi 越高,则图像清晰度越高(1 1,3,5 对比可看出) 以上这篇matplotlib改变figure布局和大小实例就是小编分享给大家全部内容了

3K10

keras 获取张量 tensor 维度大小实例

进行keras 网络计算时,有时候需要获取输入张量维度来定义自己层。但是由于keras是一个封闭接口。因此调用由于是张量不能直接用numpy 里A.shape()。这样形式来获取。...这里需要调用一下keras 作为后端方式来获取。当我们想要操作时第一时间就想到直接用 shape ()函数。其实keras 真的有shape()这个函数。...我们想要是tensor各个维度大小。因此可以直接调用 int_shape(x) 函数。这个函数才是我们想要。...()a 数据类型可以是tensor, list, array a.get_shape()a数据类型只能是tensor,且返回是一个元组(tuple) import tensorflow as...获取张量 tensor 维度大小实例就是小编分享给大家全部内容了,希望能给大家一个参考。

2.9K20

哈希iOS应用

记录存储位置=f(关键字) 这里对应关系f称为哈希函数(散列函数),采用散列技术将记录存储一块连续存储空间中,这块连续存储空间称为散列表或哈希(Hash table)。...解决冲突常用方法: 1.开放定址法:使用某种探查(亦称探测)技术散列表寻找下一个空散列地址,只要散列表足够大,空散列地址总能找到。...2.链地址法:哈希值相同数据放在同一线性链表 例如下面图上对需要储存数据%11,那么12、23、34取余结果都一样是1,则采用链表结构放在地址为1空间,查找时候通过哈希函数找到地址是1链表...,向后查找即可 image.png 哈希OC应用 NSDictionary 1.使用 hash来实现key和value之间映射和存储 2.字典key需要遵循NSCopying协议,重写hash...该函数动作如下: 1、从weak获取废弃对象地址为键值记录 2、将包含在记录所有附有 weak修饰符变量地址,赋值为nil 3、将weak该记录删除 4、从引用计数表删除废弃对象地址为键值记录

2K21
领券