数据库学习教程.pptx

上传人:莉*** 文档编号:87272586 上传时间:2023-04-16 格式:PPTX 页数:196 大小:1.39MB
返回 下载 相关 举报
数据库学习教程.pptx_第1页
第1页 / 共196页
数据库学习教程.pptx_第2页
第2页 / 共196页
点击查看更多>>
资源描述

《数据库学习教程.pptx》由会员分享,可在线阅读,更多相关《数据库学习教程.pptx(196页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、学习目标 数据库系统作为数据存储的仓库,同时还需要担当起数据管理、维护的角色。第1页/共196页学习目标包括数据的入库和出库,前面学习了数据入库时需要作的相应工作,在本章中,将学习如何在数据库中查找数据并将该部分数据“出库”,使这些数据以一定的格式和排列方法展现给用户,并且掌握如何增加检索数据易读性的方法,比如排序在此基础上,还将学习更加复杂的技巧分组与汇总。第2页/共196页学习目标掌握这些的单表查询技巧,将为应用程序提供最强的数据层的支持,减少逻辑层的负担。结合以前学习的主键和外键等基础知识,通过本章学习,将逐步掌握按照功能需求熟练检索出符合要求的数据并将其按照指定格式展现给用户或者应用程

2、序。第3页/共196页本章要点 简单查询语句查询语句的统计功能数据的联接子查询第4页/共196页简单查询语句 在创建查询时,需要输入相应的查询语句。基本的SELECT语句 选择数据列 使用TOP和DISTINCT 使用列别名 第5页/共196页简单查询语句使用计算列 使用WHERE子句 使用ORDER BY子句 第6页/共196页基本的SELECT语句 先看一个最简单的查询实例。【例4-1】查询Readers表中所有记录的信息(光盘:源文件第4章例4-1)。第7页/共196页基本的SELECT语句 USE LibraryGOSELECT*FROM ReadersGO在查询分析器中输入并运行上述

3、代码。第8页/共196页最简单的查询语句第9页/共196页基本的SELECT语句例4-1中的SELECT语句的作用就是查询Readers表中的全部信息,其中*表示查询表中的所有字段,此时,显示结果集中的列的顺序和创建表时的顺序一致。当然,要显示指定的列,也可以将所有的列名在SELECT关键字后列出。第10页/共196页选择数据列 如果要查询表中的部分列,可以将要显示的列名在SELECT关键字后依次列出,列名与列名之间用英文逗号隔开,列的顺序可以根据需要指定。【例4-2】查询Readers表中所有读者的编号、姓名和登记日期(光盘:源文件第4章例4-2)。第11页/共196页选择数据列 USE L

4、ibraryGOSELECT 读者编号,姓名,登记日期FROM ReadersGO在查询分析器中输入并运行上述代码。第12页/共196页在表中选择数据列查询第13页/共196页使用TOP和DISTINCT 使用TOP子句 使用DISTINCT子句 第14页/共196页使用TOP子句在查询表中数据时,用户可以根据需要限制返回的行数。方法是在SELECT语句的字段列表前面使用TOP n子句,则查询结果中只显示表中前n条记录;如果在字段列表前使用TOP n PERCENT子句,则查询结果中只显示前n%条记录。第15页/共196页使用TOP子句【例4-3】查询Readers表中的前5条记录(光盘:源文

5、件第4章例4-3)。USE LibraryGOSELECT TOP 5*FROM ReadersGO第16页/共196页使用TOP子句在查询分析器中输入并运行上述代码,执行结果如下。第17页/共196页使用DISTINCT子句 对表只选择部分列查询时,可能会出现重复行。如果要消除结果集中的重复行,可以在字段列表前面加上DISTINCT关键字。【例4-4】查询Books表中所有的出版社(光盘:源文件第4章例4-4)。第18页/共196页使用DISTINCT子句USE LibraryGOSELECT 出版社FROM BooksGO上述代码的执行结果如下图,可以看出结果集中有重复行。第19页/共19

6、6页 没有消除重复行的查询第20页/共196页使用DISTINCT子句下面的代码就消除了重复行,执行结果如下图所示。USE LibraryGOSELECT DISTINCT 出版社 FROM BooksGO第21页/共196页消除重复行的查询第22页/共196页使用列别名 默认结果集中显示的列标题就是在创建表时使用的列名。但是,有时也可以给列标题指定别名,以增加结果集的可读性。为结果集的列标题指定别名,可以使用以下两种格式。第23页/共196页使用列别名 SELECT 列别名=原列名 FROM 数据源SELECT 原列名 AS 列别名 FROM 数据源第24页/共196页使用列别名【例4-5】

7、查询BookCateGory表中所有记录的类编号和类名称。其中“类编号”列标题指定别名为“图书种类编号”,“类名称”列标题指定别名为“图书种类名称”(光盘:源文件第4章例4-5)。第25页/共196页使用列别名USE LibraryGOSELECT 类编号 AS 图书种类编号,类名称 AS 图书种类名称 FROM BookCateGOryGO在查询分析器中输入并运行上述代码。第26页/共196页使用列别名第27页/共196页使用计算列 使用SELECT语句对列进行查询时,在结果中可以输出对列值计算后的值,即结果集中的列不是表中现成的列,而是由表中的一个或多个列计算出来的。【例4-6】查询Boo

8、ks表中每本书的书名和打过8折以后的价格(光盘:源文件第4章例4-6)。第28页/共196页使用计算列USE LibraryGOSELECT 图书名,价格*0.8 AS 折后价格FROM BooksGO第29页/共196页使用计算列因为结果集中由计算得到的列是没有列名的,所以本例中为其指定列名为“折后价格”,以增加结果集的可读性。在查询分析器中输入并运行上述代码。第30页/共196页使用计算列第31页/共196页使用WHERE子句 如果只希望得到表中满足特定条件的一些记录,用户可以在查询语句中使用WHERE子句。在WHERE子句中,组成条件表达式的运算符有6种。第32页/共196页WHERE子

9、句中的运算符 运算符分类运 算 符意 义比较运算符、=、=、=、!=、!、!、=、=、=、!=、!和!,其中“”或“!=”表示不等于,“!”表示不大于,“!20GO第39页/共196页比较运算符在查询分析器中输入并运行上述代码,执行结果如下图。第40页/共196页范围运算符 范围运算符用来判断列值否在指定的范围内。范围运算符包括BETWEENAND和NOT BETWEENAND。该运算符的语法格式如下:列表达式 NOT BETWEEN 起始值 AND 终止值第41页/共196页范围运算符 如果列表达式的值在起始值和终止值之间,则运算结果为TRUE,否则为FALSE。使用NOT时,运算结果刚好相

10、反。第42页/共196页范围运算符【例4-8】查询Books表中在2005年期间上架的图书的编号、图书名、作者及上架时间(光盘:源文件第4章例4-8)。第43页/共196页指定查询范围第44页/共196页列表运算符 列表运算符用来判断给定的列值是否在所给定的子列表中。列表运算符包括IN和NOT IN。该运算符的语法格式如下:列表达式 NOT IN(列值1,列值n)第45页/共196页列表运算符如果列表达式的值等于子列表中的某个值,则运算结果为TRUE,否则运算结果为FALSE。使用NOT时,运算结果刚好相反。【例4-9】查询Books表中飞天、新宇两个出版社的图书的编号、图书名及出版社(光盘:

11、源文件第4章例4-9)。第46页/共196页使用IN确定查询值第47页/共196页模式匹配运算符 在实际应用中,经常需要根据一些不确定的信息来进行模糊查询。模式匹配运算符LIKE和NOT LIKE可以实现这类查询,其中LIKE表示字符串表达式的值与匹配串相符,NOT LIKE则相反。其一般语法格式如下:字符串表达式 NOT LIKE 第48页/共196页模式匹配运算符其中匹配串可以是一个完整的字符串,也可以是含有通配符的字符串。第49页/共196页通配符说明 通 配 符说 明%代表0个或多个字符_(下划线)代表单个字符指定范围(如a-f、0-9)或集合(如abcdef)中的任何单个字符指定不属

12、于范围(如a-f、0-9)或集合(如abcdef)中的任何单个字符第50页/共196页模式匹配运算符【例4-10】查询Readers表中姓“张”的读者的信息(光盘:源文件第4章例4-10)。通配符字符串张%的含义是第一个汉字是“张”的字符串。第51页/共196页模糊查询第52页/共196页空值运算符 数据库中的数据一般都应该是有意义的,但有些列的值可能暂时不知道或不确定,这时可以不输入该列的值,那么称该列的值为空值,通常用NULL表示。空值与0或空格是不一样的。空值运算符IS NULL和NOT IS NULL用来判断指定的列值是否为空。第53页/共196页空值运算符 其语法格式如下:列表达式

13、NOT IS NULL【例4-11】查询Readers表中住址为空的读者的编号、姓名、性别和住址(光盘:源文件第4章例4-11)。在查询分析器中输入并运行上述代码。第54页/共196页查询空值第55页/共196页逻辑运算符 用户可以使用逻辑运算符AND、OR和NOT连接多个查询条件,实现多重条件查询。逻辑运算符语法格式如下:NOT 逻辑表达式 AND|OR NOT 逻辑表达式第56页/共196页逻辑运算符【例4-12】要求用逻辑运算符实现例4-8中的查询(光盘:源文件第4章例4-12)。第57页/共196页逻辑运算符 USE LibraryGOSELECT 图书编号,图书名,作者,上架时间FR

14、OM BooksWHERE 上架时间=2005-01-01 AND 上架时间=2005-12-31GO第58页/共196页逻辑运算符 上述代码的执行结果和例4-8相同。第59页/共196页逻辑运算符【例4-13】要求用逻辑运算符实现例4-9中的查询(光盘:源文件第4章例4-13)。USE LibraryGOSELECT 图书编号,图书名,出版社第60页/共196页逻辑运算符FROM BooksWHERE 出版社=飞天 OR 出版社=新宇GO上述代码的执行结果和例4-9相同。第61页/共196页使用IN确定查询值第62页/共196页使用ORDER BY子句 通常查询结果集中的记录的顺序是它们在表

15、中的顺序,但有时用户希望查询结果集中的记录按某种顺序显示。可以通过ORDEY BY子句改变查询结果集中记录的显示顺序。ORDER BY子句的语法格式为:ORDER BY 列名 ASC|DESC,n第63页/共196页使用ORDER BY子句 其中ASC表示按升序排列,DESC按降序排列,默认为ASC。当按多列排序时,先按写在前面的列排序,当前面的列值相同时,再按后面的列排序。第64页/共196页使用ORDER BY子句【例4-14】查询Books表中“新宇”出版社图书的编号、图书名、出版社、类编号及上架时间。查询结果先按类编号降序排列,类编号相同的书再按上架时间升序排列(光盘:源文件第4章例4

16、-14)。第65页/共196页将查询结果排序第66页/共196页查询语句的统计功能 用户经常需要对查询结果集进行统计,例如求和、平均值、最大值、最小值和个数等,这些统计可以通过以下3种方法实现。使用聚合函数。使用GROUP BY子句。使用COMPUTE子句。第67页/共196页查询语句的统计功能使用聚合函数 使用GROUP BY子句 使用COMPUTE子句 第68页/共196页使用聚合函数 聚合函数用来对查询结果集中的记录进行统计计算,并在结果集中将统计结果生成一条新记录。SQL Server 2000提供了许多聚合函数。第69页/共196页常用集合函数表 函数名语法格式功能说明AVGAVG(

17、ALL|DISTINCT 列名)计算一个数值列的平均值SUMSUM(ALL|DISTINCT 列名)计算一个数值列的总和MAXMAX(ALL|DISTINCT 列名)返回指定列中的最大值MINMIN(ALL|DISTINCT 列名)返回指定列中的最小值COUNTCOUNT(ALL|DISTINCT 列名|*)统计查询结果集中记录的个数第70页/共196页使用聚合函数表4-3语法格式中的DISTINCT表示去掉指定列中的重复值,ALL表示不取消重复值,默认是ALL。【例4-15】计算Books表中所有图书的平均价格、总价、最高价、最低价及记录的个数(光盘:源文件第4章例4-15)。第71页/共1

18、96页聚合函数的使用第72页/共196页使用GROUP BY子句 GROUP BY子句用于对结果集进行分组并对每一组数据进行汇总计算。其语法格式为:GROUP BY 列名 HAVING 条件表达式第73页/共196页使用GROUP BY子句 GROUP BY按“列名”指定的列进行分组,将该列列值相同的记录组成一组,对每一组进行汇总计算。每一组生成一条记录。若有“HAVING 条件表达式”选项,则表示对生成的组进行筛选。第74页/共196页使用GROUP BY子句【例4-16】统计Books表中各个出版社的图书数量(光盘:源文件第4章例4-16)。在查询分析器中输入并运行上述代码。第75页/共1

19、96页分组统计第76页/共196页使用GROUP BY子句【例4-17】对例4-16中的代码改为以下代码,则只显示图书数量大于10的汇总行(光盘:源文件第4章例4-17)。在查询分析器中输入并运行上述代码。第77页/共196页对分组统计进行筛选 第78页/共196页使用COMPUTE子句 COMPUTE子句对查询结果集进行汇总统计,并显示参加汇总记录的详细信息。其语法格式为:COMPUTE 聚合函数 BY 列名第79页/共196页使用COMPUTE子句COMPUTE BY子句与GROUP BY子句的功能类似,都可以对查询结果集进行分组统计,不同的是,COMPUTE BY子句不仅显示汇总数据,还

20、分组显示参加汇总的记录的详细信息,而GROUP BY子句仅显示汇总数据。第80页/共196页使用COMPUTE子句【例4-18】统计Books表中各出版社的图书数量,并显示参加汇总的记录的详细信息(光盘:源文件第4章例4-18)。在查询分析器中输入并运行上述代码,其执行结果如下图。由于记录个数较多,所以该图只显示出部分出版社的统计信息。第81页/共196页使用COMPUTE子句第82页/共196页使用COMPUTE子句从上图可以看出,COMPUTE子句产生附加的汇总行,其列标题是系统自定的,如对于COUNT函数为cnt,对于AVG函数为avg,对于SUM函数为sum。第83页/共196页数据的

21、连接 前面讲的查询都是针对一个表进行的,而在实际应用中,一个查询往往需要从多个表中检索数据,这就需要使用联接查询。联接分为交叉联接、内联接、外联接和自联接4种。下面分别进行介绍。第84页/共196页数据的连接交叉联接 内联接 外联接 自联接 合并结果集 第85页/共196页 交叉联接 交叉联接又称非限制联接(广义笛卡尔积),它将两个表不加任何约束地组合在一起,也就是将第一个表的所有记录分别与第二个表的每条记录拼接组成新记录,联接后结果集的行数就是两个表的行的乘积,结果集的列数就是两个表的列数之和。第86页/共196页 交叉联接 交叉联接有以下两种语法格式。SELECT 列名列表 FROM 表名

22、1 CROSS JOIN 表名2SELECT 列名列表 FROM 表名l,表名2第87页/共196页交叉联接【例4-19】假设数据库Library中又创建了tl和t2两个表,如图4-18所示。tl表中有“读者编号”和“姓名”两字段,t2表中有“读者编号”和“已借册数”两字段,两表各包含3条记录。用交叉连接方法联接两表,观察联接后的结果。(光盘:源文件第4章例4-19)第88页/共196页t1表和t2表 第89页/共196页交叉联接USE LibraryGOSELECT*FROM t1 CROSS JOIN t2GO在查询分析器中输入并运行上述代码,其执行结果如下图。第90页/共196页交叉联接

23、第91页/共196页交叉联接在实际应用中,使用交叉联接产生的结果集一般没有什么意义,但在数据库的数学模式上有重要的作用。第92页/共196页内联接 内联接是将两个表中满足联接条件的记录组合在一起。联接条件的一般格式为:ON.参数说明如下所示。比较运算符可以是、=、=、=、!=、!及!0)GO第139页/共196页相关子查询另外,使用联接也可以实现【例4-28】中的查询,而且联接还可以同时显示来自多个表中的字段,代码如下:USE LibraryGOSELECT a.读者编号,a.姓名,b.图书编号,b.支付罚金第140页/共196页相关子查询FROM Readers AS a JOIN Borr

