如何提取access数据库中的某个数据

如何提取access数据库中的某个数据,第1张

数据库使用二维表存储数据,它不像电子表格那样,具有固定的行号和列号。相对于电子表格来讲,它的列号相当于各个字段名,但是它没有固定的列号,垂直方向的坐标需要由各个记录行的字段值来确定。

获取数据表某些单元的数据,一般可以用SQL选择查询,选定输出字段加上筛选条件选字段来确定,例如

select 课程 from 课程表 where 课程id='001';

如果数据表具有唯一约束的列,例如主键或带唯一索引的字段,那么我们就可以用该列名或者说是字段名(横向坐标)加列值(纵向坐标)来精确定位某个记录单元。但是如果不存在唯一标识列的情况下,我们就无法精确定位到某个记录单元了 因为它会返回多个记录行。其实用电子表格单元格的概念去理解数据库表,并不是一个好主意,电子表格和数据库的用途不同,各有各的强项。但就数据处理的能力来讲,数据库要远较电子表格强大,前者关注于数据的储存、管理,和检索,后者关注于数据的展示。请注意现实中数据库中的数据的使用是要通过应用程序来体现的,例如从数据库检索出数据导入到excel做进一步处理并某种外观予以展示。

可能不甚了解。本文就介绍了怎么样在Excel软件中获取其它数据库中的数据,以便在常用的数据处理软件中利用其它数据库中的数据。

关键字:Microsoft Excel,数据库,导入,表,Microsoft uery。

一、Microsoft Excel 2003简介

Microsoft Excel 2003是Microsoft Office 2003中的一个组件,它是一个高效、实用的电子表格软件,具有强大的数据处理与数据分析能力,为广大用户进行数据处理提供了一个很好的工具,也为广大的用户所熟悉。如何在Excel中利用其它数据库中的数据呢?

二、导入其它数据库表中的数据到Excel中

在Microsoft Excel中导入其它数据库表中的数据的方法非常简单。具体 *** 作步骤如下:

第一步,启动Microsoft Excel,新建或者打开需要数据的工作簿,选中相应的工作表,并选中新导入的数据存放的起始单元格;

第二步,执行“数据”→“导入外部数据”子菜单下的“导入数据”命令,在对话框中选择要导入的数据所在的文件的类型,并通过对话框中的“查找范围”后面的下拉箭头找到要导入的数据文件所在的位置。

第三步,选中要导入的文件,单击图1所示对话框中的“打开”按钮。至此,选中的数据表中的数据就导入到了当前工作簿的当前工作表中了,当然也可以将导入的数据放在新的工作表中。

举例:在Excel工作簿“导入XLS”中的sheet1工作表导入一个VFP(Visual FoxrPro,下同 )中的表(学生dbf)中的数据。导入的具体 *** 作步骤如下:

首先打开工作簿“导入XLS”,选中sheet1工作表,如图2所示;执行“数据”→“导入外部数据”子菜单下的“导入数据”命令,在对话框中选择要导入的数据的文件的类型,并通过对话框中的“查找范围”后面的下拉箭头找到要导入的数据文件所在的位置;选中要导入数据的dbf文件(此例的选择见图3),单击“打开”按钮。这样,就在Excel工作簿“导入XLS”中的sheet1工作表中导入了VFP中建立的数据库表文件“学生dbf”中的数据。结果如图4所示。

以上是在Excel工作表中导入VFP数据表中的数据的 *** 作方法。如果要在Excel工作表中导入其它数据库表中的数据, *** 作方法基本相似。说明以下几点:

show tables即为显示当前数据库中所有的表。又如:

mysql> use mysql

Database changed

mysql> show tables;

+---------------------------+

| Tables_in_mysql |

+---------------------------+

| columns_priv |

| db |

| event |

| func |

| general_log |

| help_category |

| help_keyword |

| help_relation |

| help_topic |

| innodb_index_stats |

| innodb_table_stats |

| ndb_binlog_index |

| plugin |

| proc |

| procs_priv |

| proxies_priv |

| servers |

| slave_master_info |

| slave_relay_log_info |

| slave_worker_info |

| slow_log |

| tables_priv |

| time_zone |

| time_zone_leap_second |

| time_zone_name |

| time_zone_transition |

| time_zone_transition_type |

| user |

+---------------------------+

28 rows in set (005 sec)

这个是显示“mysql”这个数据库中的所有的表,一共有28张。

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

---

以上,希望对你有所帮助。

HTML是无法读取数据库的,HTML是页面前端脚本语言,要想从HTML网页中获取SQL数据库里的数据,需要借助JSP或ASP或PHP或RUBY等语言来实现。

SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同。在SQL中,关系模式(模式)称为“基本表”(base table);存储模式(内模式)称为“存储文件”(stored file);子模式(外模式)称为“视图”(view);元组称为“行”(row);属性称为“列”(column)。

扩展资料

SQL语言的组成:

1、一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。

2、一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。

3、一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。

4一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储上一个物理文件对应。

5用户可以用SQL语句对视图和基本表进行查询等 *** 作。在用户角度来看,视图和基本表是一样的,没有区别,都是关系(表格)。

6SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN,COBOL和Ada语言等。

参考资料:百度百科▬SQL数据库

下面是一个从 mysql 数据获取用户数据的案例,可以参考一下:

import javasqlConnection;

import javasqlDriverManager;

import javasqlResultSet;

import javasqlSQLException;

import javasqlStatement;

import javautilArrayList;

import javautilList;

// 用户类,存储单个用户信息

class User {

private int id;

private String name;

public User(int id, String name) {

thisid = id;

thisname = name;

}

public int getId() {

return id;

}

public void setId(int id) {

thisid = id;

}

public String getName() {

return name;

}

public void setName(String name) {

thisname = name;

}

@Override

public String toString() {

return "User [id=" + id + ", name=" + name + "]";

}

}

public class Demo1 {

public static void main(String[] args) throws ClassNotFoundException, SQLException {

// 本例使用 mysql 数据库,演示将数据库 test 的 tb_users 表中的用户信息

// 放到 List 中

// 加载数据驱动

ClassforName("commysqljdbcDriver");

// 数据库连接字符串, 此例数据库为 test

String url = "jdbc:mysql://localhost:3306/test";

String user = "root"; // 数据库用户名

String password = ""; // 数据库密码

// 打开一个数据连接

Connection conn = DriverManagergetConnection(url, user, password);

Statement stmt = conncreateStatement();

// 获取表 tb_users 所有用户信息到结果集中

ResultSet rs = stmtexecuteQuery("SELECT id, name FROM tb_users");

// 定义一个存放用户信息的 List

List<User> users = new ArrayList<>();

// 提取用户信息,并将用户信息放入 List

while (rsnext()) {

// 获取用户ID

int id = rsgetInt(1);

// 获取用户名

String name = rsgetString(2);

usersadd(new User(id, name));

}

rsclose();

stmtclose();

connclose();

// 显示用户信息

for (User u : users) {

Systemoutprintln(u);

}

}

}

打开SQL企业管理器,把所涉及的两个数据库都连接上

打开旧数据库

表--

搞定了,数据表结构以及表中数据就全部复制过来了,至于你取部分数据什么的,自己通过SQL查询分析器去修改表中的数据吧

通过查询语句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换成你的主键名称

以上就是关于如何提取access数据库中的某个数据全部的内容,包括:如何提取access数据库中的某个数据、怎样从Excel中读取其他数据库的数据、mysql 查询怎么获取数据库下所有表的信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/10058356.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存