MicrosoftSQLServer2005Lecture5基本SELECT查询语句------------------- ------------------------------------目标要求:掌握使用数据定义(DDL)定义数据库、数据表 等对象。熟练掌握简单查询、嵌套查询、连接查询、分组与计算查询、集合的并运算。结构化查询语言(SQL)结构化查询语言:一种数据 库查询和编程语言,广泛应用于访问、查询、更新和管理关系数据库系统中的数据。--------------------------- -----------------------------------------------------SQL全名是结构化 查询语言(StructuredQueryLanguage),是用于数据库中的标准数据查询语言,IBM公司最早使用在其开发的数 据库系统中。1986年10月,美国ANSI对SQL进行规范后,以此作为关系型数据库管理系统的标准语言,1987年得到国际标 准组织的支持下成为国际标准。-------------------------------------------------- ------------------------------SQL语言包含3个部分:数据定义(DDL)语言(如C REATE,DROP,ALTER等语句)数据操纵(DML)语言(SELECT,INSERT,UPDATE,DE LETE语句)数据控制语言(如GRANT,REVOKE,ROLLBACK等语句)数据定义语言数据定义语言( DataDefinitionLanguage,DDL)是SQL语言集中,负责数据结构定义与数据库对象定义的语言,由CREA TE、ALTER与DROP三个语法所组成。CREATE指令CREATE是负责数据库对象的建立CREATEDATABASE --databaseCREATETABLE --tableCREATEINDEX:创建数据表索引。 --inde xCREATEPROCEDURE:创建存储过程。procCREATEFUNCTION:创建用户自定义函数。CRE ATEVIEW:创建视图。CREATETRIGGER:创建触发器。--triggerALTER指令ALTERALT ER是负责数据库对象修改的指令,例如:ALTERTABLETb_StudentADDcolumn_bVAR CHAR(20)NULL;--在数据表Tb_Student中加入一个新的字段,名称为column_b,字段类 型为varchar(20),允许NULL值。ALTERTABLETb_StudentDROPCOL UMNcolumn_b;--在数据表Tb_Student中移除column_b字段。DROP指令DR OPDROP则是删除数据库对象的指令,并且只需要指定要删除的数据库对象名称即可,在DDL语法中算是最简单的。例如:DR OPTABLEMyTable;--刪除MyTable数据表。DROPVIEWMyView;--刪除My View视图。数据操纵语言数据操纵语言(DataManipulationLanguage)是SQL语言中,负责对数 据库对象执行数据存取工作的指令集,以SELECT、INSERT、UPDATE、DELETE四种指令为核心。DML的主要功能即是存 取数据,因此其语法都是以读取与写入数据库为主,除了INSERT以外,其他三种指令都可能需搭配WHERE指令来过滤数据范围,或是不加 WHERE指令来存取全部的数据。INSERT指令INSERT是将数据插入到数据库对象中的指令,可以插入数据的数据库对象有数据 表以及可更新视图两种。基本格式有:INSERTINTO[数据表或可更新视图名称](字段1,字段2,字段3,...) VALUES(值1,值2,值3,...)--只需要根据对应的字段來设定插入值。INSERTINT O[数据表或可更新视图名称]VALUES(值1,值2,值3,...)--必須要指定所有字段的 插入值。例如:INSERTINTOMyTable(字段1,字段2,字段3,字段4,字段5)VALUES( 1,2,3,''4'',''5'')UPDATE指令UPDATE指令是依给定条件,将符合条件的数据表中的数据更新为新的数值 ,其基本格式为:UPDATE[数据表或可更新视图名称]SET字段1=值1,字段2=值2,字段3=值3,...W HERE[指定条件]例如:UPDATEMyTableSET字段1=3,字段2=5,字段4=5 WHERE字段3=198273DELETE指令DELETE指令从数据库对象中删除数据的指令,基本语法为 :DELETEFROM[数据表或可更新视图名称]WHERE[给定条件]例如:DELETEFROMMyTa bleWHERE字段3=1918299值为字符时,加西文单引号。数据控制语言数据控制语言(DataC ontrolLanguage)在SQL语言中,是一种可对数据存取权进行控制的指令,它可以控制特定用户对数据表、视图、存储过程、 用户自定义函数等数据库对象的控制权。由GRANT和REVOKE两个指令组成。GRANT的语法结构为:GRANT[ 权限]ON[要授予权限的数据库对象]TO[用户]WITH[授权选项]DENY的语法结构为:DENY[权限] ON[要拒绝权限的数据库对象]TO[用户]权限可以是INSERT\UPDATE等,参见教材p230Select查询 简单Select查询语法:SELECT字段1,字段2,…FROM表名SELECTFROM表名SELEC T字段1,字段2,…FROM表名WHERE查询条件SELECTFROM表名WHERE查询条件简单Sele ct查询简单Select查询WHERE子句使用的运算符比较运算符和表达式逻辑运算符和表达式范围搜索运算符和表达式 SELECTFROMTb_StudentWHEREAgeBETWEEN20TO22----- ----------------------------------------------------------------- -----------------SELECTFROMTb_StudentWHEREAgeNOTBET WEEN20TO22--------------------------------------------------- ------------------------------------SELECTFROMTb_Student WHEREAgeIN(20,21,22)-------------------------------------- -------------------------------------------------相当于SELECT FROMTb_StudentWHEREAge=20ORAge=21ORAge=22模式匹配运算符和表 达式未知值条件NULL表示未知的,不可用或将在以后添加的数据。NULL值与零、零长度的字符串的含义不同。在WHERE子句中 ,使用ISNULL或ISNOTNULL条件可以查询某一数据值是否为NULL的数据信息。例如:字符串运算符和表达式字 符串表达式是用字符串连接符(+)将字符型常量、变量、字符串函数连接组成的式子。字符串表达式的计算结果包括两个字符串内的空格和所有字 符,仍然是字符型。如''我爱''+''我家''表达式的值为:''我爱我家''----------------------- --------------------------------------------例如:''Beijing''+''H uanying''+''Ning!‘请写出结果!运算符的优先级运算符的优先级决定了表达式的计算和比较操作顺序。 运算符的优先级由高到低的顺序为:1)括号:()。2)正、负或取反运算:+、-、~。3)乘、除、求模运算:、/、%。4)加 、减、字符连接运算:+、-、+。5)比较运算:=、>、<、>=、<=、<>、!=、!>、!<。6)位运算:^、&、|。7)逻 辑非运算:NOT。8)逻辑与运算:AND。9)BETWEEN、IN、LIKE、OR等运算。10)赋值运算:=。ORDER BY子句使用SELECT语句进行数据查询,为了按一定顺序浏览数据,可以使用ORDERBY子句对生成的查询 结果进行排序。ORDERBY子句在SELECT语句中的语法格式如下:----------------------------- --------------------------------------SELECT字段1,字段2,… FROM表名WHERE查询条件ORDERBY排序表达式[ASC|DESC]ORDERBY子 句SELECTStuId,StuName,SexFROMTb_StudentWHEREDeptId=‘08’O RDERBYStuNameORDERBY子句ORDERBY子句ORDERBY子句总是位于WHERE子句(如果有 的话)后面,可以包含一个或多个列,每个列之间以逗号分隔。这些列可能是表中定义的列,也可能是SELECT子句中定义的计算列。-- ----------------------------------------------------------------- ------------在SQLServer2005中,汉字比其它字符值都要大,而汉字之间的大小比较是取决于其拼音首字母的大 小。如果没有特别说明,值是以升序序列进行排序的。当然,你也可以选择使用ASC关键字指定升序排序。-------------- ----------------------------------------------------------------- 如果你希望以降序排列,则在ORDERBY后面使用DESC关键字。GROUPBY子句使用SELE CT语句进行数据查询,为了按特定条件分组浏览数据,可以使用GROUPBY子句对某一列数据的值进行分类,形成结果集。GROUPB Y子句在SELECT语句中的语法格式如下:------------------------------------------- -------------------------------------SELECT字段1,字段2,…F ROM表名WHERE查询条件GROUPBY字段1,字段2,…[WITHROLLUP|CUBE ]ORDERBY排序表达式[ASC|DESC]------------------------------- -------------------------------------------------CUBE生成的结果集显示了 所选列中值的所有组合(包括字段1、字段2、字段1+字段2)的分组统计结果和总的汇总统计的聚合;ROLLUP生成的结果集显示了所选 列中值的某一层次结构的聚合。(包括字段1、字段1+字段2的分组统计结果和总的汇总统计的聚合)聚合函数聚合函数是SQL语言中 一种特殊的函数,比如SUM,COUNT,MAX,MIN,AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上 。换句话说,上面几个返函数的值建立在对多条记录进行统计的基础上。SUM是求和函数。SELECTClassId,SUM(Sco re)FROMTb_GradeWHEREClassId=‘S0408011’COUNT函数用来计算记录的数量。 SelectCOUNT(StuID)FROMTb_GradeWHEREClassId=‘S0408011’ MAX,MIN,AVG函数分别是用来求最大值、最小值和平均值。SELECTMAX(Score),MIN(Score), AVG(Score)FROMTb_GradeWHEREClassId=‘S0408011’GROUPBY子句常用 统计函数GROUPBY子句--显示每个学生的班级编码和成绩SELECTClassId,TotalScoreFROMT b_Grade--------------------------------------------------------- -----------汇总每个班级的平均成绩SELECTClassId,AVG(TotalScore)FROMTb_Gr adeGROUPBYClassIdGROUPBY子句--汇总每个班级(含班级名称)的平均成绩?SELECTClas sId,ClassName,AVG(TotalScore)FROMTb_GradeGROUPBYClassIdGROU PBY子句GROUPBY子句查询各个班级的最大成绩和最小成绩?GROUPBY子句GROUPBY分类汇总,分项 统计紧跟在GROUPBY后面的字段就是分组条件。如果在前面选择列表中出现的非聚合字段未出现在GROUPBY后面,SQL语 句就会出错。思考题:按照不同班级和性别统计学生平均年龄。HAVING子句HAVING子句相当于一个用于组(分 类汇总)的WHERE子句,它指定了组或聚合的查询条件。HAVING子句通常与GROUPBY子句一起使用。HAVING子句的语法为 :--------------------------------------------------------------- ----SELECT字段1,字段2,…FROM表名WHERE查询条件GROUPB Y字段1,字段2,…HAVING组查询条件HAVING子句HAVING子句求各个班级的最大成绩和最小成绩,且最 低成绩小于50分的?HAVING子句HAVING子句用来对分组后的数据进行筛选,它后面会跟一个条件表达式。当在GROUP BY子句中使用HAVING子句时,查询结果中只返回满足HAVING条件的组。SELECT语法总结SELECTselect_ listFROMtable_list[WHEREsearch_conditions][GROUPBYgroup _by_list][HAVINGsearch_conditions][ORDERBYorder_list[A SC|DESC]]计算列SELECT后面还可以是计算列。在SELECT后面的计算列,只是位于该SELECT语句中,是临 时性的,它由一个表达式产生。SELECTStuId,StuName+''(''+Sex+'')''FROMTb_Student 上面语句中的StuName+''(''+Sex+'')''就构成了一个计算列,它的值由两个字符型值和一对括号连接组成。列别名在上面 的结果集中,列名都是英文。这样看上去很不直观,我们希望能够给列名换上诸如“学号、姓名”等这样的名字。只需在SELECT语句中,给列 取个别名即可。AS可以省去。SELECTStuIdAS学号,StuName+''(''+Sex+'')''AS姓名性别F ROMTb_StudentSELECTStuId学号,StuName+''(''+Sex+'')''姓名性别FROMTb _StudentSELECT学号=StuId,姓名性别=StuName+''(''+Sex+'')''FROMTb_Student 表别名当然,我们也可以给表指定列别名,给表取别名和给列取别名类似,但只可以用“原始表名AS别名”和“原始表名别名” 这两种方式。SELECTFROMTb_StudentST或者SELECTFROMTb_StudentA SST------------------------------------------------------------ ------字段别名不能放在WHERE子句中,而表别名可以放在WHERE子句中。多表查询多表查询查询全院各系部拥有班级的 基本情况,显示系部名称、班级编码和班级名称;多表查询USETeaching_SystemGOSELECTd., c.FROMTb_ClassASc, Tb_DeptASd多表查询笛卡尔乘积多表查询多表查询多表查询USETeaching_SystemGO SELECTd.,c.FROMTb _ClassASc,Tb_DeptASdWHEREc.DeptId=d.DeptId多表查询SELEC TStuId,StuName,DeptId,SpecId,ClassId,SexFROMTb_Student两表连接S ELECTStuId学号,StuName姓名,DeptName系部,SpecId专业,ClassId班级,Sex性 别FROMTb_StudentTS,Tb_DeptTDWHERETS.DeptId=TD.DeptId多表连接基础 在实际查询应用中,用户所需要的数据并不全部在一个表中,这时就需要多表查询,从多个表中抽取我们所需要的数据信息。多表查询实际上是 通过各个表之间的共同列的相关性(主外键关系)来查询数据的,这是关系数据库查询数据的主要特征。多表查询首先要用WHERE子句在表之 间建立连接关系。在进行多表查询时,可以遵循以下基本原则:(1)SELECT子句列表中,字段前要加上基表名称; (2)FROM子句应包括所有使用的基表;(3)WHERE子句应在表之间建立连接关系。两表连接SELECTStuId 学号,StuName姓名,DeptId系部编码,DeptName系部,SpecId专业,ClassId班级,Sex 性别FROMTb_StudentTS,Tb_DeptTDWHERETS.DeptId=TD.DeptId多表连接 SELECTStuId学号,StuName姓名,DeptName系部,SpecName专业,ClassName班级 ,Sex性别FROMTb_StudentTS,Tb_DeptTD,Tb_SpecTSP,Tb_ClassTCW HERETS.DeptId=TD.DeptIdANDTS.SpecId=TSP.SpecIdANDTS.ClassId= TC.ClassId各种连接查询内连接:内连接是一种常用的数据连接查询方式。它使用比较运算符进行多个表之间的比较连接操作。内 连接会消除与另一个表的任何不匹配的数据行。外连接:外连接会返回FROM子句中提到的至少一个表的所有符合查询条件的数据行(包括连接 中不匹配的数据行),外连接分为左外连接、右外连接和完全连接。交叉连接:当对两个表使用交叉连接查询时,将返回来自这两个表的各行的所 有可能的数据行组合。自连接:表自身的链接参见教材p119。两个样例表SELECTFROMTb_Dept SELECTClassId,ClassName,DeptIdFROMTb_Class内连接SELECTDeptName 系部名称,ClassId班级编码,ClassName班级名称FROMTb_DeptINNERJOINTb_Cl assONTb_Class.DeptId=Tb_Dept.DeptId外连接-左外连接SELECTDeptName系部 名称,ClassId班级编码,ClassName班级名称FROMTb_DeptLEFTOUTERJOINTb_ ClassONTb_Dept.DeptId=Tb_Class.DeptId左边表中列全显示外连接-右外连接SELECT DeptName系部名称,ClassId班级编码,ClassName班级名称FROMTb_DeptRIGHTOU TERJOINTb_ClassONTb_Dept.DeptId=Tb_Class.DeptId右边表中列全显示外连接- 完全连接SELECTDeptName系部名称,ClassId班级编码,ClassName班级名称FROMTb_D eptFULLOUTERJOINTb_ClassONTb_Dept.DeptId=Tb_Class.DeptId交叉 连接SELECTDeptName系部名称,ClassId班级编码,ClassName班级名称FROMTb_Dep tCROSSJOINTb_Class交叉连接不使用WHERE子句时,返回的结果是一个基本表中符合条件的行数乘以另一个基本 表中符合条件的行数。使用WHERE子句时,返回的结果是被连接的两个基本表所有行的笛卡尔积中满足WHERE条件的所有行的行数。参 见教材p118联合查询(UNION)如果有多个不同的查询结果,但又希望将这些查询结果放在一起显示,组成一组数据 。在这种情况下,可以使用UNION子句。使用UNION子句的查询又称为联合查询,它可以将两个和多个查询结果集组合成为单个结果集。语 法如下:SELECTselect_listFROMtable_list[WHEREsearch_conditions ]UNION[ALL]SELECTselect_listFROMtable_list[WHEREsearch_ conditions]其中,ALL关键字为可选的,如果在UNION子句中使用该关键字,则返回全部数据行; 如果不使用该关键字,则返回结果中删除重复数据行。联合查询(UNION)SELECTFROMTb_SpecWHERE SpecId<>''08''UNIONSELECTStuId,StuName,SexFROMTb_StudentWHERE ClassId<>''S0408011''章节综合练习每个学年结束,班主任都要对班级学生成绩进行分析,然后初定学年奖学金 获得者的人选。让我们运用数据库查询的知识帮助04网络1班的班主任刘老师完成以下两个任务:①根据学院奖学金评选规定,初定获奖学金学 生名单;(每位同学的课程平均成绩必须高于75分)②对该班级开设的各门课程分别进行成绩分析。显示课程编号、学生学号和成绩的明细并分 别汇总每门课程的平均成绩。章节综合练习任务一USETeaching_SystemGOSELECTStuId 学号,AVG(TotalScore)AS平均成绩FROMTb_GradeWHEREClassId=''S0 408011‘GROUPBYStuIdHAVINGAVG(TotalScore)>=75任务二USET eaching_SystemGOSELECTCourseIdAS课程编号,StuIdAS学号,ROUND( TotalScore,2)AS成绩FROMTb_GradeWHEREClassId=''S0408011‘ORDE RBYCourseIdCOMPUTEAVG(ROUND(TotalScore,2))BYCourseId 任务二COMPUTE根据COMPUTE后面子句的形式生成合计,并附加在查询结果集的最后,作为单独的一行记录 显示合计结果。类似于在EXECL表中对某一列数据求和或求平均值的计算形式。COMPUTE往往后面与BY一起使用 ,表示按照BY后面的表达式字段进行分类汇总生成合计。任务二在COMPUTE子句中使用的字段表达式必须存在于SE LECT子句中,如上例中COMPUTE后面的【ROUND(TotalScore,2)】字段就是如此。同时,COM PUTEBY必须与ORDERBY子句一起使用,且COMPUTE后面的BY字段必须与ORDERBY后面的字段相同,或者是它的 子集,且排列的顺序也要完全一致,这一点要特别注意。多表连接查询综合运用 教务处管理员要定期对全院各系部、班级、课程学习情 况进行统计跟踪,及时做好院系两级间的教学反馈。请帮助管理员完成以下常规数据统计查询工作:①查询全院各系部拥有班级的基本情况,显示 系部名称、班级编码和班级名称;②检索成绩表Tb_Grade,要求查询并显示班级学生学号、姓名、课程名和课程成绩;③查询并统计各 系部的班级数,没有班级的系部班级数显示为0。任务一USETeaching_SystemGOSELECTd., c.FROMTb_ClassASc, Tb_DeptASdWHEREc.DeptId=d.DeptId任务二USETeaching_System GOSELECTTG.StuId学号,StuName姓名,CourseName课程名称,TotalScore成绩 FROMTb_GradeTGINNERJOINTb_StudentTSONTG.StuId=TS.St uIdINNERJOINTb_CourseTCONTG.CourseId=TC.CourseId任务三U SETeaching_SystemGOSELECTDeptName系部名称,COUNT(ClassName)班级名 称FROMTb_DeptLEFTOU TERJOINTb_ClassONTb_Class.DeptId=Tb_Dept.DeptIdGROUPBY DeptName作业查询并统计各系部的班级数,没有班级的系部班级数显示为0。----------------------- -----------------------------------------SELECTClassId,ClassNam e,AVG(TotalScore)FROMTb_Grade,Tb_ClassGROUPBYClassId------- ---------------------------------------------------------SELECT Tb_Grade.ClassId,ClassName,AVG(TotalScore)FROMTb_Grade,Tb_Class WHERETb_Grade.ClassId=Tb_Class.ClassIdGROUPBYTb_Grade.ClassI d--显示班级名称的汇总各班平均成绩SELECTTb_Grade.ClassId,ClassName,AVG(TotalSc ore)ASAvgScoreFROMTb_Grade,Tb_ClassWHERETb_Grade.ClassId=Tb _Class.ClassIdGROUPBYTb_Grade.ClassId,ClassName当两个表中都有ClassId 字段时,要加上表前缀,说明是那个表的ClassId字段SELECT列表中出现的字段都必须要在GROUPBY列表中出现,聚合函数 字段除外当要显示相关主键表中的其它字段时,如这儿的ClassName字段,则在WHERE子句中通过主外键关系进行连接SELEC TTb_Grade.ClassId,ClassName,MAX(TotalScore)ASMaxScore,MIN(Tot alScore)ASMinScoreFROMTb_Grade,Tb_ClassWHERETb_Grade.ClassI d=Tb_Class.ClassIdGROUPBYTb_Grade.ClassId,ClassName显示各班级学生平均总 成绩大于73的班级编号。SELECTTb_Grade.ClassId,AVG(TotalScore)ASAvgScore FROMTb_GradeGROUPBYTb_Grade.ClassIdHAVINGAVG(TotalScore)>7 3SELECTTb_Grade.ClassId,MAX(TotalScore)ASMaxScore,MIN(Total Score)ASMinScoreFROMTb_GradeGROUPBYTb_Grade.ClassIdHAVING MIN(TotalScore)<50上述“[]”表示可选项,“|”表示取其中之一。SELECTStuId学号,St uName姓名,DeptId系部,SpecId专业,ClassId班级,Sex性别FROMTb_StudentSE LECTStuId学号,StuName姓名,TS.DeptId系部编码,DeptName系部,SpecId专业, ClassId班级,Sex性别FROMTb_StudentTS,Tb_DeptTDWHERETS.DeptId= TD.DeptId要求显示学生姓名和所在系名、专业、班级名称?等同于:SELECTDeptName系部名称,Class Id班级编码,ClassName班级名称FROMTb_Class,Tb_DeptWHERETb_Dept.Dept Id=Tb_Class.DeptId------江阴职业技术学院计算机系------简单的Trans act-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。---- ---------------------------------------------------------------- SELECTStuId,StuName,DeptId,SexFROMTb_StudentSELECTFROMTb_ StudentSELECTStuId,StuName,DeptId,SexFROMTb_StudentWHERESe x=''F''SELECTFROMTb_TeacherWHERESex=''F''andDeptId=''08''查 询值是否为NULLISNULL、ISNOTNULL未知值字符串是否匹配LIKE、NOTLIKE字符匹配符查询值 是否属于列表值之一IN、NOTIN列表运算符查询值是否在范围内BETWEEN、NOTBETWEEN范围运算符组合两 个表达式的运算结果或取反AND、OR、NOT逻辑运算符比较两个表达式=、>、<、>=、<=、<>比较运算符说明运算符 类别不等于<>小于等于<=大于等于>=小于<大于>等于=含?义运算符SELECTFRO MTb_StudentWHEREStuName<>''张三''SELECTFROMTb_StudentWHERES ex=''F''对任何其他布尔运算符的值取反NOT如果两个布尔表达式中的一个为TRUE,那么就为TRUEOR如果两个布 尔表达式都为TRUE,那么就为TRUEAND含?义运算符SELECTFROMTb_StudentWHERE Sex=''M''andSex=''F''SELECTFROMTb_StudentWHEREClassId=''S040201101''andSex=''F''SELECTFROMTb_StudentWHERENOTSex=''M''查询值属于列表值之一IN、NOTIN列表运算符查询值在范围内BETWEEN、NOTBETWEEN范围运算符说明运算符类别SELECTFROMTb_StudentWHEREStuNameLIKE''张%''LIKE''王[^林]%''姓王且第二个字不是林的信息。匹配不属于指定范围([a-f])或集合([abcdef])中的任何单个字符。[^]LIKE''[张王]%''姓张或姓王的信息。匹配指定范围([a-f])或集合([abcdef])中的任何单个字符。[]LIKE''林_''姓名第一个字为“林”并且名字只有两个字。匹配任何单个字符。一个汉字只使用一个"_"表示_下划线LIKE''%林%''姓名中包含有“林”的信息。匹配零个或多个字符的任意字符串。%示例说明通配符SELECTFROMTb_StudentWHEREStuNameNOTLIKE''张三''SELECTFROMTb_GradeWHERERetestScoreISNOTNULLSELECTFROMTb_CourseWHERECourseNameISNULLSELECTStuId,StuName,SexFROMTb_StudentWHEREDeptId=‘08’ORDERBYStuNameDESCSELECTStuId,StuName,SexFROMTb_StudentWHEREDeptId=‘08’ORDERBYStuName,Sex结果如何?产生随机数,返回一个位于0和1之间的随机数RAND求ASCII码,返回字符型数据的ASCIIASCII求绝对值,返回表达式的绝对值ABS求最小值,返回表达式中所有值的最小值MIN求最大值,返回表达式中所有值的最大值MAX求均值,返回表达式中所有值的平均值AVG求和,返回表达式中所有值的和SUM求组中项数COUNT功能函数名------江阴职业技术学院计算机系------ |
|