24、owHistory AS b ON a.读者编号=b.读者编号WHERE b.支付罚金0GO在查询分析器中输入并运行上述代码,其执行结果如下图所示。第141页/共196页使用联接实现例4-28的查询第142页/共196页相关子查询联接和子查询可能都要涉及两个或多个表,它们之间的区别如下。联接可以合并两个或多个表中的数据,而带子查询的SELECT语句的结果只能来自一个表,子查询的结果只是用来作为选择结果数据时进行参照的。第143页/共196页相关子查询有的查询既可以使用子查询来表达,也可以使用联接表达。通常使用子查询表示时可以将一个复杂的查询分解为一系列的逻辑步骤,条理清晰,而使用联接表示有执行

25、速度快的优点。因此,在实际应用中,读者应根据具体情况来决定使用哪种方法。第144页/共196页嵌套子查询 嵌套子查询的执行不依赖于外部查询。这类子查询的执行过程是:首先执行子查询,子查询得到的结果不被显示出来,而是传递给外部查询,作为外部查询的条件来使用,然后执行外部查询,并显示整个查询结果。第145页/共196页嵌套子查询 嵌套子查询一般可分为两种:返回单个值的子查询和返回一个值列表的子查询,下面分别举例说明。返回单个值 返回一个值列表 第146页/共196页返回单个值 该单值常被外部查询用来进行比较操作。【例4-29】在Books表中,查询所有价格高于平均价格的图书名、作者、出版社和价格。

