数据库技术及应用 课件 陈翠松 项目5-7 数据的简单查询;数据的增加、删除和修改操作;数据高级查询_第1页
数据库技术及应用 课件 陈翠松 项目5-7 数据的简单查询;数据的增加、删除和修改操作;数据高级查询_第2页
数据库技术及应用 课件 陈翠松 项目5-7 数据的简单查询;数据的增加、删除和修改操作;数据高级查询_第3页
数据库技术及应用 课件 陈翠松 项目5-7 数据的简单查询;数据的增加、删除和修改操作;数据高级查询_第4页
数据库技术及应用 课件 陈翠松 项目5-7 数据的简单查询;数据的增加、删除和修改操作;数据高级查询_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

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

文档简介

数据库技术及应用项目5数据的简单查询

粤文创项目中包含各类信息,如地区信息、工作人员信息、民俗信息和名人信息等,其中地区表中存储的是地区编号、中文名、外文名、别名、地理位置和面积等基本信息。实际上,用户只对部分信息感兴趣,在这种情况下,就需要在原有的表中查询指定的数据列信息,这就是单个数据表的简单查询。工作情境目录01查询数据02巩固与小结03任务训练01查询数据一、查询数据任务分析使用数据库和数据表的主要目的就是存储数据,以便在需要时对数据进行检索、统计和输出。在MySQL中,可以使用SELECT语句来实现数据查询,按照用户要求设置不同的查询条件,对数据进行筛选,从数据库中检索待定信息,并将查询结果以表格形式返回。任务编号任务内容任务5-1统计地区表中面积超过5000且低于10000的地区信息任务5-2查询工作人员表中姓“李”的员工信息任务5-3查询工作人员表中工号为1、3、5的员工信息拓展任务5-1使用聚合函数查询数据任务清单如下。一、查询数据知识储备除了存储数据,数据库还可以用来查询和管理数据。按照需求查询数据是数据库的重要功能之一。SELECT语句可以用于查询数据,可以从一个表或多个表中选择特定的行和列,生成一个临时表。常用的SELECT语句的语法格式如下:需要说明以下几点。字段列表:用来给出应该返回哪些数据,可以是多个列名或表达式。列名和列名之间用逗号分隔,表达式可以是列名、函数或常数的列表。WHERE子句:可选项,如果选择该项,那么限定查询数据必须满足该查询条件(在多表查询中将具体讲解)。SELECT语句:除了用于数据查询,还可以用来为局部变量赋值或调用一个函数。提示:MySQL中的SQL语句不区分大小写,所以SELECT、select与Select是等价的,执行结果是一样的,但代码的可读性不一样。SELECT

<字段列表>FROM<数据表名称或视图名称>

[WHERE<条件表达式>]一、查询数据知识储备1、查询表中的所有列在SELECT语句中,可以使用“*”查找表中所有字段的数据,基本语法格式如下:SELECT*FROM表名;2、查询表中的指定列在SELECT语句中可以指定要查询的列,各个列名之间通过逗号分隔,基本语法格式如下:SELECT<字段列表>FROM<表名>;3、查询表中的指定列如果在查询结果时希望使用自己定义的列标题,那么可以使用AS子句来更改。一、查询数据知识储备4、限制查询结果返回记录的行数如果在查询时只希望看到返回结果中的部分记录行,那么可以使用LIMIT子句来限定。其基本语法格式如下:或者:LIMIT行数说明:偏移量和行数都必须是非负的整数;起始行的偏移量是指返回结果的第一行记录在数据表中的绝对位置,数据表初始记录行的偏移量为0,返回记录的行数是指返回多少行记录。例如,LIMIT4表示返回SELECT语句结果集中最前面的4行,而LIMIT

2,4则表示从第3行记录开始共返回4行。LIMIT起始行的偏移量,返回的记录行数一、查询数据知识储备6、使用WHERE子句限制查询条件

