mysql学习笔记四(查询数据)

系统 1641 0

准备数据:
create table student(
 id int,
 name varchar(20),
 chinese float,
 english float,
 math float
);
insert into student (id ,name ,chinese,english,math)values(1,`张小明`,89,78,90);
insert into student (id ,name ,chinese,english,math)values(2,`李进`,67,98,56);
insert into student (id ,name ,chinese,english,math)values(3,`王五`,87,78,77);
insert into student (id ,name ,chinese,english,math)values(4,`李一`,88,98,90);
insert into student (id ,name ,chinese,english,math)values(5,`李来财`,82,84,67);
insert into student (id ,name ,chinese,english,math)values(6,`张进宝`,55,85,45);
insert into student (id ,name ,chinese,english,math)values(7,`张小明`,75,65,30);

 

查询学生的总成绩
select s.chinese+s.english+s.math,s.name from student s

 

使用别名
select chinese as 语文,english as 英语,math as 数学,name from student
与下面语句等价
select chinese 语文,english 英语,math 数学,name from student

 

查询总分大于200分的所有用户
select * from student s where (s.chinese+s.english+s.math)>250

不等于:<> 或者 !=

mysql学习笔记四(查询数据)


1 使用order by 排序

order by使用语法:

select column1,column2 from table_name  order by 列名 asc[decs]

 

对数学成绩排序后输出
select math,name from student order by math;


对总分排序后输出
select (s.chinese+s.english+s.math) as sum_score,s.name from student s order by sum_score desc
与下面句子等价
select (s.chinese+s.english+s.math) ,s.name from student s order by (s.chinese+s.english+s.math) desc

 

对姓李的同学成绩排序
select (s.chinese+s.english+s.math) as sum_score,s.name from student s where s.name like '李%' ORDER BY sum_score desc


2 统计函数

统计函数count语法:

select count(*) | count(列名) from tablename where where_definition

 

统计数学成绩大于90分的同学
select count(*) from student  where math>=90

 

统计函数sum 和 avg语法

select sum(列名){,sum(列名)…} from table where where_definition

select avg(列名){,avg(列名)…} from table where where_definition
强调:avg不会统计(为空)的现象

 

统计函数max 和 min语法

select max(列名) from table where where_definition
select min(列名) from table where where_definition
备注:如果数据类型不是“数值”类型,也能进行排序查询


3 group by 分组
create table orders(
 id int,
 product varchar(20),
 price float
);

insert into orders(id,product,price) values(1,'电视',900);
insert into orders(id,product,price) values(2,'洗衣粉',100);
insert into orders(id,product,price) values(3,'洗衣粉',90);
insert into orders(id,product,price) values(4,'桔子',10);
insert into orders(id,product,price) values(5,'洗衣粉',90);

 

根据商品分类
select product,sum(price) from orders group by product;

 

having用法
查询购买了几类商品,并且每类总价大于100的商品
select product,sum(price) as sumprice from orders  group by product HAVING sumprice >100;

  mysql学习笔记四(查询数据)

mysql学习笔记四(查询数据)


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论