26、(光盘:源文件第4章例4-29)第147页/共196页返回单个值本例的执行过程是先执行子查询:SELECT AVG(价格)FROM Books其结果为(并不显示),第148页/共196页返回单个值再执行外部查询:SELECT 图书名,作者,出版社,价格FROM BooksWHERE 价格这样得到本例的结果如下图所示。第149页/共196页返回单值的子查询第150页/共196页返回一个值列表 如果子查询返回一个值列表,则该列表常和IN、NOT IN、ANY和ALL逻辑运算符一起构成外部查询的查询条件。1)IN和NOT IN运算符第151页/共196页返回一个值列表IN和NOT IN运算符用来将一

27、个表达式的值与子查询返回的一列值进行比较。使用IN运算符时,如果该表达式的值与此列中的任何一个相等,则IN测试返回TRUE;如果该表达式的值与此列中的任何一个值都不相等,则返回FALSE。使用NOT IN时结果相反。第152页/共196页返回一个值列表【例4-30】查询所有借阅图书的读者信息(光盘:源文件第4章例4-30)。在这个例子中,首先得到“SELECT 读者编号 FROM Borrow”子查询的结果集,它为一列值,即所有借阅读书的读者编号,然后将其和IN运算符组成外部查询的条件执行外部查询,并得到最终结果。第153页/共196页使用IN运算符的子查询第154页/共196页返回一个值列表