WHERE子句用来限制查询结果的数据行,WHERE后面是条件表达式,查询结果必须是满足条件表达式的记录行。条件表达式通常由一个或多个逻辑表达式组成,而逻辑表达式通常会涉及比较运算符、逻辑运算符和模式匹配等。1)比较运算符比较运算符用于比较两个表达式的值,运算结果为逻辑值,可以为1(真)、0(假)或NULL(不确定)。MySQL支持的比较运算符如表5-1所示。SELECTDISTINCTfkTitleFROMuser5、消除查询结果中的重复行将DISTINCT关键字写在SELECT字段列表所有列名的前面,可以消除DISTINCT关键字后面那些列值中的重复行。输入的SQL语句如下所示:SELECTDISTINCT<字段列表>FROM<表名>;一、查询数据知识储备1)比较运算符运算符含义=等于>大于<小于>=大于或等于<=小于或等于<>、!=不等于<=>相等或都等于空表5-1MySQL支持的比较运算符运用比较运算符语句的基本语法格式如下:需要说明以下几点。表达式是除TEXT和BLOB类型外的表达式。当两个表达式的值均不为NULL时,除了“<=>”运算符,其他比较运算符返回逻辑值TRUE(真)或FALSE(假);而当两个表达式的值中有一个为NULL或都为NULL时,将返回UNKOWN。表达式比较运算符表达式一、查询数据知识储备

2)逻辑运算符在MySQL中,可以将多个判定运算结果通过逻辑运算符(AND、OR、XOR和NOT)组成更复杂的查询条件。逻辑运算符可以用于对某个条件进行测试,运算结果为真或假。MySQL提供的逻辑运算符如表5-2所示。表5-2MySQL提供的逻辑运算符运算符表达式功能ANDAANDB当表达式A和B的值都为真时,整个表达式的结果为真ORAORB当表达式A或B的值为真时,整个表达式的结果为真NOTNOTA如果表达式A的值为真,那么整个表达式的结果为假如果表达式A的值为假时,那么整个表达式的结果为真INAIN(a1,a2,a3,...)如果A的值与集合中的任意值相等,那么返回真BETWEENCBETWEENAANDB如果C的值在A和B之间,那么返回真(包含与两端值相等的情况)一、查询数据知识储备3)模式匹配模式匹配主要用于模糊查询。当无法给出精确的查询条件,并且给出的只是某些列值的一部分时,查询不要求与列值完全相等,称为模糊查询。例如,要查找工作人员表中姓张的员工的相关信息。模式匹配会使用LIKE运算符。LIKE运算符用于指出一个字符串与指定字符串是否匹配,需要与通配符一起使用。常用的通配符有“_”和“%”,“%”代表0个或多个字符,“_”代表单个字符。模式匹配的基本语法格式如下:表达式[NOT]LIKE表达式一、查询数据知识储备4)空值比较空值表示未知的不确定的值,不是空格也不是空字符串。当需要判定一个表达式的值是否为空值时,可以使用ISNULL关键字。其基本语法格式如下:当不使用NOT时,若表达式的值为空值,则返回TRUE,否则返回FALSE;当使用NOT时,结果刚好相反。表达式IS[NOT]NULL一、查询数据任务实施任务5-1统计地区表中面积超过5000且低于10000元的地区信息。输入的SQL语句如下所示:运行结果如图5-13所示。SELECT*FROMareawhereareaBETWEEN5000AND10000;图5-13任务5-1的运行结果一、查询数据任务实施任务5-2查询工作人员表中姓李的员工信息。输入的SQL语句如下所示:运行结果如图5-14所示。SELECT*FROMuserWHEREuserNameLIKE'李%';图5-14任务5-2的运行结果一、查询数据任务实施任务5-3查询工作人员表中工号为1、3、5的员工信息。输入的SQL语句如下所示:运行结果如图5-15所示。SELECT*FROMuserWHEREuserIdin(1,3,5);图5-15任务5-3的运行结果一、查询数据任务实施拓展任务5-1使用聚合函数查询数据。函数是完成特定功能的一组SQL语句的集合。在查询数据时经常使用函数来实现一些复杂运算。MySQL提供了丰富的内置函数,如字符串函数、日期和时间函数、聚合函数等。其中,聚合函数也被称为统计函数,是一组值进行计算并返回一个数值。表

