ACCESS教学课件:第5章 SQL语句_第1页
ACCESS教学课件:第5章 SQL语句_第2页
ACCESS教学课件:第5章 SQL语句_第3页
ACCESS教学课件:第5章 SQL语句_第4页
ACCESS教学课件:第5章 SQL语句_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、高教出版社高教出版社1第5章 SQL语句 主讲主讲:XXXXXX教学教学资源邮箱资源邮箱:高教出版社高教出版社2重难点重难点 了解了解SQL语言的定义语言的定义; 掌握数据定义语言、数据操纵语言;掌握数据定义语言、数据操纵语言; 熟练掌握熟练掌握Select及其子句。及其子句。高教出版社高教出版社3在在AccessAccess中,创建和修改查询最方便的方法是使用查中,创建和修改查询最方便的方法是使用查询询“设计设计”视图。但是,在创建查询时并不是所有的视图。但是,在创建查询时并不是所有的查询都可以在系统提供的查询设计视图中进行,有的查询都可以在系统提供的查询设计视图中进行,有的查询只能通过查询

2、只能通过SQLSQL语句来实现。比如通过命令方式创语句来实现。比如通过命令方式创建数据表等。建数据表等。SQLSQL查询是使用查询是使用SQLSQL语句创建的一种查询语句创建的一种查询。高教出版社高教出版社4SQLSQL是是Structured Query LanguageStructured Query Language(结构化查询语言)(结构化查询语言)的缩写。的缩写。SQLSQL语言集数据定义、数据操纵和数据管理语言集数据定义、数据操纵和数据管理三大功能于一体,是目前关系数据库通用语言。查询三大功能于一体,是目前关系数据库通用语言。查询是是SQLSQL语句的重要组成部分,但不是全部。在语

3、句的重要组成部分,但不是全部。在AccessAccess中,查询对象的本质上是一个用中,查询对象的本质上是一个用SQLSQL语言编写的命令。语言编写的命令。当我们使用查询设计器窗口可视化的创建查询时,系当我们使用查询设计器窗口可视化的创建查询时,系统将自动把它转换为统将自动把它转换为SQLSQL语言编写的语句并保存起来,语言编写的语句并保存起来,运行一个查询对象实质上就是执行这个运行一个查询对象实质上就是执行这个SQLSQL命令。命令。高教出版社高教出版社5引例引例 子查询子查询在前面章节中我们介绍了通过查询设计视图创建查询的基本方法,下面我在前面章节中我们介绍了通过查询设计视图创建查询的基本

4、方法,下面我们查询一下们查询一下“比软件工程贵的图书基本信息比软件工程贵的图书基本信息”。分析这个查询可以看。分析这个查询可以看出要查询比软件工程贵的图书信息,首先需要查询软件工程这本出要查询比软件工程贵的图书信息,首先需要查询软件工程这本书的价格,然后才能查找出比该书贵的图书信息。书的价格,然后才能查找出比该书贵的图书信息。高教出版社高教出版社6其操作过程如下:其操作过程如下:(1 1)通过)通过“图书信息表图书信息表”查询软件工程图书的价格,如图查询软件工程图书的价格,如图5.15.1所示。所示。图5.1 软件工程书籍价格查询高教出版社高教出版社7(2 2)通过查询出的书籍价格,查找比该书

5、贵的其它书籍信息,其查询设)通过查询出的书籍价格,查找比该书贵的其它书籍信息,其查询设计如图计如图5.25.2所示。所示。图5.2 子查询设计高教出版社高教出版社8授课内容授课内容5.1 SQL语言概述语言概述5.2 查询与查询与SQL视图视图5.3 数据定义数据定义5.4 数据操纵数据操纵5.5 数据查询数据查询高教出版社高教出版社95.1 SQL语言概述语言概述2020世纪世纪8080年代初,美国国家标准协会(年代初,美国国家标准协会(ANSIANSI)开始着手制定)开始着手制定SQLSQL标准,最早标准,最早的的ANSIANSI标准于标准于19861986年完成,它也被叫做年完成,它也被