28、2)ANY和ALL运算符ANY运算符要求的语法格式如下:表达式 比较运算符 ANY(子查询)第155页/共196页返回一个值列表ANY运算符通过比较运算符将一个表达式的值与子查询返回的一列值中的每一个进行比较。只要有一次比较的结果为TRUE,则ANY测试返回TRUE;若每一次比较的结果均为FALSE,则ANY测试返回FALSE。第156页/共196页返回一个值列表如表达式“ANY(1,2,3)”与“1”等价。由于比任何一个数大表达式就成立,所以只要比最小数大即可。再如,表达式“ANY(1,2,3)”与“3”等价。由于比任何一个数小表达式就成立,所以只要比最大数小即可。第157页/共196页返回

29、一个值列表【例4-31】在Books表中,查询“新宇”出版社的图书中价格比“飞天”出版社最低定价还高的图书信息(光盘:源文件第4章例4-31)。在查询分析器中输入并运行上述代码,其执行结果如下图所示。第158页/共196页使用ANY运算符的子查询第159页/共196页返回一个值列表 ALL运算符要求的语法格式如下:表达式 比较运算符 ALL(子查询)第160页/共196页返回一个值列表ALL运算符通过比较运算符将一个表达式的值与子查询返回的一列值中的每一个进行比较。若每一次比较的结果均为TRUE,则ALL测试返回TRUE;只要有一次比较的结果为FALSE,则ALL测试返回FALSE。第161页

