如何查询一个ACCESS数据库中的表名和字段?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何查询一个ACCESS数据库中的表名和字段?相关的知识,希望对你有一定的参考价值。

我要的是数据库查询语句,别告诉我用XX软件打开之类的,这年头,为了分儿什么事都干的出来!
关键词:ACCESS 用查询语句而非工具软件

我的分不会糊里糊涂的给出去,没有想要的答案的话,大不了申个新号把分收回来

参考技术A 数据库知识—SQL查询语句精华使用简要

一、 简单查询

简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。

SELECT nickname,email
FROM testtable
WHERE name=张三

(一) 选择列表

选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。

1、选择所有列

例如,下面语句显示testtable表中所有列的数据:

SELECT *
FROM testtable

2、选择部分列并指定它们的显示次序

查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。
例如:

SELECT nickname,email
FROM testtable

3、更改列标题

在选择列表中,可重新指定列标题。定义格式为:
列标题=列名
列名 列标题
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题:

SELECT 昵称=nickname,电子邮件=email
FROM testtable

4、删除重复行

SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。

5、限制返回的行数

使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。
例如:

SELECT TOP 2 *
FROM testtable
SELECT TOP 20 PERCENT *
FROM testtable

(二)FROM子句

FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:

SELECT username,citytable.cityid
FROM usertable,citytable
WHERE usertable.cityid=citytable.cityid

在FROM子句中可用以下两种格式为表或视图指定别名:
表名 as 别名
表名 别名

(二) FROM子句

FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:

SELECT username,citytable.cityid
FROM usertable,citytable
WHERE usertable.cityid=citytable.cityid

在FROM子句中可用以下两种格式为表或视图指定别名:
表名 as 别名
表名 别名
例如上面语句可用表的别名格式表示为:

SELECT username,b.cityid
FROM usertable a,citytable b
WHERE a.cityid=b.cityid

SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。

例如:

SELECT a.au_fname+a.au_lname
FROM authors a,titleauthor ta
(SELECT title_id,title
FROM titles
WHERE ytd_sales>10000
) AS t
WHERE a.au_id=ta.au_id
AND ta.title_id=t.title_id

此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。

(三) 使用WHERE子句设置查询条件

WHERE子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于20的数据:

SELECT *
FROM usertable
WHERE age>20

WHERE子句可包括各种条件运算符:
比较运算符(大小比较):>、>=、=、、!>、!=10 AND age、>=、、!。
3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。
例,下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社:

SELECT *
FROM authors AS a INNER JOIN publishers AS p
ON a.city=p.city
又如使用自然连接,在选择列表中删除authors 和publishers 表中重复列(city和state):
SELECT a.*,p.pub_id,p.pub_name,p.country
FROM authors AS a INNER JOIN publishers AS p
ON a.city=p.city

(二)外连接
内连接时,返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行。而采用外连接时,它返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行。如下面使用左外连接将论坛内容和作者信息连接起来:

SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b
ON a.username=b.username

下面使用全外连接将city表中的所有作者以及user表中的所有作者,以及他们所在的城市:

SELECT a.*,b.*
FROM city as a FULL OUTER JOIN user as b
ON a.username=b.username

(三)交叉连接
交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。例,titles表中有6类图书,而publishers表中有8家出版社,则下列交叉连接检索到的记录数将等于6*8=48行。

SELECT type,pub_name
FROM titles CROSS JOIN publishers
ORDER BY type
参考技术B 在access中设置如下:工具-》选项-》试图,然后勾中“系统对象”,这时在access
里可以看见这个表:MSysObjects,字段“name”就是该数据库中的表名和一些对象。

你可以直接通过SQl语句查询出来了

简单的用一个F*集合就可以就可以读出全部的表名了及数据
参考技术C 给你一个示范:
string str="select * from xxxtable";
OleDbConnection con=new OleDbConnection("provider=microsoft.jet.oledb.4.0;data source="+System.Web.HttpContext.Current.Server.MapPath("../xxx/xxx.mdb"));
con.Open();
OleDbCommand cmd=new OleDbCommand(str,con);
OleDbDataReader dr=cmd.ExecuteReader();
while(dr.Read())


xxxxxxxxxx