5-3

列举了常用的聚合函数。函数功能COUNT(*)或COUNT(表达式)返回一组数据的总行数。COUNT(*)返回总行数,包括包含空值的行;COUNT(表达式)将去掉表达式的值为空的那些行MAX(表达式)返回一组数据的最大值MIN(表达式)返回一组数据的最小值SUM(表达式)返回一组数据的和AVG(表达式)返回一组数据的平均值表5-3常用的聚合函数一、查询数据任务实施拓展任务5-1使用聚合函数查询数据。(1)统计地区表中面积在10000000以上的地区的数目:(2)统计地区表中面积最大的地区:(3)统计地区表中所有地区的面积之和:SELECTCOUNT(areaNumber)AS'人口在10000000以上的地区数目'FROMareawherepopulationSize>=10000000;SELECTMAX(area)AS'面积最大的地区'FROMareaSELECTSUM(area)AS'所有地区的面积之和'FROMarea04巩固与小结巩固与小结任务分析(1)使用SELECT...FROM语句查询指定列,还可以为查询结果定制列名。(2)使用WHERE子句过滤满足条件的行。(3)使用LIMIT可以查询指定的行记录。(4)使用LIKE进行模糊查询。(5)使用逻辑运算符与比较运算符进行查询。05任务训练任务训练任务分析在点餐系统数据库gkeodm中实现数据表简单查询。(1)查询用户表gkeodm_user,显示所有数据。(2)查询用户表,显示userId、userName、userType字段,并且分别使用别名用户编号、用户名、用户类型来表示。(3)查询用户表,显示所有姓郭的用户的信息。(4)查询菜品表,显示“鱼香肉丝”菜品的基本信息。(5)查询订单表,显示创建人编号大于5且小于10的所有订单信息。(6)查询菜品表,显示编号为1、3、5的菜品的信息。感谢您的观看数据库技术及应用项目6数据的增加、删除和修改操作目录01增加数据03删除数据02修改数据01增加数据一.任务分析,添加3条记录地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码

粤文创数据库已经建立,但表是空的(只有标题。标题不是记录)。我们要做的,就是往“地区表”area内填入记录。area表1.1、插入记录的语句格式INSERT表名(列1,列2,列3,…)VALUES(列1值,列2值,列3值,…);示例6-1:往“学生”表中,添加一条记录往“学生”表中,加入编号:1姓名:赵晓明性别:男的记录编号姓名性别1赵晓明男编号姓名性别学生表示例6-1:往“学生”表中,添加一条记录——命令提示往“学生表”中,加入编号:1姓名:赵晓明性别:男的记录编号姓名性别1赵晓明男编号姓名性别INSERT表名(列1,列2,列3,…)VALUES(列1值,列2值,列3值,…);1.2、插入多条记录的语句格式INSERT表名(列1,列2,列3,…)VALUES(列1值,列2值,列3值,…)

,(列1值,列2值,列3值,…)

, ……(列1值,列2值,列3值,…)

;示例6-2:往“学生”表中,添加多条记录往“学生”表中,加入编号:2姓名:张宏

性别:男编号:3姓名:陈强

性别:男的记录编号姓名性别1赵晓明男2张宏男3陈强男编号姓名性别1赵晓明男学生表示例6-2:往“学生”表中,添加多条记录——命令提示往“学生”表中,加入编号:2姓名:张宏

性别:男编号:3姓名:陈强

性别:男的记录编号姓名性别1赵晓明男2张宏男3陈强男编号姓名性别1赵晓明男INSERT表名(列1,列2,列3,…)VALUES(列1值,列2值,列3值,…)

,(列1值,列2值,列3值,…)

;1.3、插入一条记录的缩略格式INSERT表名VALUES

