10分钟教你Python+MySQL数据库操作 (5)

查询结果排序可以使用 ORDER BY 语句,默认的排序方式为升序,如果要设置降序排序,可以设置关键字 DESC。例如:我们要按照年龄对customers进行升序排列:

#排序   #按照年龄排序   sql = "SELECT * FROM customers ORDER BY age"   mycursor.execute(sql)   myresult=mycursor.fetchall()   for x in myresult:       print(x)  

执行代码,得到的结果为:

10分钟教你Python+MySQL数据库操作

n zxx m nb

LIMIT

当数据库数量非常大的时候,为了限制查询的数据量,可以采用"LIMIT"语句来指定,比如我们希望在customers表中找出工资最高的三个人:

#找出其中工资最高的3个人   sql = "SELECT * FROM customers ORDER BY sl DESC LIMIT 3"   mycursor.execute(sql)   myresult=mycursor.fetchall()   for x in myresult:       print(x)  

执行代码,得到结果为:

10分钟教你Python+MySQL数据库操作

二次筛选

有时候我们在进行一次筛选后,还需要设定一个筛选条件进行二次筛选,我们就可以采用“HAVING”语句。例如:我们希望统计在年龄处于20-30(不包括20岁,但是包括30岁)的人当中,选择薪资大于5000的消费者:

#二次过滤   #统计在年龄处于20-30之间的人中,选择薪资大于5000的人   sql = "SELECT * FROM customers WHERE age>20 and age<=30 HAVING sl>5000 "   mycursor.execute(sql)   myresult=mycursor.fetchall()   for x in myresult:       print(x)   con.commit()   con.close()  

执行代码后,得到的结果如下:

10分钟教你Python+MySQL数据库操作

3.5 分组聚合

在数据库中,分组常用的语句为“GROUP BY”语句,聚合函数,通常是配合分组进行使用,在数据库中常用的聚合函数为:

COUNT(*):表示计算总行数,括号可以写*和字段名字

MAX(column):表示求此列的最大值

MIN(column):表示求此列的最小值

SUM(column):表示求此列的和

AVG(column):表示求此列的平均值

从customers表中统计出男女薪资总和

以sex为类别进行GROUP BY 分组,加上WHERE来做条件判断。

#统计出男女的薪水总数   sql = "SELECT sex,sum(sl) FROM customers GROUP BY sex"   mycursor.execute(sql)   myresult=mycursor.fetchall()   for x in myresult:       print(x)  

最终结果为:

10分钟教你Python+MySQL数据库操作

从customers表中,按性别进行分组,统计出年龄在20-30的消费者的薪资,并且按照薪资高低进行排序

# 按照性别进行分组,统计出年龄在20-30岁的消费者的薪资   sql = "SELECT sex,sum(sl) FROM customers WHERE age>20 and age<=30 GROUP BY sex ORDER BY sl"   mycursor.execute(sql)   myresult=mycursor.fetchall()   for x in myresult:       print(x)  

10分钟教你Python+MySQL数据库操作

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgjppy.html