MySQL数据库中groupby语句与update语句的用法研究

发布时间:2022-11-30 15:29:48

龙源期刊网http://www.qikan.com.cn
MySQL数据库中groupby语句与update语句的用法研究
作者:孙曼曼
来源:《传播力研究》2019年第27
摘要:本论文以MySQL数据库为实验环境,讨论当数据进行查询、修改时会遇到的一些问题,并给出具体的解决方案。本论文中主要讨论的语句有groupby语句、update语句。关键词:MySQL数据库;groupby语句;update语句
MySQL遵循SQL查询的基本语法,但在某些细节方面还是与基本语法有所区别。下面讨论在数据查询、修改中遇到的问题,主要涉及到的语句有groupby语句、update语句。一、MySQL数据库中group;by语句的用法Groupby语句的作用是对数据进行分组。(一)语法
select;列名1,列名2......,聚合函数(列名)from;表名[where.........]
groupby;列名1,列名2......(二)语法说明
1.groupby;子句指定按照哪些列进行分组。
2.可以按照一列进行分组,也可以按照多列进行分组。按多列分组时,各列名之间用逗号分隔。
3.在使用groupby子句时,select子句中的任意一列要么包含在聚合函数中,要么必须在groupby子句中出现过。(三)实例

龙源期刊网http://www.qikan.com.cn
要求从teacher表中,查詢各个系男、女教师的人数,其中teacher表的关系模式如下所示:teachertnotnamecnosaldnametsextageselect;dnametsexcount*as人数from;teacher
groupby;dnametsexorderby;dname
(四)实际应用用遇到的问题
MySQL中的groupby在应用过程中并没有严格的遵守:使用groupby子句时,select子句中的任意一列要么包含在聚合函数中,要么必须在groupby中出现过。例如:我们将上例做如下修改:
select;tagednametsexcount*as人数from;teacher
groupby;dnametsexorderby;dname
分析:Select子句中的tage并没有出现在groupby子句中,也没有包含在聚合函数内,但是该查询语句仍能执行并查出结果,系统并没有提示语法错误。虽然语句正常执行了,但是所查出的数据tage并没有实际的意义。
在实际应用中建议遵循:使用groupby时,select子句中的任意一列要么包含在聚合函数中,要么必须在groupby中出现过。二、MySQL数据库中update语句的用法(一)语法update;表名set;;;;1=1

龙源期刊网http://www.qikan.com.cn
2=2.........
[where;………](二)实例
要求将所有教师的年龄增加1岁,同时给所有教师的工资增加10%update;teacherset;;;;age=age+1sal=sal*1.1
(三)实际应用出现的问题
要求:当男教师的工资低于所有男教师的平均工资时,将该男教师的工资提高5%参考答案如下:update;teacherset;sal=sal*1.05
where;tsex=''and;sal<selectavgsalfromteacherwheretsex=''
分析:在MySQL中执行这条语句,系统提示错误。出现该错误的原因是:在MySQL中,在同一条查询语句中不能直接从某表中查出数据再更新或删除本表中的数据。修改方法如下:update;teacherset;sal=sal*1.05where;tsex=''and
sal<selectsal

MySQL数据库中groupby语句与update语句的用法研究

相关推荐