6、叫做SQL86SQL86。随后,。随后,SQLSQL标准几经修改和标准几经修改和完善,其间经历了完善,其间经历了SQL89SQL89、SQL92SQL92,一直到最近的,一直到最近的SQL99SQL99等多个版本,每个新等多个版本,每个新版本都较前面的版本有重大改进。目前,各主流数据库产品采用的版本都较前面的版本有重大改进。目前,各主流数据库产品采用的SQLSQL标准标准是是19921992年制定的年制定的SQL92SQL92。SQLSQL语句可以用来执行各种各样的操作。目前流行语句可以用来执行各种各样的操作。目前流行的关系数据库管理系统,如的关系数据库管理系统,如QracleQracle、S

7、ybaseSybase、SQL ServerSQL Server、Visual FoxProVisual FoxPro、AccessAccess等都采用了等都采用了SQLSQL语言标准,而且很多数据库都对语言标准,而且很多数据库都对SQLSQL语句进行了再开语句进行了再开发和扩展。发和扩展。高教出版社高教出版社10SQLSQL语言具有如下特点:语言具有如下特点:(1 1)SQLSQL是一种一体化的语言。它集数据定义、数据查询、数据操纵是一种一体化的语言。它集数据定义、数据查询、数据操纵和数据控制功能于一体,可以独立完成数据库的全部操作。和数据控制功能于一体,可以独立完成数据库的全部操作。(2

8、2)SQLSQL高度非过程化。它没有必要一步步地告诉计算机高度非过程化。它没有必要一步步地告诉计算机“如何如何”去去做,而只需要描述清楚用户要做,而只需要描述清楚用户要“做什么做什么”,SQLSQL语言就可以将要求交给语言就可以将要求交给系统,自动完成全部工作。系统,自动完成全部工作。方式方式为用户提供了灵活的选择余地。此外,尽管为用户提供了灵活的选择余地。此外,尽管SQLSQL的使用方式不同,的使用方式不同,但但SQLSQL语言的语法基本是一致的。语言的语法基本是一致的。高教出版社高教出版社11(3 3)SQLSQL语言非常简洁。虽然语言非常简洁。虽然SQLSQL语言功能很强,但它只有为数不

9、多的语言功能很强,但它只有为数不多的9 9条命令:条命令:CREATECREATE、DROPDROP、ALTERALTER、SELECTSELECT、INSERTINSERT、UPDATEUPDATE、DELETEDELETE、GRANTGRANT、REVOKEREVOKE。另外。另外SQLSQL的语法也非常简单,它很接近英语自然语言,的语法也非常简单,它很接近英语自然语言,因此容易学习和掌握。因此容易学习和掌握。(4 4)SQLSQL语言可以直接以命令方式交互使用,也可以嵌入到程序设计语言可以直接以命令方式交互使用,也可以嵌入到程序设计语言中以程序方式使用。现在很多数据库应用开发工具都将语言

10、中以程序方式使用。现在很多数据库应用开发工具都将SQLSQL语言直语言直接融入到自身的语言之中,使用起来更方便,接融入到自身的语言之中,使用起来更方便,AccessAccess就是如此。这些就是如此。这些使用方式为用户提供了灵活的选择余地。此外,尽管使用方式为用户提供了灵活的选择余地。此外,尽管SQLSQL的使用方式不的使用方式不同,但同,但SQLSQL语言的语法基本是一致的。语言的语法基本是一致的。高教出版社高教出版社12AccessAccess在在SQLSQL方面支持数据定义、数据查询和数据操纵功能,但在具体实现方面支持数据定义、数据查询和数据操纵功能,但在具体实现方面也存在一些差异。在方

11、面也存在一些差异。在AccessAccess的查询的查询“设计试图设计试图”窗口,为了能够看到窗口,为了能够看到查询对象相应的查询对象相应的SQLSQL语句或直接编辑语句或直接编辑SQLSQL语句,用户只要单击语句,用户只要单击“视图视图”菜单菜单中的中的“SQLSQL视图视图”命令,就可以直接编辑或者创建命令,就可以直接编辑或者创建SQLSQL语句。语句。高教出版社高教出版社13我们前面在查询设计器中创建的查询,我们前面在查询设计器中创建的查询,AccessAccess将把它们转换为对应的将把它们转换为对应的SQLSQL命令,更改命令,更改SQLSQL命令后,命令后,AccessAccess