30、/共196页返回一个值列表如表达式“ALL(1,2,3)”与“3”等价。由于比所有数都大表达式才成立,所以只要比最大数大即可。再如,表达式“ALL(1,2,3)”与“1”等价。由于比所有数都小表达式才成立,所以只要比最小数小即可。第162页/共196页返回一个值列表【例4-32】在Books表中,查询所有比“飞天”出版社的图书上架时间都早的图书信息。(光盘:源文件第4章例4-32)在查询分析器中输入并运行上述代码,其执行结果如下图所示。第163页/共196页使用ALL运算符的子查询第164页/共196页上 机 练 习 本节上机练习将进行图书管理系统的查询,通过这个例子,掌握SELECT语句的基

31、本语法、聚合函数的作用和使用方法,掌握GROUP BY和ORDEY BY子句的使用方法,掌握联接查询和子查询的表示方法(光盘:源文件第4章上机练习)。第165页/共196页上 机 练 习SELECT语句的基本使用 数据统计 联接查询的使用 子查询的使用 单表查询 多表查询 第166页/共196页SELECT语句的基本使用首先使用SELECT语句查询数据库中的相关信息。第167页/共196页数据统计 数据统计的具体操作如下。第168页/共196页联接查询的使用 从Borrow、Books、Readers3个表中,查询所有借书读者的姓名、借书名称、借阅日期、应还日期。为了更好地验证结果,读者可先在

