publicDataSetquery(stringsql)
{
DataSetds=newDataSet();//DataSet是表的集合
da=new(sql,conn);//从数据库中查询
daFill(ds);//将数据填充到DataSet
connClose();//关闭连接
returnds;//返回结果
}
这就读出来了
数据库使用二维表存储数据,它不像电子表格那样,具有固定的行号和列号。相对于电子表格来讲,它的列号相当于各个字段名,但是它没有固定的列号,垂直方向的坐标需要由各个记录行的字段值来确定。
获取数据表某些单元的数据,一般可以用SQL选择查询,选定输出字段加上筛选条件选字段来确定,例如
select 课程 from 课程表 where 课程id='001';
如果数据表具有唯一约束的列,例如主键或带唯一索引的字段,那么我们就可以用该列名或者说是字段名(横向坐标)加列值(纵向坐标)来精确定位某个记录单元。但是如果不存在唯一标识列的情况下,我们就无法精确定位到某个记录单元了 因为它会返回多个记录行。其实用电子表格单元格的概念去理解数据库表,并不是一个好主意,电子表格和数据库的用途不同,各有各的强项。但就数据处理的能力来讲,数据库要远较电子表格强大,前者关注于数据的储存、管理,和检索,后者关注于数据的展示。请注意现实中数据库中的数据的使用是要通过应用程序来体现的,例如从数据库检索出数据导入到excel做进一步处理并某种外观予以展示。
1、查询数据库(test)中的所有表名的方法:
SELECT name
FROM [test]sysobjects where xtype='U'
补充:
如果有的表不存在时间那就用下面的语句直接把含有时间列的表名找到:
SELECT dname
FROM [test]syscolumns a
inner join [test]sysobjects d on aid=did and dxtype='U' and aname='时间'
2、遍历这个表名取出数据插入到另外的数据库中(SqlServer中的遍历方法我不是很清楚,给你提供个思路,oracle的话我就能把程序写出来了O(∩_∩)O~)。
如:遍历结果存储到数据库test2中
insert into [test2]遍历出的表名 select from 遍历出的表名 where datediff(day,'2009-08-07',时间)>0;
重复上面的sql语句指导讲数据库test中的表名完全遍历完为止。
补充:我试验了一下下面把实验代码给你(建一个存储过程)
create proc test as
--定义游标变量
declare cur1 cursor for
SELECT dname
FROM [test]syscolumns a
inner join [test]sysobjects d on aid=did and dxtype='U' and aname='时间'
--定义临时变量
declare @tmp varchar(1000)
--定义sql字符串
declare @strsql varchar(4000)
--打开游标
open cur1
--读取第一条数据,也就是第一个表名
fetch next from cur1 into @tmp
--是读完
while(@@fetch_status = 0)
begin
--连接sql文
set @strsql='insert into [test2]'+@tmp++' select from '+@tmp+' where datediff(day,'+char(39)+'2009-08-07'+char(39)+',时间)>0'
--执行这个sql
exec(@strsql)
--读取下一条数据
fetch next from cur1 into @tmp
end
--关闭游标
close cur1
--摧毁游标所占资源
deallocate cur1
---
以上,希望对你有所帮助。
mysql是文件存储的,只用将数据库安装目录下的data下的数据库名称文件夹拷贝出来就相当于数据库备份了,然后你在目标机上重新安装mysql数据库,再将该数据库文件拷贝到相应的data目录下即可。
以上就是关于怎样从数据库中读出数据(sql数据库怎么读取数据)全部的内容,包括:怎样从数据库中读出数据(sql数据库怎么读取数据)、如何提取access数据库中的某个数据、怎么能把数据库里的数据提取出来。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)