12、也会转化其对应的视图设计。我们学习也会转化其对应的视图设计。我们学习AccessAccess的时候不可避免的要用到的时候不可避免的要用到SQLSQL语言,因此有些初学者,就会问学语言,因此有些初学者,就会问学AccessAccess是不是要再学是不是要再学SQLSQL这个语言啊,其实我们可以不学这个语言啊,其实我们可以不学SQLSQL语言照样用语言照样用AccessAccess做一个不错的软件,但是我们如果学了做一个不错的软件,但是我们如果学了SQLSQL将会做的更好,事实上将会做的更好,事实上在在AccessAccess中用到中用到SQLSQL相对简单,我们只要了解了相对简单,我们只要了解了

13、SQLSQL语法就完全可以了。语法就完全可以了。高教出版社高教出版社14注意:某些注意:某些SQLSQL查询不能在查询设计视图中进行可视化的创建,这些查询查询不能在查询设计视图中进行可视化的创建,这些查询我们称为我们称为SQLSQL特定查询。对于传递查询、数据定义查询和联合查询都属于特定查询。对于传递查询、数据定义查询和联合查询都属于SQLSQL特定查询它们不能通过查询设计器进行可视化设计,必须直接在特定查询它们不能通过查询设计器进行可视化设计,必须直接在“SQLSQL视图视图”中创建中创建SQLSQL语句。语句。高教出版社高教出版社155.2 查询与查询与SQL视图视图在在AccessAcc

14、ess中,任何一个查询都对应着一个中,任何一个查询都对应着一个SQLSQL语句,可以说查询对象的实语句,可以说查询对象的实质是一条质是一条SQLSQL语句。当使用语句。当使用“设计设计”视图创建一个查询时,就会构造一个视图创建一个查询时,就会构造一个等价的等价的SQLSQL语句。查询语句。查询“设计设计”视图和相应的视图和相应的“SQLSQL”视图如图视图如图5.35.3所示。所示。图5.3 查询设计视图及SQL视图高教出版社高教出版社16图中显示了两个视图,上面是查询的图中显示了两个视图,上面是查询的“设计设计”视图,它反映了某一查询的视图,它反映了某一查询的设计情况。下面是查询的设计情况。

15、下面是查询的“SQLSQL”视图。视图中显示了一个视图。视图中显示了一个SelectSelect语句,语句,该语句给出了查询需要显示的字段、数据源以及查询条件,两种视图设置该语句给出了查询需要显示的字段、数据源以及查询条件,两种视图设置的内容是一样的,因此它们是等价的。当在的内容是一样的,因此它们是等价的。当在“设计设计”视图中修改了查询,视图中修改了查询,将直接反应到将直接反应到“SQLSQL”视图中,同样在视图中,同样在“SQLSQL”视图中修改了查询语句,这视图中修改了查询语句,这种修改也将直接反应到种修改也将直接反应到“设计设计”视图中。视图中。高教出版社高教出版社17在建立查询的时候

16、可以切换到在建立查询的时候可以切换到SQLSQL视图中,下面看看是怎么切换的。视图中,下面看看是怎么切换的。在功能区在功能区“创建创建”选项卡下的选项卡下的“查询查询”组中,单击组中,单击“查询设计查询设计”按钮按钮 ,打开查询设计视图,并弹出打开查询设计视图,并弹出“显示表显示表”对话框,直接关闭对话框,直接关闭“显示表显示表”对对话框,在功能区话框,在功能区“查询工具查询工具/ /设计设计”选项卡下的选项卡下的“结果结果”组中将出现组中将出现“SQL“SQL视图视图”按钮按钮 ,单击该按钮切换到,单击该按钮切换到SQLSQL视图。如果是已经建好的查询,视图。如果是已经建好的查询,可以从可以

17、从“结果结果”组中的视图下拉列表中选项组中的视图下拉列表中选项“SQL“SQL视图视图”进行切换。进行切换。高教出版社高教出版社185.3 数据定义数据定义数据定义用于定义数据库的所有特性和属性,有关数据定义的数据定义用于定义数据库的所有特性和属性,有关数据定义的SQLSQL语言分语言分为三种,它们是建立(为三种,它们是建立(CREATECREATE)表、修改()表、修改(ALTERALTER)表和删除()表和删除(DROPDROP)表)表。高教出版社高教出版社19定义表结构定义表结构(1 1)用)用SQLSQL语句创建一个最基本的表结构。语句创建一个最基本的表结构。【格式】【格式】CREAT