32、Readers表中插入一条和表中现有姓名相同的记录,然后再作练习。第169页/共196页子查询的使用 下面将练习子查询的使用,具体操作如下。该例是一个相关子查询。读者可以使用NOT IN 把它改写为非相关的子查询。同样,读者也可以查询从来没有被借出过的图书的信息。第170页/共196页单表查询 下面练习单表查询的方法。简单查询 使用TOP关键字 使用DISTINCT关键字 使用ORDER BY子句对查询的结果进行排序 第171页/共196页单表查询条件查询使用BETWEEN AND谓词 使用IN谓词 使用LIKE谓词 第172页/共196页简单查询从Northwind数据库的Employees

33、表中分别检索出雇员的所有信息,以及仅查询雇员号、姓和名。SELECT*FROM EmployeesSELECT employeeID,Lastname,Firstname FROM Employees第173页/共196页简单查询如要查询时改变列标题的显示,则从Employees表中分别检索出雇员号、姓、名并分别加上雇员号、姓、名等标题信息。第174页/共196页使用TOP关键字 分别从Employees中检索出前2条及前面50%的雇员的信息。SELECT top 2*FROM EmployeesSELECT top 50 percent*FROM Employees第175页/共196页使用

34、DISTINCT关键字 从Suppliers表中检索出country并且要求显示不重复。USE NorthwindSELECT DISTINCT countryFROM SuppliersORDER BY countryGO第176页/共196页使用ORDER BY子句对查询的结果进行排序 使用ORDER BY语句可以对查询的结果进行排序,ASC、DESC分别是升序和降序排列的关键字,系统默认的是升序排列。从Products表中查询productid、productname、categoryid、unitprice productid,并按categoryid的升序和 unitprice降序排

