(完整版)ACCESS数据库中常见的SQL语句汇总教程.docx
《(完整版)ACCESS数据库中常见的SQL语句汇总教程.docx》由会员分享,可在线阅读,更多相关《(完整版)ACCESS数据库中常见的SQL语句汇总教程.docx(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、ACCESS数据库的SQL语句教学1、查询所有记录:Select*通常用于快速查看表中的记录。当对表的结构无法确切记忆时,或要快速查看表中的记录时,使用Select *是很方便的。use企业销售管理系统Select * from 职工2、投影查询:很多时候并不需要将所有列的数据都显示出来。投影查询就是允许用户显示 所需要的列。假设显示职工表中职工号、姓名、工资信息,具体操作方法如下。Select职工号,姓名,工资from职工在Select查询中,还可以按照实际的需要或自己的喜好安排显示列的顺序,如果要把姓名放到第一列,则代码如下:Select姓名,职工号,工资from职工3、条件查询:显示wh
2、l或wh2仓库、性别不为女、工资在130。2100之间的职工信息。具 体操作如下:Select * from 职工号 where(仓库号=111 or 仓库号=wh2)And not 性别=女and 工资=1300 and 工资二2100在这里一定要注意,(仓库号=111or仓库号=wh2)一定要加括号,否则就不是原题的意思。4、谓词In查询:在查找特定条件的数据时,如果条件较多,就需要用到多个Or运算符,以查找满足其中任一条的记录。但使用多个Or运算符,将使Where子句变得过于冗长,这时使用In就非常清楚。另外,在后面讲解的嵌套查询中,也必须使用In查询。下面以显示zgl、zg2、zgll
3、. zgl5的订购单信息为例具体讲解一下。word版整理先求出职工所在仓库的最大工资与最小工资之差在380800之间的职工所在的仓库号,再 利用这个仓库号显示仓库信息。Select * from 仓库,where 仓库号 in(Select 仓库号 from 职工 group by 仓库号 hav ing d max(工资)min(工资)between 380 and 80019、内外层嵌套实现分组功能:利用group by分组显示统计字段信息,有很多字段不能显示。 如显示不同仓库的平均工资信息,在这个查询中只能显示仓库号,不能显示职工号及职工的工 资。因为不同仓库的平均工资,有几个仓库就显示
4、几条平均工资,而每个仓库中的职工则有很 多。下面以显示不同职工经手订购单金额最大的订单信息为例来讲解一下。在这里应该边求出每名职工订购单金额的最大值,边显示该职工所对应的这条订购单信息。 具体代码如下:Select a.* from订购单a where金额=(select max(金额)from订购单where职工号=a.职工号)注意:上面语句中的订购单a是给这个订购单起的一个别名,大家可以把它看成就其实就是 订购单的一张复制的表,在这里运用它只是为了使内外层的嵌套更清晰、更容易理解。20、分组查询字段显示在表字段中及运算字段:如果在职工表中添加职工所在仓库的平均 工资值字段,这就对实际编程有
5、很大的意义,即可以利用平均字段进行运算,大大提高编程速 度。下面以在职工表中添加职工所在的仓库的平均工资字段为例来讲解一下。Select a.* /Select avg(工资)from职工where仓库号=a.仓库号)as所在仓库的平均工资 from职工aword版整理在Select查询中,还可以计算出每名职工的工资与职工所在仓库的平均工资之差,具体操作如 下:Select a.* /Select avg(工资)from职工where仓库号=a.仓库号)as所在仓库的平均工资,工资- (Select avg(工资)from职工where仓库号=a.仓库号)as所在仓库的平均工资之差from职工
6、a21、Exists谓词查询:其实In就是谓词查询,还有谓词Exists与Exists,这两个谓词实现的功 能是相同的,只是写法不同。In多用于嵌套子查询语句中,而Exists多用于判断Select语句是否 返回查询结果。常用量词有Any、All和Some是同义词。在进行比较运算时,只要子查询中有一 行能使结果为真,结果就为真。而AH则要求子查询中所有行都使结果为真时,结果才为真。下 面以显示那些仓库中还没有职工的仓库信息为例,讲解一下In渭词与Exists谓词在代码上的不同。用Exists谓词实现:Select * from 仓库 where not Exists(Select * from
7、 职工 where 仓库号=仓库.仓库 号)用In谓词实现:Select * from 仓库 where 仓库号 not in(Select 仓库号 from 职工)22、Any量词查询:Any量词查询,在进行比较运算时,只要子查询中有一行能使结果为真, 则结果即为真。下面就以显示工资大于等于wh2仓库中任一名职工工资的职工信息为例,讲解一 下Any量词的应用。用Any量词实现:Select * from职工where工资=any(Select工资from职工where仓库号=wh2)使用统计 函数实现:word版整理Select * from 职工 where 工资=(Select min(
8、工资)from 职工 where 仓库号=wh2)23、AH量词查询:AH量词查询,要求子查询中所有行都使结果为真时,结果才为真。下面就 以显示工资大于等于whl仓库中所有职工工资的职工信息为例,讲解一下All量词的应用。用Any量词实现:Select * from职工where工资=AH(Select工资from职工where仓库号=wh7)使用统计函I数实现:Select * from 职工 where 工资=(Select MAX(工资)from 职工 where 仓库号=whl)前面讲 解的量词查询都可以用统计函数代替,但有些查询是不能用统计函数代替的。下面 以显示工资大于所有不同仓库
9、的平均工资的职工信息为例为讲解一下。Select * from职工where工资,all(Select avg(工资)from职工group by仓库号)该题用统计函I数就无法解决。24、显示部分记录的Top查询:在编程中,有时只需显示满足条件的前几条记录,这时就 可以使用Top关键字。可以直接使用Top数字,显示指定条数记录;也可以使用Top数字Pere ent, 显示所有满足条件记录的前百分之几条记录。下面以显示工资最高的前三条职工信息为例来讲解一下。Select top3 * from 职工 order by 工资 desc25、保存查询:利用Into语句可以把查询的结果保存成一张新表。
10、下面就以备份“职工”表为 例讲解一下保存查询。Use企业销售管理系统Select * into职工备份from职工word版整理这样就生成一张新表,表名为“职工备份”。26、集合的并运算:SQL支持集合的并运算(Union),即可以将两个Selec语句的查询结 果通过并运算合并成一个查询结果。为了进行并运算,要求这样的两个查询结果具有相同的字 段个数,并且对应的字段的值要出自同一个值域,即具有相同的数据类型和取值范围。Select * from 仓库 where 城市=北京,UnionSelect * from 仓库 where 城市=上海,27、集合的交运算:SQL支持集合的交运算(Inte
11、rsect),即可以将两个Selec语句的查询 结果通过交运算合并成一个查询结果。为了进行交运算,要求这样的两个查询结果具有相同的 字段个数,并且对应的字段的值要出自同一个值域,即具有相同的数据类型和取值范围。Select仓库号from 仓库IntersectSelect仓库号from职工注意它们对集合的差运算不支持。28、多表连接查询:多表连接查询就是将多个表中的数据结合到一起的查询,即连接操作 可以在一个Select语句中完成从我个表中查找用处理数据。使用连接的列必须是可连接的,即它 们具有相同的数据类型、相同的意义。使用连接的列,列名可以相同,也可以不同。29、笛卡儿积:有的时候,如果连
12、接条件没有设置好,或者没有设置连接条件,则结果将 包含太多的行,这就是由笛卡儿积造成的。从原理上来讲,连接首先将形成表的笛卡儿积,即 形成用于连接的表中所有的行的组合。下面以仓库表与职工表连接为例为讲解一下。word版整理Select * from职工,仓库这是从两张表中显示所有字段,所以字段有重复,并且产生了 90条记录,原因是仓库表中 有5条记录,职工表有18条记录,所以连接的结果是18x5=90条记录。用于连接的表越多,则笛 卡儿积的结果将越大。30、多表连接:在进行多表连接时,一定要注意连接条件,下面以仓库表与职工表连接为 例来讲解一下多表连接。Select * from职工,仓库wh
13、ere职工.仓库号二仓库.仓库号这时显示的记录就没有那么多了,只显示18条记录,并且发现两张表的仓库号是相对应的。假设显示工资大于1500,面积大于600的城市与姓名信息。Select城市,姓名* from职工,仓库where职工.仓库号二仓库.仓库号and工资1500 and面积 60031、超连接查询:超连接查询也是连接查询,所以必须有两张或两张以上的表。超连接查 询共有4种:内连接查询、左连接查询、右连接查询、全连接查询。使用超连接查询不仅可以把 满足条件的记录显示出来,还可以把一部分不满足条件的记录以NULL显示出来。1)内连接查询:只有满足连接条件的记录才出现在查询结果集中。下面以显
14、示面积大于600的仓库号、职工号、城市、面积、工资信息为例为讲解一下内连接:超连接:Select仓库.仓库号,职工号,城市,面积,工资from仓库inner join职工on职工.仓库号=仓库. 仓库号and面积600普通连接:word版整理Select仓库.仓库号,职工号,城市,面积,工资from职工,仓库where职工.仓库号=仓库.仓库号 and 面积 600与左连接查询:除满足连接条件的记录显示外,第一张表中不满足条件的记录也出现在查 询结果集中。下面以显示面积大于600的仓库号、职工号、城市、面积、工资信息为例为讲解一 下左连接。Select仓库.仓库号,职工号,城市,面积,工资fr
15、om仓库left join职工on职工.仓库号=仓库.仓 库号and面积600与右连接查询:除满足连接条件的记录显示外,第二张表中不满足条件的记录也出现在 查询结果集中。下面以显示面积大于600的仓库号、职工号、城市、面积、工资信息为例为讲 解一下右连接。Select仓库.仓库号,职工号,城市,面积,工资from仓库right join职工on职工.仓库号=仓库. 仓库号and面积6004)全连接查询:除满足连接条件的记录显示外,两张表中不满足条件的记录也出现 在查询结果集中。下面以显示面积大于600的仓库号、职工号、城市、面积、工资信息为例为 讲解一下全连接。Select仓库.仓库号,职工号
16、,城市,面积,工资from仓库full join职工on职工.仓库号=仓库.仓 库号and面积6009多表超连接查询:前面讲解了两个表的超连接,那么如果是3张表或更多张表该如何实 现超链接呢?下面以显示面积大于600的仓库号、职工号、城市、面积、工资、金额信息为例 为讲解一下多表超连接。要显示的字段信息来源于3张表,仓库表、职工表、订购单表,这里 实现仓库表与职工表的左连接,职工表与订购单表的右连接。word版整理Select仓库.仓库号,职工号,城市,面积,工资,金额from仓库left join职工on职工.仓库号=仓库.仓库号right join订购单on职工.职工号二订购单.职工号an
17、d面积60032、Insert插入语句:向数据库表中插入数据是最常用的功能:1)指定所有列:Insert into 仓库(仓库号,城市,面积,创建时间)values (wh6;W,800,2005-1 2-01,)按下键盘上的F5键,会显示(1行受影响),这表示已成功地插入一条记录。再在数据库引擎查 询文档中输入“Select* from仓库”,然后按下键盘上的F5键,就可以执行该SQL语句,这样就可以 在查询结果上看到你插入的记录。在这里要注意,仓库ID是自动编号,所以不能插入。其实上 面的代码还可以省略表后面的字段,这样也可以成功地插入记录。Insert into 仓库 values (w
18、h6,郑州,800,2005-12-01) 2)指定部分列:下面以向仓库表中添加一条记录为例来讲解一下指定部分列。Insert into 仓库(仓库号,面积)values fwh7,800)上述代码也可以这样来写:Insert into 仓库 values (wh7,null,800,null)或Insert into 仓库(仓库号,城市,面积创建时间)values (wh7,null,800,nul)3)带有子查询的插入语句:使用带有子查询的插入语句,首先要注意两个表的结构相同。下 面还是用一个实例来讲解一下。首先创建一张与仓库表结构相同的空表,然后在数据库引擎查询文档中输入如下代码:wor
19、d版整理Select * into 仓库 blank from 仓库 where 面积0按下键盘上的F5键,会显示(0行受影响),这表示已成功地插入一条记录。再在数据库引擎 查询文档中输入“Select * fiwi仓库blank”,然后按下键盘上的F5键,就可以执行该S QL语句, 这样就产生了一张与仓库表结构相同的空表。下面就可以利用带有子查询的插入语句向仓库blank中插入记录了。Insert into仓库blank(仓库号,城市,面积,创建时间)select仓库号,城市,面积,创建时间from 仓库where面积600按下键盘上的F5键,会显示(6行受影响),这表示已成功地插入6行记录
20、。再在数据库引擎查 询文档中输入“Select *finm仓库blank”,然后按下键盘上的F5键,就可以执行该S QL语句,这 样就可以利用Insert语句一次向表中插入多条记录。33、Update更新语句:向数据库表中添加记录后,可能需要对数据库进行修改。1)修改所有记录:下面以为所有仓库的面积都增加100为例为讲解一个修改所有记录。Update仓库set面积=面积+1002)指定条件的更新语句:下面以把城市在上海或北京的仓库的面积增加100为例,来讲解一下指定条件的更新语句。Use企业销售管理系统Update仓库set面积=面积+100 where城市=上海or城市=北京34、Delet
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 ACCESS 数据库 常见 SQL 语句 汇总 教程
限制150内