| 我们学ACCESS的时候不可避免的要用到SQL语言,因此有些初学者 就会问学ACCESS是不是要再学SQL这个语言啊 其实我们可以不学SQL语言照样用ACCESS做出一个不错的软件 ,但是我们如果学了SQL将会做得更好.事实上在ACCESE中用到SQL相对简单 我们只要了解了SQL语法就完全可以了,下面我们详细的讲一下 关于ACCESS中需要我们掌握SQL的知识.
SQL语言是目前关系式数据库的标准操作语言,其实当我们用ACCESS的QBE(就是我们用查询向导生成查询的那个窗口)视窗建立查询物件后,Access最后将产生SQL语言,只不过用QBE视窗.可提供使用者一个简单的关于SQL的操作界面(这也是为什么我们不学SQL照样可以做出不错的ACCESS软件的地方),SQL语言的组成主要分三个部分(1.资料定义语言DDL;2资料操作语言DML;3.资料控制语言DCL.)
一. SQL常用语句一般可以用下面的SQL语句完成:
SELECT 栏位名称1[AS 栏位别名1]
[,栏位名称2[AS 栏位别名2]] [,...[...]]
FROM 资料名称1,[,资料名称2....]
[WHERE...]
[GROUP BY....]
[HAVING...]
[ORDER BY......]
解释如下:1.SELECT用语将资料从一个或者多个资料表中选择出来 ;2.栏位名称表示你要选取的栏位的名称,如果你要选取所有的栏位,你可以使用"*"或者"资料表名称.*"来表示;3.WHERE主要用于我们要筛选的条件:GROUP BY主要用于将相同值的记录组合 成单一记录;4.HAVING与WHERE相似.用语于决定选取哪些记录.注意当我们使用GROUP BY群组记录后 ,我们要使用HAVING 来决定条件筛选所要显示的记录;5.ORDER BY指定排序的子句.用语指定一个或多个栏位作为递增或者递减排序的依据.
如果订单明细是我们要查找的表,订单编号,数量,单价是表的栏位 我们可以做一个下面的查询:
SELECT 订单明细.订单编号,SUM([数量]*[单价]) AS 订单金额总计
FROM 订单明细
GROUP BY 订单明细.订单编号
HAVING ((订单明细.订单编号)=[请输入您要查找的日期]);
二.JOIN
JOIN用于连接资料表,共有INNER JOIN,LEFT JOIN,RIGHT JOIN三种,INNER JOIN仅显示两个资料表对应栏位中值相同的栏位;LEFT JOIN串联两个资料表中对应栏资料时,以资料表1的资料为主.若资料存在与资料1.但资料2没有对应值时候 仍然显示资料表1的资料;RIGHT JOIN正好相反就不在叙述.
如:供应商名称来自供应商资料表 产品名称来自产品资料表 两个资料表串接栏位为供应商编号(供应商)与供应商(产品),我们SQL语句如下:
SELECT [供应商].[供应商名称],[产品].[产品名称]
FROM 供应商
LEFT JOIN 产品
ON [供应商].[供应商编号]=[产品].[供应商]
三.ALL,DISTINCT,DISTINCTROW与TOP
语法为:SELECT {ALL/DISTINCT/DISTICNTROW/TOP}
栏位名称1 [AS 栏位别名1]
[,栏位名称2[AS 栏位别名2][,...]]
FROM 资料表名称1[,资料表名称2...]
[WHERE ...]
...
ALL显示所有记录,此为默认值可以省略;DISTINCT表示重复的值只显示一次;DISTINCTROW表示对于重复的记录(注意不是值)仅显示一次;TOP n 显示记录中记录顺序为前N笔记录;TOP n PERCENT 显示记录中记录顺序为前百分之N的记录.
其他的还有BETWEEN AND条件 还有运算子(=,<,>,<=,>=,<>(不等于)),AND和OR的区别等等相对简单就不在详细叙述,我们在ACCESS主要就要掌握这些,至于我们要详细的熟悉SQL语法可以看一些关于SQL方面的书(这里推荐SQL自学21天这本书关于语法确实讲的很不错).
|