带你玩转JavaWeb开发之六-mysql基本语法详解及实例(4)
按照分类的名称统计每个分类商品所花的总钱数【排序查询】
SQL中对查询的列进行排序,使用关键字order by。默认情况下是升序的排序(从小到大的排序顺序关键字 asc)。使用降序排序需要使用关键字desc。
查询学生的信息,对查询到的信息根据语文分数进行排序。
默认情况

添加asc的情况:

按照语文的分数从大到小排序。

按照英语成绩降序排序,如果英语分数一致,按照数学分数降序排序。

查询所有姓梁的学生,按照数学降序排序。

【聚合函数】
sum(); ---求和。
avg(); ---求平均值。
count(); ---统计个数。
max(); ---求最大值。
min(); ---求最小值。
统计表中的所有学生的个数。

统计表中姓梁的学生的个数

计算所有学生的英语成绩的总分

计算各个学科的学生的总成绩

目前两个查询的结果是一样的,但是实质上两种查询不一样的。上面的是竖着统计的值,而下面的是横向统计的值。目前值一样。
现在插入空值:



横着统计,NULL+78+92 最终结果是NULL.竖着方向sum(english)+sum(math)+sum(chinese)将78和92的值也都统计进来了。也可以使用ifnull函数。

求出数学平均成绩


取出数学的最高分是多少

获得语文成绩的最低分是多少

获得姓张的同学的语文成绩的最高分

【查询的分组】
对得到的数据进行分组,使用的关键字group by 。分组的主要的目的是与聚合函数一起使用进行数据的统计情况的分析。
create table product(
id int primary key auto_increment,
name varchar(20),
price double,
cname varchar(20)
);
insert into product values (null,'洗衣机',1000,'家用电器');
insert into product values (null,'冰箱',3000,'家用电器');
insert into product values (null,'洗衣机',1000,'家用电器');
insert into product values (null,'空调',2000,'家用电器');
insert into product values (null,'电脑',4000,'电脑办公');
insert into product values (null,'机械键盘',300,'电脑办公');
insert into product values (null,'机械键盘',300,'电脑办公');
按商品的名称进行分组。

按商品的分类的名称进行分组

按照商品名称统计每个商品所购买的个数

按照商品的名称统计每类商品所花的总钱数

获得家用电器类的商品所花的总金额

按照分类的名称统计每个分类商品所花的总钱数。查询出总钱数大于5000的有哪些。

以上的写法是错误的!!!因为where条件后不能加聚合函数。带分组统计的条件,需要加在having后面。