18、E TABLE CREATE TABLE ( (( , ) , 2 )【说明】字段的数据类型采用英文表示字段名和数据类型前要有空格。【说明】字段的数据类型采用英文表示字段名和数据类型前要有空格。对于固定宽度的类型如:日期型、日期时间型、备注、通用等类型可省对于固定宽度的类型如:日期型、日期时间型、备注、通用等类型可省略宽度。参数略宽度。参数FREEFREE可省略,如果当前打开了数据库,使用可省略,如果当前打开了数据库,使用FREEFREE强制创建强制创建的表为自由表。的表为自由表。高教出版社高教出版社20【例【例5.15.1】创建一个表】创建一个表Book1Book1(图书信息表(图书信息表1

19、 1),它由以下字段组成:编号),它由以下字段组成:编号(字符,(字符,1010);名称(字符,);名称(字符,3030);类别代码(字符,);类别代码(字符,5 5);出版社(字符,);出版社(字符,3030);作者(字符,);作者(字符,8 8);备注(备注)。);备注(备注)。CREATE TABLE Book1(CREATE TABLE Book1(编号编号 Text(10), Text(10),名称名称 Text(30), Text(30),类别代码类别代码 Text(5), Text(5),出版社出版社 Text(30), Text(30),作者作者 Text(8), Text(8

20、),备注备注 Memo) Memo)高教出版社高教出版社21数据类型数据类型表示符表示符文本Text备注Memo长整形Long整形Short单精度Single双精度Double货币Currency日期时间DateYes/NoYesnoOle对象Image高教出版社高教出版社22(2 2)创建一个数据库表,并建立主索引和候选索引。)创建一个数据库表,并建立主索引和候选索引。【格式】【格式】CREATE TABLE CREATE TABLE ( ( PRIMARY PRIMARY KEY KEY UNIQUE UNIQUE , 2 )【说明】在字段名后面加上参数【说明】在字段名后面加上参数PRIM

21、ARY KEYPRIMARY KEY表示给此字段建立主索引,表示给此字段建立主索引,字段名后加上字段名后加上UNIQUEUNIQUE参数表示建立候选索引。参数表示建立候选索引。高教出版社高教出版社23【例【例5.25.2】创建一个表】创建一个表Book2Book2(图书信息表(图书信息表2 2),它由以下字段组成:编),它由以下字段组成:编号(字符,号(字符,1010);名称(字符,);名称(字符,3030);类别代码(字符,);类别代码(字符,5 5)。给编号)。给编号字段建立主索引,给名称字段建立候选索引。字段建立主索引,给名称字段建立候选索引。CREATE TABLE Book2(CRE

22、ATE TABLE Book2(编号编号 Text(10) PRIMARY KEY,Text(10) PRIMARY KEY,名称名称 Text(30) Text(30) UNIQUE,UNIQUE,类别代码类别代码 Text(5)Text(5)高教出版社高教出版社24(3 3)通过查询创建表。)通过查询创建表。【格式】【格式】SELECT SELECT , INTO INTO FROM FROM 【例【例5.35.3】通过查询】通过查询“图书信息表图书信息表”中的书籍编号、书籍名称、类别代码、中的书籍编号、书籍名称、类别代码、出版社和作者创建一个表出版社和作者创建一个表Book3Book3S

23、ELECT SELECT 书籍编号书籍编号, ,书籍名称书籍名称, ,类别代码类别代码, ,出版社出版社, ,作者作者 INTO Book3 INTO Book3FROM FROM 图书信息表图书信息表; ;高教出版社高教出版社25修改修改表结构表结构(1 1)给表增加字段。)给表增加字段。【格式】【格式】ALTER TABLE ALTER TABLE ADD ADD (,)【例【例5.45.4】在】在Book1Book1表中增加一个书籍页码字段变量(整形)表中增加一个书籍页码字段变量(整形)ALTER TABLE Book1 ADD ALTER TABLE Book1 ADD 书籍页码书籍页

24、码 Short Short高教出版社高教出版社26(2 2)册除表中的字段。)册除表中的字段。【格式】【格式】ALTER TABLE ALTER TABLE DROP DROP COLUMNCOLUMN 【例【例5.55.5】删除】删除Book1Book1表中书籍页码字段。表中书籍页码字段。ALTER TABLE Book1 DROP COLUMN ALTER TABLE Book1 DROP COLUMN 书籍页码书籍页码 高教出版社高教出版社27(3 3)更改字段的数据类型和宽度。)更改字段的数据类型和宽度。【格式】【格式】ALTER TABLE ALTER TABLE ALTER ALT