35、列。第177页/共196页使用ORDER BY子句对查询的结果进行排序USE NorthwindSELECT productid,productname,categoryid,unitpriceFROM ProductsORDER BY categoryid,unitprice DESCGO第178页/共196页条件查询 使用关系运算符:从Employees表中查询出来自美国的雇员姓和所在城市。USE NorthwindSELECT lastname,city FROM employees WHERE country=USAGO第179页/共196页使用BETWEEN AND谓词 从Produ

36、cts表中查询出产品价格于10和20之间的产品名称和单价。USE NorthwindSELECT productname,unitprice FROM ProductsWHERE unitprice BETWEEN 10 AND 20GO第180页/共196页使用IN谓词 从Suppliers表中查询出来自Japan和Italy的公司名称和所在国家。USE NorthwindSELECT companyname,country FROM SuppliersWHERE country IN(Japan,Italy)GO第181页/共196页使用LIKE谓词从Products表中分别检索出产品名称

37、以T开头或产品号为46,并且单价大于16元的产品信息productid、productname、supplierid和 unitprice。第182页/共196页使用LIKE谓词USE NorthwindSELECT productid,productname,supplierid,unitprice FROM ProductsWHERE(productname LIKE T%OR productid=46)AND (unitprice 16.00)GO 第183页/共196页多表查询 数据库各表中存放着不同的数据,用户经常需要用多个表中的数据来组合提炼出所需要的信息,如果一个查询需要对多个表

38、进行操作,就称为关联查询,关联查询的结果集或结果表称为表之间的连接。关联查询实际上是通过各个表之间共同列的关联来查询数据的,它是关系数据库查询最基本的特征。第184页/共196页多表查询 按照表4-4、表4-5、表4-6所示,分别在数据库test中构造student、course和student_course 3张表,并写入记录。第185页/共196页表4-4 Student表列 名 称类 型宽 度允许为空缺 省 值主 键学号Char8否是学生姓名Nvarchar8否性别Bit否出生年月Smalldatetime否班级号Char6否入学时间Smalldatetime否家庭住址Nvarchar4

39、0是第186页/共196页表4-5 Course表列 名 称类 型宽 度允许为空缺 省 值主 键课程号char10否是课程名称Nvarchar20否书标识Char13否课程总学时Tinyint是周学时Tinyint是课程学分Tinyint是第187页/共196页表4-6 Student_course表列 名 称类 型宽度允许为空缺 省 值主 键SnoChar10否是CnoChar8否是GradeTinyint否第188页/共196页 习 题(1)从Pubs数据库中的authors、titleauthor、titles表中查询当年图书销量大于10000册的图书作者名称和图书名称。(2)统计各类图

40、书的平均价格。(3)列出business类的图书名称和价格,结果按价格降序、书名升序进行排列。第189页/共196页习 题(4)列出所有作者为Oakland籍的图书。(5)查询所在洲没有出版社的那些作者及其所在洲名。(6)根据下列数据库中表的结构,回答问题。第190页/共196页习 题学生(学号char(8)primary key,姓名char(8),班级char(10),性别char(2),出生日期datetime,第191页/共196页习 题出生城市char(10),入学成绩tinyint)课程(课程号char(6)primary key,课程名char(20))第192页/共196页习

41、题学生选课信息表(学期char(2),学号char(8)references学生(学号),课程号char(6)references课程(课程号),成绩tinyint check(成绩=0 and 成绩=100)第193页/共196页习 题完成以下任务。查询缺少成绩的学生的学号和相应的课程号。查询03物流1班全体学生的学号与姓名,且按照入学成绩的降序排列。第194页/共196页习 题统计班级的平均入学总分在350以上的班级和这些班级的平均入学总分。查询选修了实用英语课程的学生的学号,以及实用英语的成绩。查询第一学期所选课程平均成绩前3名的学生的学号。第195页/共196页感谢您的观看!第196页/共196页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