
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目录下即可。
我这只是思路啊,这个要实现的话要使用多线程技术
一个线程负责产生随机数与抽取数据
1首先一个随机数
对比内变量里的随机数,是否有重复,如果重复则此次无效,重新生成
2,根据此随机数抽取数据库中数据。
另一个线程负责清空内存变量的数据
即此线程开着一个计时器,然后根据时间来清除数据
希望对你有所帮助
读取数据库,首先要将数据库的驱动包导入:如果是mysql数据库,需要导入mysql-connector-java-5127jar,如果是oracle就需要导入oraclejar包;
然后就是建立数据库连接,使用Connection 新建连接,然后执行你的sql语句查询出需要的数据,下面是两个方法: public PageModel findAllUser(int pageNo,int pageSize){String sql = "select from user where user_name <> 'root' order by user_name" +"limit" + (pageNo - 1) pageSize + "," + pageSize;PageModel pageModel =null;Connection conn =null;Statement stmt =null;ResultSet rs = null;try{conn = DBgetConn();stmt = conncreateStatement();rs = stmtexecuteQuery(sql);List user_List = new ArrayList();while(rsnext()){User user = new User();usersetUser_name(rsgetString("user_name"));usersetUser_password(rsgetString("user_password"));usersetUser_tel(rsgetString("user_tel"));usersetUser_email(rsgetString("user_email"));usersetUser_createDate(rsgetTimestamp("user_createdate"));user_Listadd(user);}//取得所有记录int totalRecords = getTotalRecords(conn);pageModel = new PageModel();pageModelsetPageSize(pageSize);pageModelsetList(user_List);pageModelsetTotalRecord(totalRecords);}catch(SQLException e){eprintStackTrace();}finally{DBclose(rs);DBclose(stmt);DBclose(conn);}return pageModel;} / 取得所有记录 @param conn @return 所有记录totalRecords /public int getTotalRecords(Connection conn){String sql = "select count() from user where user_name <> 'root' ";int totalRecords = 0;Statement stmt = null;ResultSet rs = null;try{conn = DBgetConn();stmt = conncreateStatement();rs = stmtexecuteQuery(sql);if(rsnext()){totalRecords = rsgetInt(1);}}catch(SQLException e){eprintStackTrace();}finally{DBclose(rs);DBclose(stmt);DBclose(conn);}return totalRecords;}
哎呀,你这样子提问题真的不好回答。你学过什么了?会哪些东西?做一个数据库相关的程序,大致过程就是下面这样子:
首先要连接到数据库,比如
Java
就是用
JDBC。
然后打开一个连接,Java
中就是一个
Connection。
创建一个查询,开始查询数据库
遍历查询的结果,这里就是你上面要做的,挨个赋值
最后一定要记住关闭查询和连接,释放资源。
在
Net,PHP,Python
也是类似的。
不过,在实际开发中,可不是这样了,不仅效率太低而且程序不好维护。
通过查询语句select from user where id=1
我不知道你这个username指的是不是字段,如果是要取出表中某个字段的值。
可以通过select 字段名1,字段名2 from user where id=1。
-- MS sql server2005以上,ORACLE
select from (
select row_number() over ( order by starttime asc) as rownum, from steriworkrecord
where starttime between '2013-11-1' and '2013-12-31'
) a
where rownum between 2 and 10
-- 注意( order by starttime asc)是你排序的方式asc升序,desc降序
-- ORACLE还可以
select from (
select rownum as n, from steriworkrecord
where starttime between '2013-11-1' and '2013-12-31'
) a
where an between 2 and 10
-- MYSQL,postgreSQL似乎只能标量子查询
SELECT FROM (
SELECT a,(
SELECT count() FROM steriworkrecordb WHERE bID<= aID) AS n
from steriworkrecorda
) ts
where tsn between 2 and 10
-- 注意bID<= aID 其中ID换成你的主键名称
以上就是关于怎么能把数据库里的数据提取出来。全部的内容,包括:怎么能把数据库里的数据提取出来。、mysql数据库,数据如何提取、C# 数据库随机抽取数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)