access查询类型分哪几种?

access查询类型分哪几种?,第1张

access提供了5种类型的查询,包括选择查询、参数查询、交叉表查询、 *** 作查询和SQL查询。

1.选择查询

选择查询是最常见的查询类型,它从一个或多个表中检索数据,在一定的限制条件下,还可以通过选择查询来更改相关表中的记录。使用选择查询也可以对记录进行分组,并且可对记录进行总计、计数以及求平均值等其他类型的计算。

2.交叉表查询

交叉表查询可以在一种紧凑的、类似于电子表格的格式中,显示来源于表中某个字段的合计值、计算值、平均值等。交叉表查询将这些数据分组,一组列在数据表的左侧,一组列在数据表的上部。

注意:可以使用数据透视表向导毒显示交叉表数据,无需在数据库中创建单独的查询。

3.参数查询

参数查询会在执行时d出对话框,提示用户输入必要的信息(参数),然后按照这些信息进行查询。例如,可以设计一个参数查询,以对话框来提示用户输入两个日期,然后检索这两个日期之间的所有记录。

参数查询便于作为窗体和报表的基础。例如,以参数查询为基础创建月盈利报表。打印报表时,Access显示对话框询问所需报表的月份。用户输入月份后,Access便打印相应的报表。也可以创建自定义窗体或对话框,来代替使用参数查询对话框提示输人查

询的参数。

4. *** 作查询

*** 作查询是在一个 *** 作中更改许多记录的查询, *** 作查询又可分为四种类型:删除查询、更新查询、追加查询和生成表查询。

(1)删除查询

从一个或多个表中删除一组记录。例如,可以使用删除查询来删除没有订单的产品。使用删除查询,将删除整个记录而不只是记录中的一些字段。

(2)更新查询

对一个或多个表中的一组记录进行批量更改。例如,可以给某一类雇员增加5%的工资。使用更新查询,可以更改表中已有的数据。

(3)追加查询

将一个(或多个)表中的一组记录添加到另一个(或多个)表的尾部。例如,获得了一些包含新客户信息表的数据库,利用追加查询将有关新客户的数据添加到原有“客户\"表中即可,不必手工键人这些内容。

(4)生成表查询

根据一个或多个表中的全部或部分数据新建表。

5.SQL查询

SQL查询是使用SQL语句创建的查询。经常使用的SQL。查询包括联合查询、传递查询、数据定义查询和子查询等。

(1)联合查询

将来自一个或多个表或查询的字段(列)组合为查询结果中的一个字段或列。例如,如果六个销售商每月都发送库存货物列表,可使用联合查询将这些列表合并为一个结果集,然后基于这个联合查询创建生成表查询来生成新表。

(2)传递查询

直接将命令发送到()DBC数据库,如Micros_oft SQL Server等,使用服务器能接受的命令。例如,可以使用传递查询来检索记录或更改数据。

(3)数据定义查询

用于创建或更改数据库中的对象,如Access或SOL Server表等。

(4)子查询

包含另一个选择查询或 *** 作查询中的SQL Select语句。可以在查询设计网格的“字段”行输人这些语句来定义新字段,或在“准则”行来定义字段的准则。

来自于http://zhidao.baidu.com/question/557787247.html

1.有单表查询,多表查询咯,还可以分为简单查询,联合查询,子查询,连接查询,其中子查还可以分比较子查询,相关子查询等等,单表当然是针对一个表的查询啦,多表查询对于多个表的内容进行查询;

2.思想当然是得到所要的查询结果啦,这个可以考虑把时间降到最低,方法就是查询语句了,select 内容 from 表1,表2 where 条件

3.同样,技巧之类的就是根据不同的查询需求,选择时间消耗最少的

4.注意灵活运用查询方法,往往一个结果可以有多个查询方法,但是只有一个方法最快捷

5.查询是从数据表里面查询数据内容,而数据表是基本数据,实表

6.多表查询,就索引而言,对于查询有加快速度的作用。

自己的理解,可能有些偏差,lz再去问问吧

1、where型子查询

(把内层查询结果当作外层查询的比较条件)

#不用order by 来查询最新的商品

select goods_id,goods_name from goods where goods_id = (select max(goods_id) from goods)

#取出每个栏目下最新的产品(goods_id唯一)

select cat_id,goods_id,goods_name from goods where goods_id in(select max(goods_id) from goods group by cat_id)

2、from型子查询

(把内层的查询结果供外层再次查询)

#用子查询查出挂科两门及以上的同学的平均成绩

思路:

#先查出哪些同学挂科两门以上

select name,count(*) as gk from stu where score <60 having gk >=2

#以上查询结果,我们只要名字就可以了,所以再取一次名字

select name from (select name,count(*) as gk from stu having gk >=2) as t

#找出这些同学了,那么再计算他们的平均分

select name,avg(score) from stu where name in (select name from (select name,count(*) as gk from stu having gk >=2) as t) group by name

3、exists型子查询

(把外层查询结果拿到内层,看内层的查询是否成立)

#查询哪些栏目下有商品,栏目表category,商品表goods

select cat_id,cat_name from category where exists(select * from goods where goods.cat_id = category.cat_id)


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存