(列1值,列2值,列3值,…)

;省略了所有列标题示例6-3:在地区表“area”中,添加一条记录地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Guangzhou穗广东中南部7434.4018676600020粤Aarea表示例6-3:分析地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Guangzhou穗广东中南部7434.4018676600020粤AINSERT表名(列1,列2,列3,…)

VALUES(列1值,列2值,列3值,…);9个字段的书写,费时费力;省略不写,不会误解。所以创新出省略格式。1.4、插入多条记录的缩略格式INSERT表名VALUES(列1值,列2值,列3值,…)

,(列1值,列2值,列3值,…)

, ……(列1值,列2值,列3值,…)

;二.任务:

给“area”表插入多条记录地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Guangzhou穗广东中南部7434.4018676600020粤A地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Guangzhou穗广东中南部7434.4018676600020粤A5820韶关Shaoguan韶州广东北部18400.0028551310751粤F5840深圳Shenzhen鹏城珠江口东岸1997.47175600610755粤B5850珠海Zhuhai百岛之市珠江三角洲西南部1736.4524396000756粤Carea表INSERT表名(列1,列2,列3,…)VALUES(列1值,列2值,列3值,…)

,(列1值,列2值,列3值,…)

,(列1值,列2值,列3值,…)

;INSERT表名VALUES(列1值,列2值,列3值,…),(列1值,列2值,列3值,…),(列1值,列2值,列3值,…);方法1方法2三.任务拓展3.1插入含有空字段的记录;3.2通过复制现有的表,生成新表,同时获取记录;3.3从其他表中,获取需要的记录;3.4使用

replace语句,得到一条记录。3.1、插入含有空字段的记录编号姓名性别1赵晓明男2张宏编号姓名性别1赵晓明男暂时没有得到张宏的性别,如何填写这条记录?学生1表编号姓名性别1赵晓明男2张宏编号姓名性别1赵晓明男INSERT学生1VALUES

(2,'张宏',null);3.1、插入含有空字段的记录——命令3.2、用一张带数据的表创建新表,同时继承它的部分数据编号姓名性别成绩1赵晓明男982张宏男883陈强男79编号姓名成绩1赵晓明982张宏883陈强79班级表学生2表3.2、用一张带数据的表创建新表,同时继承它的部分数据——命令编号姓名性别成绩1赵晓明男982张宏男883陈强男79编号姓名成绩1赵晓明982张宏883陈强79CREATETABLE

学生2SELECT

编号,姓名,性别FROM

班级;3.3、将一个表内的记录插入另一个表中名单表姓名性别赵晓明男张宏男陈强男姓名性别成绩黄奕男78刘伟男84罗伊女86姓名性别赵晓明男张宏男陈强男黄奕男刘伟男罗伊女班级1表名单表3.3、将一个表内的记录插入另一个表中——命令名单表姓名性别赵晓明男张宏男陈强男姓名性别成绩黄奕男78刘伟男84罗伊女86姓名性别赵晓明男张宏男陈强男黄奕男刘伟男罗伊女班级1表名单表INSERT名单SELECT姓名,性别FROM班级1;3.4、使用

REPLACE

语句插入一条记录area表地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Guangzhou穗广东中南部7434.4018676600020粤A5820韶关Shaoguan韶州广东北部18400.0028551310751粤F5840深圳Shenzhen鹏城珠江口东岸1997.47175600610755粤B5850珠海Zhuhai百岛之市珠江三角洲西南部1736.4524396000756粤C地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Guangzhou穗广东中南部7434.4018676600020粤A5820韶关Shaoguan韶州广东北部18400.0028551310751粤F5840深圳Shenzhen鹏城珠江口东岸1997.47175600610755粤B5850珠海Zhuhai百岛之市珠江三角洲西南部1736.4524396000756粤C5860汕头Shantou鮀城广东东部2199.0055020000754粤D3.4、使用

REPLACE

