第三章 sql查询

单表查询

在这里插入图片描述

在这里插入图片描述

1.ORDER BY

在这里插入图片描述

(1)将英雄按防御值从低到高排序

SELECT * FROM hero
ORDER BY defense ASC;

(2)将蜀国英雄按攻击值从高到低排序

SELECT * FROM hero 
WHERE country="蜀国"
ORDER BY attack DESC;

(3)将魏蜀两国中名字为三个字的英雄按防御值升序排序

DELECT * FROM hero
WHERE country="蜀国" OR country="魏国" AND name LIKE "___"
ORDER BY attack DESC;

2.LIMIT

在这里插入图片描述

(1)在蜀国英雄中,查找防御值倒数第二名至倒数第四名的英雄记录

SELECT * FROM hero
WHERE country ="蜀国"
ORDER BY defense DESC
LIMIT 1,3;

(2)在蜀国英雄中,查找攻击值前3名且名字不为NULL的英雄的名字,攻击值和国家

SELECT name,attack,country FROM hero
WHERE country="蜀国" AND name IS NOT NULL
ORDER BY attack DESC
LIMIT 3;

3.聚合函数

在这里插入图片描述

(1)所有英雄中,攻击力的最强值是多少

SELECT MAX(attack) FROM hero;

(2)计算蜀国英雄的总攻击力

SELECT SUM(attack) FROM hero
WHERE country="蜀国";

(3)统计id,name 两个字段分别有几条记录

SELECT COUNT(id),COUNT(name) FROM hero;

(4)统计蜀国英雄中攻击力>200的英雄的数量

SELECT COUNT(*) FROM hero
WHERE country="蜀国" AND attack > 200;

4.分组

在这里插入图片描述

(1)查询表中有哪些国家

SELECT country FROM hero
GROUP BY country;

(2)计算每个国家的平均攻击力

SELECT country,AVG(attack) FROM hero
GROUP BY country;

(3)查找所有国家中英雄数量最多的前2名的国家名称和英雄数量

SELECT country,count(id) FROM hero
GROUP BY country 
ORDER BY count(id) DESC
LIMIT 2;

结果:
在这里插入图片描述

5.HAVING

在这里插入图片描述

(1)找出平均攻击力>105的国家的前2名,显示国家名和平均攻击力

SELECT country,AVG(attack) FROM hero
GROUP BY country 
HAVING AVG(attack)>105
ORDER BY AVG(attack) DESC
LIMIT 2;

6.DISTINCT

在这里插入图片描述

(1)表中都有哪些国家

SELECT DISTINCT country FROM hero;

(2)计算表中一共有几个国家

SELECT COUNT(DISTINCT country) AS cou_num FROM hero;

7.查询表记录时做数学运算

(1)查询所有英雄的id,name,attack字段,并在查询时将所有英雄的攻击力翻倍

SELECT id,name,attack*2 FROM hero
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值