带你玩转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 不是一种编程语 ...
随机推荐
- AngularJS 初用总结
一直用惯jquery,初用Angularjs的初段时间,需要先了解一下她的类MVC思想. 初学时几个比较基本的概念: 1.客户端模板 2. Model View Controller (MVC) 3. ...
- 分享一些不错的sql语句
1.说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 法一:select * into b from a where 1 <> ...
- MySQL备份之【mydumper 学习】
MySQL在备份方面包含了自身的mysqldump工具,但其只支持单线程工作,这就使得它无法迅速的备份数据.而mydumper作为一个实用工具,能够良好支持多线程工作,这使得它在处理速度方面十倍于传统 ...
- windwos server 路由备份和恢复 路由表备份和恢复
netsh dump>:c\name.dmp netsh exec >:c\name.dmp
- SpringMVC客户端发送json数据时报400错误
当测试客户端发送json数据给服务器时,找不到响应路径? 原来是参数类型不符,即使是json也要考虑参数的个数和类型 解决:将age请求参数由"udf"改为"3" ...
- JS中创建函数的三种方式及区别
1.函数声明 function sum1(n1,n2){ return n1+n2; }; 2.函数表达式,又叫函数字面量 var sum2=function(n1,n2){ return n1+n2 ...
- Android杂记:genymotion与eclipse报错问题
用eclipse启动genymotion时有时候会报 The connection to adb is down, and a severe error has occured. You must r ...
- android 第三方登录 --- QQ
1,jar包 2,配置AndroidManifest.xml <activity android:name=".login.LoginActivity" android:co ...
- [Android]电话拨号器开发
继续今天的Android,经过昨天大体了解了Android开发的一些基本文件结构,今天来做一个电话拨号器! 预期达到的效果 实现过程 首先还是按照昨天第一篇教程,新建一个项目叫PhoneCall的An ...
- 关于HTML5的拖拽
不介绍具体情况,先看API,注意看后面括号的说明 dragstart:拖拽开始(应用于被拖拽对象) drag:拖拽中(应用于被拖拽对象) dragenter:拖拽到指定位置(应用于拖拽目标) drag ...