语句插入一条记录——命令area表地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Guangzhou穗广东中南部7434.4018676600020粤A5820韶关Shaoguan韶州广东北部18400.0028551310751粤F5840深圳Shenzhen鹏城珠江口东岸1997.47175600610755粤B5850珠海Zhuhai百岛之市珠江三角洲西南部1736.4524396000756粤C地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Guangzhou穗广东中南部7434.4018676600020粤A5820韶关Shaoguan韶州广东北部18400.0028551310751粤F5840深圳Shenzhen鹏城珠江口东岸1997.47175600610755粤B5850珠海Zhuhai百岛之市珠江三角洲西南部1736.4524396000756粤C5860汕头Shantou鮀城广东东部2199.0055020000754粤DREPLACEareaSET

地区编号=5860,中文名='汕头',外文名='Shantou',别名='城',地理位置='广东东部',面积=2199.00,人口数量=5502000,电话区号='0754',车牌代码='粤D';3.4、使用

REPLACE

语句的风险提示REPLACEareaSET

地区编号=5860,中文名='汕头',外文名='Shantou',别名='城',地理位置='广东东部',面积=2199.00,人口数量=5502000,电话区号='0754',车牌代码='粤D';提醒:1.如果area表里面没有主键为“地区编号”是5860的记录,那么replace语句将插入一条记录。2.如果area表里面已经有主键“地区编号”为5860的记录,那么replace语句就会覆盖原有的记录。四、插入记录的5种语句汇总insert

表名(列1,列2,...)values

(列1值,列2值,...);insert表名

values(列1值,列2值,...);insert表名

select

列1名,列2名,...from

某表表名createtable

新表名

select

列1名,列2名,...from

某表表名replace

表名

set

列1名=值1,列2名=值2,...02修改数据一.任务分析,修改别名area表地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Guangzhou穗广东中南部7434.4018676600020粤A地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Guangzhou羊城广东中南部7434.4018676600020粤A修改别名二.使用UPDATE...SET修改数据UPDATE表名SET

要修改的字段=值,…WHERE条件;2.1、示例6-4,修改姓名编号姓名性别1赵小明男编号姓名性别1赵晓明男学生2表UPDATE学生2SET姓名=xxx

WHERE姓名=aaa;编号姓名性别1赵小明男编号姓名性别1赵晓明男学生2表2.1、示例6-4,语句格式三.使用REPLACE...SET修改数据REPLACE表名SET字段1=值1,字段2=值2,…;3.1、示例6-5,修改性别编号姓名性别1赵小明女编号姓名性别1赵小明男学生2表REPLACE表SET

编号=hao,姓名=ming,性别=bie;3.1、示例6-5,语句格式编号姓名性别1赵小明女编号姓名性别1赵小明男学生2表四.使用REPLACE...VALUES修改数据REPLACE表名VALUES

(字段1的值1,字段2的值2,…);提醒:

省略了等号,就需要依照字段的顺序书写值4.1、示例6-6,修改性别编号姓名性别1赵小明女2张宏男学生2表编号姓名性别1赵小明女2张宏女REPLACE表VALUES

(hao,ming,bie);4.1、示例6-6,语句格式编号姓名性别1赵小明女2张宏男学生2表编号姓名性别1赵小明女2张宏女五.任务,修改别名area表地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Guangzhou穗广东中南部7434.4018676600020粤A地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Guangzhou羊城广东中南部7434.4018676600020粤AREPLACE表名

SET地区编号=hao,中文名=ming,...;REPLACE表名VALUES

(字段1的值1,字段2的值2,…);UPDATE表名SET

要修改的字段=值,…WHERE条件;方法1方法2方法3全部字段六.修改记录的几种语句REPLACE表名

SET地区编号=hao,中文名=ming,...;REPLACE表名VALUES

(字段1的值1,字段2的值2,…);UPDATE表名SET

