如何用OracleDataReader获得数据库表中某一列的所有值

如何用OracleDataReader获得数据库表中某一列的所有值,第1张

比如数据库里有张表,表里有个字段是uname,这个字段有个值叫test,现在我们要在java里面使用sql语句查询这个名字叫test的其他相关数据,当然条件是uname='test'。

然后我们在java里就可以定义一个常量

string

final

fname='uname'

这样我就可以使用这个常量当做列名来用select

“+fname+"'

as

colname

from

doctabname";

这样你该懂了吧!

Android 不自动提供数据库。在 Android 应用程序中使用 SQLite,必须自己创建数据库,然后创建表、索引,填充数据。Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,你只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库。SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLiteOpenHelper 的子类,至少需要实现三个方法:

构造函数,调用父类 SQLiteOpenHelper 的构造函数

onCreate()方法;// TODO 创建数据库后,对数据库的 *** 作

onUpgrage()方法。// TODO 更改数据库版本的 *** 作

当你完成了对数据库的 *** 作(例如你的 Activity 已经关闭),需要调用 SQLiteDatabase 的 Close() 方法来释放掉数据库连接。

*** 作数据库的最佳实践是创建一个辅助类,例如联系人模块

class ContactsDatabaseHelper extends SQLiteOpenHelper

32 Cursor类

Android使用Cursor类返回一个需要的值,Cursor作为一个指针从数据库查询返回结果集,使用Cursor允许Android更有效地管理它们需要的行和列,你使用ContentValues对象存储键/值对,它的put()方法允许你插入不同数据类型的键值。

33 数据类型

SQLite 和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。比如可以把一个字符串(String)放入 INTEGER 列。SQLite 称这为“弱类型”(manifest typing)。

四、数据库 *** 作

41创建和打开数据库

在Android中创建和打开一个数据库都可以使用openOrCreateDatabase方法来实现,因为它会自动去检测是否存在这个数据库,如果存在则打开,如果不存在则创建一个数据库:创建成功则返回一个SQLiteDatebase对象,否则抛出异常FileNotFoundException。

下面我们来创建一个名为Test的数据库,并返回一个SQLiteDatabase对象mSQLiteDatabase。

mSQLiteDatabase=thisopenOrCreateDatabase("Test",MODE_PRIVATE,null);

42创建表

通过execSQL方法来执行一条SQL语句。

String CREATE_TABLE="create table 表名(列名,列名,……)";

mSQLiteDatabaseexecSQL(CREATE_TABLE);

创建表的时候总要确定一个主键,这个字段是64位整型,别名_rowid。其特点就是自增长功能。当到达最大值时,会搜索该字段未使用的值(某些记录被删除_rowid会被回收),所以要唯一严格增长的自动主键必须加入关键字autoincrement。

43删除表

mSQLiteDatabase("drop table 表名");

使用类似如下语句找出 某个表中 某个字段 在你的某条件下,为最大的一条记录:

1

2

3

4

SELECT MAX(字段) FORM 表格1 WHERE 你的条件

--或用下面查看这条记录里所有的字段的情况

SELECT FORM 表格1 WHERE 字段 IN (SELECT MAX(字段) FORM 表格1 WHERE 你的条件)

至于 “及明细”,就不知道你是什么想法了,如果是所有记录,那就直接列出所有记录就好:

1

SELECT FORM 表格1 WHERE 你的条件

在有些业务场景中需要分批去取数据库表中的全部数据来进行处理,最简单的方法就是使用分页查询语句(偷懒以MySQL为例):

[sql] view plain copy print

select from datatable limit offset,amount

select from datatable limit offset,amount

这里就会有一个问题,随着offset值的越来越大,这条sql要扫描的表数据就会越来越多,因为要定位到offset这一行就需要扫描比offset小的所有行。显然在一张大数据量的表中,去这样做,性能就会出问题。为了避免这样的情形出现,我们自然会想到使用索引来解决,比如使用自增序列id进行分批取:

[sql] view plain copy print

select from datatable where id >= start and id<start+batchCount

select from datatable where id >= start and id<start+batchCount

这样我们对id建索引,然后分批去取,显然效果会高很多,但是如果自增序列由于删除等 *** 作变得不是连续,就会出现空执行和多执行的情况出现。要解决这个方法,我们就需要结合使用索引和分页的优势来处理:

[sql] view plain copy print

select from datatable where id >= start limit batchCount

select from datatable where id >= start limit batchCount

然后每次取回来我们再计算出起始id值,再去取下一批数据。这样就可以既避免了第一种不走索引,查询性能低下的问题,又解决了第二种id不连续,导致取回来的数据量不稳定导致浪费的问题了。

(1)启动Microsoft SQL Server Management Studio程序

(2)按提示 *** 作进入系统

(3)选择那个建好表的数据库

(4)点击鼠标右键,会d出一个菜单,选择菜单命令:任务/导出数据

(5)按画面提示一步步 *** 作,选择好服务器的名称,源数据库和目标数据库,就可以将数据表导出到另一个数据库!

以上就是关于如何用OracleDataReader获得数据库表中某一列的所有值全部的内容,包括:如何用OracleDataReader获得数据库表中某一列的所有值、android app如何从数据库中获取需要的数据、如何从数据库中获取某个字段得所有值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9280362.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存