25、ER COLUMNCOLUMN (,)【例【例5.65.6】修改】修改Book1Book1表编号字段的数据类型为整型。表编号字段的数据类型为整型。ALTER TABLE Book1 ALTER COLUMN ALTER TABLE Book1 ALTER COLUMN 编号编号 Short Short高教出版社高教出版社28删除表删除表【格式】【格式】DROP TALBE DROP TALBE 【说明】此命令删除的是表文件,而不是仅仅删除表记录。【说明】此命令删除的是表文件,而不是仅仅删除表记录。【例【例5.75.7】删除】删除Book1Book1表表DROP TABLE STUD1DROP

26、TABLE STUD1高教出版社高教出版社295.4 数据操纵数据操纵数据操纵是完成数据操作的命令,它由数据操纵是完成数据操作的命令,它由INSERTINSERT(插入)、(插入)、DELETEDELETE(删(删除)、除)、UPDATEUPDATE(更新)和(更新)和SELECTSELECT(查询)等命令组成。查询也划归为数(查询)等命令组成。查询也划归为数据操纵范畴,但由于它比较特殊,所以查询语言在第据操纵范畴,但由于它比较特殊,所以查询语言在第4 4节单独出现。节单独出现。高教出版社高教出版社30插入记录插入记录(1 1)通过具体的值向表中插入记录。)通过具体的值向表中插入记录。【格式】