要修改的字段=值,…WHERE条件;推荐不推荐不推荐03删除数据一.任务分析,删除一条记录area表地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Guangzhou穗广东中南部7434.4018676600020粤A5820韶关Shaoguan韶州广东北部18400.0028551310751粤F地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5820韶关Shaoguan韶州广东北部18400.0028551310751粤F删除记录二.使用DELETEFROM删除数据DELETEFROM表WHERE条件;2.1、示例6-7,删除“刘伟”这条记录班级1表姓名性别成绩黄奕男78刘伟男84罗伊女86姓名性别成绩黄奕男78罗伊女862.1、示例6-7,删除记录的语句班级1表姓名性别成绩黄奕男78刘伟男84罗伊女86姓名性别成绩黄奕男78罗伊女86DELETEFROM表WHERE条件;三.任务,删除“广州”这条记录area表地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Guangzhou穗广东中南部7434.4018676600020粤A5820韶关Shaoguan韶州广东北部18400.0028551310751粤F地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5820韶关Shaoguan韶州广东北部18400.0028551310751粤F删除记录DELETEFROM表WHERE条件;4.1、删除表中的所有记录班级1表姓名性别成绩姓名性别成绩黄奕男78罗伊女86DELETEFROM表4.1、删除表中的所有记录——命令班级1表姓名性别成绩姓名性别成绩黄奕男78罗伊女86(1)INSERT…VALUES…:向表中添加n条记录。(2)UPDATE:修改记录中的字段值。(3)REPLACE:向表中添加记录,或者修改记录中的字段值。(4)DELETEFROM:删除n条记录。(5)TRUNCATE:删除所有记录。本章总结感谢您的观看数据库技术及应用项目7数据高级查询目录03数据排序01聚合函数及其应用02分组查询01聚合函数及其应用一.任务分析从粤文创的数据库中,获取:1.统计地级市的个数2.找出面积最小的地级市area表地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Guangzhou穗广东中南部7434.4018676600020粤A5820韶关Shaoguan韶州广东北部18400.0028551310751粤F5840深圳Shenzhen鹏城珠江口东岸1997.47175600610755粤B5850珠海Zhuhai百岛之市珠江三角洲西南部1736.4524396000756粤C二.知识储备:如何求平均值SELECT

AVG(字段名)FROM

表名average的缩写2.1、示例7-1:求所有学生的平均成绩编号姓名性别成绩1赵晓明男982张宏男883陈强男79班级1表2.1、示例7-1:求所有学生的平均成绩——命令编号姓名性别成绩1赵晓明男982张宏男883陈强男79班级1表SELECT

AVG(成绩)FROM

表名三.如何统计个数——符合条件的记录的数量SELECT

COUNT(字段名)FROM

表名3.1、

统计广东省地级市的个数area表地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Guangzhou穗广东中南部7434.4018676600020粤A5820韶关Shaoguan韶州广东北部18400.0028551310751粤F5840深圳Shenzhen鹏城珠江口东岸1997.47175600610755粤B5850珠海Zhuhai百岛之市珠江三角洲西南部1736.4524396000756粤CSELECT

COUNT(*)FROM

表名3.2、

最小的地级市,其面积为多少?area表地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Guangzhou穗广东中南部7434.4018676600020粤A5820韶关Shaoguan韶州广东北部18400.0028551310751粤F5840深圳Shenzhen鹏城珠江口东岸1997.47175600610755粤B5850珠海Zhuhai百岛之市珠江三角洲西南部1736.4524396000756粤CSELECT

MIN(面积)FROM

表名四.复合语句类似于英语的从句。比如:SELECT字段名FROM表WHERE面积=(select语句)select语句的结果,是一个值4.1、

哪个地级市的面积最小area表地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Guangzhou穗广东中南部7434.4018676600020粤A5820韶关Shaoguan韶州广东北部18400.0028551310751粤F5840深圳Shenzhen鹏城珠江口东岸1997.47175600610755粤B5850珠海Zhuhai百岛之市珠江三角洲西南部1736.4524396000756粤CSELECT中文名FROMareaWHERE面积=(SELECT

MIN(面积)FROMarea);城市的名字五.常用的聚合函数函数函数功能sum()总和avg()平均值count()个数max()最大值min()最小值02分组查询一.什么是分组姓名性别成绩黄奕男78刘伟男84罗伊女86班级1表比如:按性别分组,求每组人数,最终,得到男女生的数量。一.分组用到的关键词是