dr.Close();
con.Close();
欢迎访问我刚做的作品,
如果你在那上面提问,我更会帮你解答。
www.fasp.com.cn/kevind
参考技术D 是ACCESS,老大们.你们怎么回答的.
工具-选项-试图,然后勾中“系统对象”,这时在access
里可以看见这个表:MSysObjects,字段“name”就是该数据库中的表名和一些对象。
第5个回答  2006-06-18 给你个示范,
<%
star=request.form("star")
set rs=conn.execute("select * from ycdy where instr(star,'"+star+"')")
do while not rs.eof
%>
<div align="center">
<table width="100%" border="1" cellspacing="1" height="220" bordercolor="#C0C0C0">
<tr bgcolor="#FFFFFF">
<td width="100" rowspan="6" height="140">
<a target="_blank" href="see.asp?id=<%=rs("id")%>"><img border="0" src="dytp/<%=rs("id")%>.jpg" width="100" height="140"></a></td>
<td align="left" width="64">影片分类:</td>
<td align="left" width="495"><%=rs("sort")%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="left">影片名称:</td>
<td align="left"><a target="_blank" href="see.asp?id=<%=rs("id")%>"><%=rs("name")%></a></td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="left">领衔主演:</td>
<td align="left"><%=rs("star")%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="left">碟片类型:</td>
<td align="left"><%=rs("dp")%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="left">加入时间:</td>
<td align="left"><%=rs("time1")%></td>
</tr>
<tr>
<td align="left">影片编号:</td>
<td align="left"><%=rs("id")%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="103">影片简介:</td>
<td colspan="2" width="564"><%=rs("cont")%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td colspan="3" height="17"></td>
</tr>
</table>
</div>

<%
rs.movenext
loop
rs.close
set rs=nothing
conn.close
set conn=nothing
%>

如何查看数据库中的表?

参考技术A 怎样用SQL语句查询一个数据库中的所有表?
--读取库中的所有表名select name from sysobjects where xtype='u'--读取指定表的所有列名select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='表名')获取数据库表名和字段sqlserver中各个系统表的作用sysaltfiles 主数据库 保存数据库的文件syscharsets 主数据库 字符集与排序顺序sysconfigures 主数据库 配置选项syscurconfigs 主数据库 当前配置选项sysdatabases 主数据库 服务器中的数据库syslanguages 主数据库 语言syslogins 主数据库 登陆帐号信息sysoledbusers 主数据库 链接服务器登陆信息sysprocesses 主数据库 进程sysremotelogins主数据库 远程登录帐号syscolumns 每个数据库 列sysconstrains 每个数据库 限制sysfilegroups 每个数据库 文件组sysfiles 每个数据库 文件sysforeignkeys 每个数据库 外部关键字sysindexs 每个数据库 索引sy *** enbers 每个数据库 角色成员sysobjects 每个数据库 所有数据库对象syspermissions 每个数据库 权限systypes 每个数据库 用户定义数据类型select 列名=name from syscolumns where id=object_id(N'要查的表名')
如何查看oracle数据库中的所有表
觉得你应该先弄清楚oracle的常规数据字典的结构,像9i里的常规数据字典中对象名称就有以USER,ALL,DBA为前缀的对象。

以USER为例,我们查该对象下有些什么表,就应该执行下列的语句:

SQL>select table_name from user_tables;

类似的,你可以进行替换。:)

如果你想查数据库中所有的表的话,可以查询

SELECT * FROM dba_tables

如果你想查询数据库中某个用户下的表的话,也可以登录这个用户,再查询:

SELECT * FROM USER_TABLES

要想导入外部sql语句可以用命令

sql >@e:\文件名.sql

如你想保存 select * from tablename;语句的结果,可以在sql*plus 里面这样:

SPOOL c:\test.sql 这是保存文件的位置

select * from tablename;

SPOOL OFF
mysql如何进入数据库查看所有表
mysql> use my_db;

mysql> select * from rmation_schema.tables t where t.table_schema='my_db';

--大概

Mysql> create table lala (la_id int ,la_name varchar(55) primary(id)) enginee=innodb
怎样看SQL数据库中哪些表有数据
什么数据库

1.

select * from rmation_schema.tables

2.

select table_name from user_all_tables

-------------------------

CREATE PROCEDURE get_table AS

if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tablespace]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

create table tablespace --创建结果存储表

(name varchar(50) ,

rows int , reserved varchar(20) ,

data varchar(20) ,

index_size varchar(20) ,

unused varchar(20) )

truncate table tablespace --清空数据表

--这里.....关键部分.把存储过程的结果放到一个表里.

insert into tablespace exec sp_MSforeachtable "exec sp_spaceused '?'"

go

查询运行该存储过程后得到的结果

select * from tablespace order by cast(left(ltrim(rtrim(reserved)) , len(ltrim(rtrim(reserved)))-2) as int) desc

以上是关于如何查询一个ACCESS数据库中的表名和字段?的主要内容,如果未能解决你的问题,请参考以下文章

如何快捷地查询Oracle中每个用户表的表名和行数?

sql server2008如何查询在指定的数据库中所有的表名和每个表的字段名及字段类型

Java 中获得Access 数据库中的表名和表中的列名 及每个列的数据类型

Oracle怎么查询表名,字段名以及字段的属性

如何修改数据表的表名、字段名、字段属性等信息?

SQL 查表名?