1.1.1.2 对查询语句进行总结:
查询的语句是变化最多的语句。结构如下:
Select … From … where … group by … having … order by …;
SFWGHO…
带你玩转JavaWeb开发之六-mysql基本语法详解及实例(4)的更多相关文章
- 带你玩转JavaWeb开发之六-mysql基本语法详解及实例(2)
1.1.1 对数据库中表的记录进行操作(*****) 1.1.1.1 对数据库中表记录插入操作 [语法] 向数据库表中插入某些列:insert into 表名 (列名1,列名2,列名3-) ...
- 带你玩转JavaWeb开发之六-mysql基本语法详解及实例(1)
1.1.1 对数据库的表进行操作 1.1.1.1 对数据库中表进行创建 [语法:] create table 表名( 列名 列类型 [列约束], 列名 列类型 [列约束], 列名 列类型 [ ...
- 带你玩转JavaWeb开发之六-mysql基本语法详解及实例(3)
[语法] update 表名 set 列名=列值,列名=列值 -[条件]; [注意事项] * 修改的列的值需要与列的类型一致. * 修改的列的值的长度不能超过列的类型的最大长度. * 字符串类型和日期 ...
- mysql 触发器语法详解
1.创建Mysql触发器: 语法: CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW BE ...
- 带你玩转JavaWeb开发之五-如何完成响应式开发页面
响应式页面开发 使用BootStrap开发一个响应式的页面出来 响应式开发就是同一个页面在PC端与手机端Pad端显示不同的效果,以给用户更好的体验 需求分析 开发一套页面,让用户能够在PC端, Pad ...
- 带你玩转JavaWeb开发之四 -如何用JS做登录注册页面校验
今日内容 使用JQuery完成页面定时弹出广告 使用JQuery完成表格的隔行换色 使用JQuery完成复选框的全选效果 使用JQuery完成省市联动效果 使用JQuery完成下列列表左右选择 使用J ...
- 带你玩转JavaWeb开发之三 -JS插件实战开发
前提:需要掌握的知识点 填写HTML代码 Element元素中有一个innerHTML属性,这个属性可以填写一段html代码 innerHTML = "<font ...
- 带你玩转JavaWeb开发之三 - CSS从基础到实战
一,什么是CSS? Cascading Style Sheets层叠样式表 层叠:就是层层覆盖叠加,如果有多种样式对同一html标签进行修饰,样式有冲突的部分应用优先级高,不冲突的 ...
- 带你玩转JavaWeb开发之一 - HTML快速入门
一,html简介 1,html是什么 Html是用来描述网页的一种语言. (1)HTML 指的是超文本标记语言 (Hyper Text Markup Language) (2)HTML 不是一种编程语 ...
随机推荐
- Redis 3.0正式版发布,正式支持Redis集群
Redis是一个开源.基于C语言.基于内存亦可持久化的高性能NoSQL数据库,同时,它还提供了多种语言的API.近日,Redis 3.0在经过6个RC版本后,其正式版终于发布了.Redis 3.0的最 ...
- 设置app的启动图
Step1 1.点击Image.xcassets 进入图片管理,然后右击,弹出"New Launch Image" 2.如图,右侧的勾选可以让你选择是否要对ipad,横屏,竖屏,以 ...
- request getParameter getAttribute
在浏览器地址输入,表示传入一个参数test,值为123 http://localhost:8888/Test/index.jsp?test=123 在index.jsp中尝试使用EL表达式取出,代码如 ...
- Linux常用命令学习4---(挂载命令mount umount、用户登陆查看和用户交互命令 w who last lastlog)
紧接着上一篇Linux的命令行的学习:Linux学习3---(文件的压缩和解压缩命令zip unzip tar.关机和重启命令shutdown reboot……) 1.挂载命令 简介 ...
- 高并发应用场景下的负载均衡与故障转移实践,AgileEAS.NET SOA 负载均衡介绍与实践
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...
- 前端SEO技巧
前几天在慕课网上学习了“SEO在网页制作中的应用”,觉得挺好.挺有用的,今天,特此做了一个小小的笔记,也算是对学习过后的一个总结. 一.搜索引擎工作原理 当我们在输入框中输入关键词,点击搜索或查询时, ...
- WIN32/API/SDK/MFC四者之间的联系和区别
上面大家都说Win32是一个子系统,这个当然是对的,不过我们有时候我们所说Win32通俗的就是指32位的Windows系统,从 windows95/98到NT/2000/XP都是32位Windows. ...
- dos2unix对shell脚本程序的解救
删除多个文件,不询问是否删除:rm -rf *.log (利用通配符) dos2unix 文件名:由于windows系统中文件的结束符和linux下文件的结束符不同,一些对语法要求较严格的脚本语言就会 ...
- Java 常用方法
java 图片上传from表单必加属性:enctype="multipart/form-data" 1.获取字符串的长度 : length() 2 .判断字符串的前缀或后缀与已知字 ...
- 【原】PHP初体验
1. 相关内容介绍 1>互联网开发 互联网:传统互联网.移动互联网 互联网开发:前端开发(前台).后台开发(后端.服务端) 前端开发:视觉展示(用户界面).用户交互.采集输入信息 后台开发:管理 ...