groupby姓名性别成绩黄奕男78刘伟男84罗伊女86班级1表比如语句中要用到:

GROUPBY

性别示例7-2:统计“志愿者活动”表中,哪几个班级的人参加了活动姓名班级蔡陈星网络2111曾浩网络2111陈煌钦网络2113陈木泉网络2111陈一帆信安2115邓棋彬网络2112邓子健网络2112傅国权网络2112黄炳盛网络2114黄文杰网络2112江俊宇网络2112梁立志网络2112林土稘网络2112马佳宜网络2112✔✔✔✔✔通过观察,发现有5个班的学生参加了活动。如何通过

groupby

统计呢?示例7-2:统计“志愿者活动”表中,哪几个班级的人参加了活动的方法姓名班级蔡陈星网络2111曾浩网络2111陈煌钦网络2113陈木泉网络2111陈一帆信安2115邓棋彬网络2112邓子健网络2112傅国权网络2112黄炳盛网络2114黄文杰网络2112江俊宇网络2112梁立志网络2112林土稘网络2112马佳宜网络2112SELECT

班级

FROM

GROUPBY

班级SELECT

DISTINCT

班级

FROM

表方法1方法2示例7-2:distinct(不同种类的)姓名班级蔡陈星网络2111曾浩网络2111陈煌钦网络2113陈木泉网络2111陈一帆信安2115邓棋彬网络2112邓子健网络2112傅国权网络2112黄炳盛网络2114黄文杰网络2112江俊宇网络2112梁立志网络2112林土稘网络2112马佳宜网络2112SELECT

DISTINCT

班级

FROM

表distinct班级含义是:每个班级只能出现1次,不能重复。其结果就是:得到每个班级的名称,去掉重复任务7-2:统计每个城市名人的数量需要使用:1.COUNT()2.GROUPBY城市名人云浮惠能云浮陈集原云浮陈璘云浮李熙载云浮蔡廷锴云浮邓发广州杨孚广州崔与之广州李昴英广州陈大震“名人所在城市”表任务7-2:统计每个城市名人的数量SELECT城市,COUNT(*)FROM表

GROUPBY城市城市名人云浮惠能云浮陈集原云浮陈璘云浮李熙载云浮蔡廷锴云浮邓发广州杨孚广州崔与之广州李昴英广州陈大震“名人所在城市”表任务7-3:统计广州、佛山、珠海三个城市的名人数量,以及三个市名人总数量需要使用:1.WHERE条件:包含这3座城市2.COUNT()3.GROUPBY4.WITHROLLUP城市名人云浮惠能云浮陈集原云浮陈璘云浮李熙载云浮蔡廷锴云浮邓发广州杨孚广州崔与之广州李昴英广州陈大震“名人所在城市”表汇总,总和任务7-3:统计三个城市名人的数量和三市总数量——命令SELECT城市,COUNT(*)FROM表

WHERE城市in('广州','佛山','珠海')

GROUPBY城市

WITHROLLUP城市名人云浮惠能云浮陈集原云浮陈璘云浮李熙载云浮蔡廷锴云浮邓发广州杨孚广州崔与之广州李昴英广州陈大震“名人所在城市”表二.拓展知识:

函数group_concat()concat是