27、【格式】INSERT INTO INSERT INTO ( () VALUES ) VALUES ( )【例【例5.85.8】有】有Book1Book1表表( (编号编号 Text(10), Text(10),名称名称 Text(30), Text(30),类别代码类别代码 Text(5) Text(5)写出向该表中插入一条记录的命令。写出向该表中插入一条记录的命令。INSERT INTO Book1 VALUES (97870001,INSERT INTO Book1 VALUES (97870001,计算机基础计算机基础,XC0001),XC0001)INSERT INTO Book1 (

28、INSERT INTO Book1 (编号编号, ,名称名称) VALUES (97870002,) VALUES (97870002,大学语文大学语文)高教出版社高教出版社31【注意】【注意】当需要插入表中所有字段的数据时,表名后面的字段名可以缺省,当需要插入表中所有字段的数据时,表名后面的字段名可以缺省,但插入数据的格式及顺序必须与表的结构完全吻合;若只需要插入表中某但插入数据的格式及顺序必须与表的结构完全吻合;若只需要插入表中某些字段的数据,就需要列出插入数据的字段名,当然相应表达式的数据位些字段的数据,就需要列出插入数据的字段名,当然相应表达式的数据位置应与之对应。置应与之对应。高教出

29、版社高教出版社32(2 2)通过查询向表中插入记录)通过查询向表中插入记录【格式】【格式】INSERT INTO INSERT INTO ( () SELECT ) SELECT FROM FROM WHERE WHERE 【例【例5.95.9】把图书信息表中,所有】把图书信息表中,所有“人民邮电出版社人民邮电出版社”的图书信息插入到的图书信息插入到Book2Book2表中。表中。INSERT INTO Book2 (INSERT INTO Book2 (编号编号, ,名称名称) )SELECT SELECT 图书信息表图书信息表. .编号编号, ,图书信息表图书信息表. .名称名称FROM

30、FROM 图书信息表图书信息表WHERE (WHERE (图书信息表图书信息表. .出版社出版社)=)=人民邮电出版社人民邮电出版社高教出版社高教出版社33删除删除记录记录在在SQLSQL语句中通过语句中通过DELETEDELETE命令可以给指定的数据表中的记录予以删除。命令可以给指定的数据表中的记录予以删除。【格式】【格式】DELETE FROM DELETE FROM WHERE WHERE 【注意】该命令将从表中删除满足条件的记录,当不选择【注意】该命令将从表中删除满足条件的记录,当不选择WHEREWHERE字句时,字句时,表示删除表中的全部记录。表示删除表中的全部记录。【例【例5.10

31、5.10】删除】删除“图书信息表副本图书信息表副本”中中“人民邮电出版社人民邮电出版社”出版的图书记出版的图书记录。录。DELETE FROMDELETE FROM图书信息表副本图书信息表副本WHERE WHERE 出版社出版社=人民邮电出版社人民邮电出版社 高教出版社高教出版社34更新更新记录记录【格式】【格式】UPDATE UPDATE SET SET =,=2 WHERE WHERE【例【例5.115.11】更改】更改“图书信息表副本图书信息表副本”中中“人民邮电出版社人民邮电出版社”出版的图书出版的图书书籍价格为书籍价格为3030元。元。UPDATE UPDATE 图书信息表副本图书信

32、息表副本 SET SET 书籍价格书籍价格=30 WHERE =30 WHERE 出版社出版社=人民邮电人民邮电出版社出版社 高教出版社高教出版社355.5 数据查询数据查询数据查询是数据库的核心操作。数据查询是数据库的核心操作。SQLSQL语言提供了语言提供了SELECTSELECT语言进行数据库语言进行数据库的查询。该命令的基本框架是的查询。该命令的基本框架是SELECT-FROM-WHERESELECT-FROM-WHERE,SELECT-FROMSELECT-FROM是必备是必备结构。结构。高教出版社高教出版社36单表的无条件查询单表的无条件查询【格式】【格式】SELECT ALL |

33、 DISTINCT SELECT ALL | DISTINCT , FROM FROM 【说明】(【说明】(1 1)ALL :ALL :表示显示全部记录,包括重复记录(缺省值)。表示显示全部记录,包括重复记录(缺省值)。 (2 2)DISTINCT:DISTINCT:表示显示无重复结果的记录。表示显示无重复结果的记录。 (3 3) :可以用可以用 ASAS 指定标题。指定标题。 (4 4) 也可以用也可以用“ * * ”代替表示显示所有的列。代替表示显示所有的列。高教出版社高教出版社37【例【例5.125.12】查询图书信息表如下信息。】查询图书信息表如下信息。(1 1)查询图书信息表中全部记

34、录)查询图书信息表中全部记录SELECT SELECT * * FROM FROM 图书信息表图书信息表(2 2)查询所有图书书籍名称,出版社去掉重名。)查询所有图书书籍名称,出版社去掉重名。SELECT DISTINCT SELECT DISTINCT 书籍名称书籍名称, ,出版社出版社 FROM FROM 图书信息表图书信息表SELECT SELECT 命令中的选项,不仅可以是字段名,还可以是表达式,也可以是一命令中的选项,不仅可以是字段名,还可以是表达式,也可以是一些函数些函数。高教出版社高教出版社38SELECT SELECT 命令中可以用到的统计函数如下所述:命令中可以用到的统计函数

35、如下所述:COUNT(COUNT(* *|) ) 统计记录个数(及查询结果的行数)。统计记录个数(及查询结果的行数)。SUM (SUM ()计算一列值的总和计算一列值的总和AVG (AVG ()计算一列值的平均计算一列值的平均MAX (MAX ()求一列值中最大值求一列值中最大值MIN (MIN ()求一列值中最小值求一列值中最小值高教出版社高教出版社39【例【例5.135.13】统计函数的应用】统计函数的应用 (1 1)求所有图书的平均价格。)求所有图书的平均价格。SELECT AVG(SELECT AVG(书籍价格书籍价格) AS ) AS 平均价格平均价格 FROM FROM 图书信息表

36、图书信息表(2 2)求馆藏)求馆藏“人民邮电出版社人民邮电出版社”出版的图书书量。出版的图书书量。SELECT COUNT(SELECT COUNT(* *) AS ) AS 藏书量藏书量 FROM FROM 图书信息表图书信息表 WHERE WHERE 出版社出版社=人民邮人民邮电出版社电出版社高教出版社高教出版社40单表的带条件查询单表的带条件查询在在SELECTSELECT语句中通过语句中通过WHEREWHERE语句指定查询的条件。语句指定查询的条件。【格式】【格式】SELECT ALL | DISTINCT SELECT ALL | DISTINCT , FROM FROM WHERE

37、 WHERE 高教出版社高教出版社41【说明】在【说明】在SELECTSELECT语句中通过语句中通过WHEREWHERE给出查询条件,给出查询条件, 由一系由一系列用列用AND AND 或或 OR OR 连接的条件表达式组成,条件表达式的格式可以是以下连接的条件表达式组成,条件表达式的格式可以是以下几种:几种:(1 1) 2。(2 2) 。(3 3) ALLALL( )(4 4) ANY | SOME ANY | SOME ( )(5 5) NOT BETWEEN NOT BETWEEN AND AND 高教出版社高教出版社42(6 6)NOT EXISTS NOT EXISTS ( )(7

38、 7) NOT IN NOT IN (8 8) NOT IN NOT IN ( )(9 9) NOT LINK NOT LINK SQLSQL支持的关系运算符如下:支持的关系运算符如下:、!、。、!、。高教出版社高教出版社43【例【例5.145.14】查询图书信息表中所有价格在】查询图书信息表中所有价格在3030元以上图书的基本信息。元以上图书的基本信息。SELECT SELECT 图书信息表图书信息表. .* *FROM FROM 图书信息表图书信息表WHERE (WHERE (书籍价格书籍价格)30;)30;高教出版社高教出版社44【例例5.155.15】查询图书信息表中所有价格在】查询图

39、书信息表中所有价格在2020元到元到3030元的图书信息。元的图书信息。方法一:方法一:SELECT SELECT * * FROM FROM 图书信息表图书信息表 WHERE WHERE 书籍价格书籍价格 Between 20 And 30 Between 20 And 30 方法二:方法二:SELECT SELECT * * FROM FROM 图书信息表图书信息表 WHERE WHERE 书籍价格书籍价格20 AND 20 AND 书籍价格书籍价格300;)0;高教出版社高教出版社46查询查询SELECTSELECT语句不仅可以通过语句不仅可以通过WHEREWHERE之句查找满足条件的记

40、录,还可以之句查找满足条件的记录,还可以通过聚合函数对满足条件的数据进行求和、计数、平均值、最大值、通过聚合函数对满足条件的数据进行求和、计数、平均值、最大值、最小值等运算最小值等运算。分组与计算查询分组与计算查询高教出版社高教出版社47标准标准的的SQLSQL语句提供了语句提供了5 5种常用的聚合函数。种常用的聚合函数。COUNT ( DISTINCT |ALL COUNT ( DISTINCT |ALL * * | | 列名列名) ):统计元组个数。:统计元组个数。COUNT ( DISTINCT | ALL COUNT ( DISTINCT | ALL ) ):统计一列中值的个数。:统计

41、一列中值的个数。SUM ( DISTINCT | ALL SUM ( DISTINCT | ALL ): 计算一列值的总和(此列必须是数值型)计算一列值的总和(此列必须是数值型)AVGAVG(DISTINCT | ALL DISTINCT | ALL ):计算一列值的平均值(此列必须是数值型):计算一列值的平均值(此列必须是数值型)MAXMAX(DISTINCT | ALL DISTINCT | ALL ):计算一列值的最大值):计算一列值的最大值MINMIN(DISTINCT | ALL DISTINCT | ALL ):): 计算一列值的最小值计算一列值的最小值这些聚合函数一般用于从一组数

42、值中计算一个汇总值,在这些聚合函数一般用于从一组数值中计算一个汇总值,在SQLSQL语句中通过语句中通过GROUP BYGROUP BY子句定义字段值的分组子句定义字段值的分组。高教出版社高教出版社48【格式】【格式】SELECT SELECT 分组表达式,集函数分组表达式,集函数 FROM FROM 表名表名 WHERE WHERE GROUP BY GROUP BY HAVING HAVING 【说明】(【说明】(1 1)GROUP BY GROUP BY :表示分组查询,若查询到的:表示分组查询,若查询到的数据里有多个记录的指定字段的值相同,只取一条记录作为查询结果数据里有多个记录的指定

43、字段的值相同,只取一条记录作为查询结果。高教出版社高教出版社49(2 2)HAVING HAVING :设置过滤条件,在其后可以使用聚合函数。:设置过滤条件,在其后可以使用聚合函数。【例【例5.175.17】统计图书信息表中各个出版社出版图书数量。】统计图书信息表中各个出版社出版图书数量。SELECT SELECT 出版社出版社, Count(, Count(书籍编号书籍编号) AS ) AS 图书数量图书数量FROM FROM 图书信息表图书信息表GROUP BY GROUP BY 出版社出版社; ;高教出版社高教出版社50查询结果排序查询结果排序为了方便按照某个顺序对数据表中的数据进行查找

44、,在查询语句中经常为了方便按照某个顺序对数据表中的数据进行查找,在查询语句中经常需要进行排序。用户可以用需要进行排序。用户可以用ORDER BYORDER BY子句指定按照一个或多个属性列的子句指定按照一个或多个属性列的升序(升序(ASCASC)或降序)或降序(DESC)(DESC)重新排列查询结果,其中升序重新排列查询结果,其中升序ASCASC为缺省值。为缺省值。高教出版社高教出版社51【例【例5.185.18】查询图书信息表所有图书信息,并按书籍名称排序。】查询图书信息表所有图书信息,并按书籍名称排序。SELECT SELECT * *FROM FROM 图书信息表图书信息表ORDER B

45、Y ORDER BY 书籍名称书籍名称; ;高教出版社高教出版社52【例【例5.195.19】查询图书信息表所有图书信息,并按书籍价格降序排序。】查询图书信息表所有图书信息,并按书籍价格降序排序。SELECT SELECT * *FROM FROM 图书信息表图书信息表ORDER BY ORDER BY 书籍价格书籍价格 DESC; DESC;高教出版社高教出版社53【例【例5.205.20】图书信息表所有图书信息,并按出版社降序排序,对出版社】图书信息表所有图书信息,并按出版社降序排序,对出版社相同的按照书籍名称升序排序。相同的按照书籍名称升序排序。SELECT SELECT * *FROM

46、 FROM 图书信息表图书信息表ORDER BY ORDER BY 出版社出版社 DESC, DESC, 书籍名称书籍名称 ASC; ASC;高教出版社高教出版社54多多表连接查询表连接查询在在SQLSQL语句中,在语句中,在FROMFROM子句中提供了一种称之为连接的子句,连接分为内子句中提供了一种称之为连接的子句,连接分为内连接、左连接和右连接。连接、左连接和右连接。在查询设计窗口中,通过双击两个表连接线的中间部分,可以打开【联在查询设计窗口中,通过双击两个表连接线的中间部分,可以打开【联接属性】对话框,如图接属性】对话框,如图5.45.4所示。通过在此对话框中选择联接的属性的所示。通过在

47、此对话框中选择联接的属性的1 1,2 2,3 3分别实现内连接、左连接和右连接。分别实现内连接、左连接和右连接。图5.4 联接属性对话框高教出版社高教出版社55(1 1)内连接)内连接内连接是指包括符合条件的每个表的记录,也就是说两个表中具有相内连接是指包括符合条件的每个表的记录,也就是说两个表中具有相同值的行会在结果表中显示同值的行会在结果表中显示。高教出版社高教出版社56【例例5.215.21】查询并显示书籍编号、书籍名称、书籍类别、最大借出天】查询并显示书籍编号、书籍名称、书籍类别、最大借出天数。数。方法一:方法一:SELECT SELECT 图书信息表图书信息表. .书籍编号书籍编号,

48、 , 图书信息表图书信息表. .书籍名称书籍名称, , 图书类别表图书类别表. .书籍类别书籍类别, , 图书类别表图书类别表. .最大借出天数最大借出天数FROM FROM 图书类别表图书类别表 INNER JOIN INNER JOIN 图书信息表图书信息表 ON ON 图书类别表图书类别表. .类别代码类别代码= =图书信息表图书信息表. .类别代码类别代码;高教出版社高教出版社57方法方法二:二:SELECTSELECT图书信息表图书信息表. .书籍编号书籍编号, , 图书信息表图书信息表. .书籍名称书籍名称, , 图书类别表图书类别表. .书书籍类别籍类别, , 图书类别表图书类别

49、表. .最大借出天数最大借出天数FROMFROM图书类别表图书类别表, , 图书信息表图书信息表WHERE WHERE 图书类别表图书类别表. .类别代码类别代码= =图书信息表图书信息表. .类别代码类别代码; ;我们通过运行查询可以看到上边两种方法得到的结果完全相同。因此我们通过运行查询可以看到上边两种方法得到的结果完全相同。因此内连接可以通过内连接可以通过INNER JOIN INNER JOIN ON ON 之句实现也可以通过之句实现也可以通过WHEREWHERE之句之句实现。实现。高教出版社高教出版社58(2)左连接左连接是指包含左表中的所有记录和右表中与左表相对应的记录。【例5.22】查询图书信息表中所有图书以及对应图书类别信息。SELECT 图书信息表.书籍编号, 图书信息表.书籍名称, 图书类别表.书籍类别, 图书类别表.最大借出天数FROM 图书信息表 LEFT JOIN 图书类别表 ON 图书类别表.类别代码 = 图书信息表.类别代码;高教出版社高教出版社59(3)右连接右连接和左连接刚好相反,它是指包含右表中的所有记录以及与左表相对应的记录。【例5.23】查询所有图书类别以及对应的图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论