concatenate的缩写concatenate:连续,连锁二.拓展知识:group_concat()产生的样式城市名人珠海苏兆征,杨匏安,唐国安潮州林大钦,黄仁勇汕头秦牧,丘成桐,马化腾城市名人珠海苏兆征珠海杨匏安珠海唐国安潮州林大钦潮州黄仁勇汕头秦牧汕头丘成桐汕头马化腾原来只能这样显示现在可以在一行内显示借助group_concat()拓展7-2:通过“名人所在城市”表,列举出每个城市的名人要求使用函数group_concat()城市名人云浮惠能云浮陈集原云浮陈璘云浮李熙载云浮蔡廷锴云浮邓发广州杨孚广州崔与之广州李昴英广州陈大震“名人所在城市”表拓展7-2:通过“名人所在城市”表,列举出每个城市的名人SELECT城市,GROUP_CONCAT(名人)FROM名人所在城市GROUPBY城市;城市名人云浮惠能云浮陈集原云浮陈璘云浮李熙载云浮蔡廷锴云浮邓发广州杨孚广州崔与之广州李昴英广州陈大震“名人所在城市”表拓展7-3:通过“名人所在城市”表,列举出名人少于11人的城市

及人数分析:1.按城市分组2.对每个组进行求和3.筛选出“和”小于11的城市城市名人云浮惠能云浮陈集原云浮陈璘云浮李熙载云浮蔡廷锴云浮邓发广州杨孚广州崔与之广州李昴英广州陈大震“名人所在城市”表拓展7-3:列举出名人少于11人的城市

及人数。引入HAVING对每个小组进行筛选,其条件引导词,要使用

having不允许使用

where城市名人云浮惠能云浮陈集原云浮陈璘云浮李熙载云浮蔡廷锴云浮邓发广州杨孚广州崔与之广州李昴英广州陈大震“名人所在城市”表拓展7-3:通过“名人所在城市”表,列举出每个城市的名人SELECT城市,COUNT(名人)FROM名人所在城市GROUPBY城市

HAVINGCOUNT(*)>11;城市名人云浮惠能云浮陈集原云浮陈璘云浮李熙载云浮蔡廷锴云浮邓发广州杨孚广州崔与之广州李昴英广州陈大震“名人所在城市”表拓展7-4:“社团情况”表中,每个班的同学都参加了哪些社团分析:先按照班级分组每个组中,再按照社团分组“社团情况”表姓名班级社团蔡陈星网络2112历史曾浩网络2113历史陈煌钦网络2113文学陈木泉网络2113文学陈一帆网络2112围棋邓棋彬网络2114围棋邓子健网络2114文学傅国权网络2112历史黄炳盛网络2114围棋黄文杰网络2112历史拓展7-4:“社团情况”表中,每个班的同学都参加了哪些社团SELECTDISTINCT班级,社团FROM社团情况;“社团情况”表姓名班级社团蔡陈星网络2112历史曾浩网络2113历史陈煌钦网络2113文学陈木泉网络2113文学陈一帆网络2112围棋邓棋彬网络2114围棋邓子健网络2114文学傅国权网络2112历史黄炳盛网络2114围棋黄文杰网络2112历史SELECT班级,社团FROM社团情况GROUPBY班级,社团;方法1方法203数据排序一.任务分析从粤文创的数据库中,按车牌号码排序area表地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Guangzhou穗广东中南部7434.4018676600020粤A5820韶关Shaoguan韶州广东北部18400.0028551310751粤F5840深圳Shenzhen鹏城珠江口东岸1997.47175600610755粤B5850珠海Zhuhai百岛之市珠江三角洲西南部1736.4524396000756粤C1.1、排序的关键词是ORDERBY升序:ORDERBY车牌号码升序:ORDERBY车牌号码

ASC降序:ORDERBY车牌号码

DESC

二者等价示例7.3、按车牌号码升序排序area表地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Guangzhou穗广东中南部7434.4018676600020粤A5820韶关Shaoguan韶州广东北部18400.0028551310751粤F5840深圳Shenzhen鹏城珠江口东岸1997.47175600610755粤B5850珠海Zhuhai百岛之市珠江三角洲西南部1736.4524396000756粤CSELECT城市,车牌号码FROM表ORDERBY车牌号码;任务7.4、按车牌号码降序排序area表地区编号中文名外文名别名地理位置面积(平方千米)人口数量(人)电话区号车牌代码5810广州Gua

温馨提示

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

评论

0/150

提交评论