数据库温习

四大操作语句-增删改查

1.增 INSERT

INSERT INTO 表 (字段列表) VALUES(值列表)

2.删 DELETE
DELETE FROM 表 WHERE 条件
3.改 UPDATE
UPDATE 表 SET 字段=值,字段=值,... WHERE 条件
4.查 SELECT

SELECT * FROM 表 WHERE 条件

WHERE子句

用我自己的话来描述where子句就是限制一个范围来执行

例:

*名字规定为Btrya的

WHERE name='Btrya'

*大于十八岁的

WHERE age>18

*小于等于十八岁的

WHERE age<=18

*成年了还考试不及格的

WHERE age>=18 AND score<60

*余额超过100块的或者积分超过一万的

WHERE cach>100 OR score>10000

ORDER子句

用我自己的话来说这就是用来根据需求排序用的

升序和降序(ORDER BY age ASC/DESC)

  ASC-升序(从小到大)
  DESC-降序(从大到小)

例:

*根据价格升序

ORDER BY price ASC

*价格(price)升序排序,如果价格相同,再按销量(sales)降序排序

ORDER BY price ASC, sales DESC   

(注意中间逗号分隔,表示按前面语句排序了再按后面语句排)

GROUP子句

这个叫做聚类,不是很好记,可以理解成 合并同类

假设现在有下面这个表,表名是 student_table

我们现在要做的就是统计每个班有多少人

SELECT * FROM student_table;

ID class name
1 1 小明
2 2 小红
3    1 小刚
4 2 小华
5 3 小强
6 3 小四
7 1 小刘
8 1 小花

SELECT * FROM student_table GROUP BY class;(没多大意义)

ID class name
1 1 小明
2 2 小红
3 3 小强

这样的查询意义不大,因为只是把重复班级做了一个去重的处理,并不是我们想要的结

SELECT class FROM student_table GROUP BY class;(意义更不大)

class   
1
2
3

我们在SELECT后增加了class,出来的结果只是有几个班级,不是我们要的结果

SELECT class,COUNT(class) FROM student_table GROUP BY class;

class COUNT(class)
1 4
2 2
3 2

这就是我们要的结果了,利用COUNT对class进行计数,即统计每个class出现了几次,就是我们要的结果

像COUNT这样自带的函数总结如下:

1.AVG( ) 统计平均值

2.COUNT( ) 计数

3.MAX( ) 取最大值

4.MIN( ) 取最小值

5.SUM( ) 求和


我们来用一用这些函数

还是之前的表,增加一列score分数列

SELECT * FROM student_table;

ID class name score
1 1 小明 34
2 2 小红 98
3 1 小刚 26
4 2 小华 99
5 3 小强 18
6 3 小四 95
7 1 小刘 57
8 1 小花 100

*统计一下各个班级的平均分

SELECT class,AVG(score) FROM student_table GROUP BY class;

class AVG(score)
1 54.25
2 98.5
3 56.5

*统计每个班的最高分和最低

SELECT class,MAX(score),MIN(score) FROM student_table GROUP BY class;

class MAX(score) MIN(score)
1 100 26
2 99 98
3 95 18

再举个例子

这有一张关于消费信息的表 sales_table

SELECT * FROM sales_table;

ID name price
1 王五 3
2 王五 5
3 张三 28000
4 李四 81000
5 王五 4
6 张三 46000
7 李四 38000
8 赵六 18
*查看每个人 消费了多少

SELECT name,SUM(price) FROM sales_table GROUP BY name;

name SUM(price)
王五 12
张三 74000
李四 119000
赵六 18
*降序弄一个土豪排行榜
SELECT name,SUM(price) FROM sales_table GROUP BY name ORDER BY SUM(price) DESC;

name SUM(price)
李四 119000
张三 74000
赵六 18
王五 12

函数总结over


LIMIT子句

这个子句主要用来限制输出,可以用来实现分页

语法:

LIMIT 10;   前10条

LIMIT 5,8;   从5开始,要8个

例如分页,每页20条数据:

第1页 0,20 0~19
第2页 20,20 20~39
第3页 40,20

第n页 (n-1)*20,20


各个子句的使用顺序(这是重点好吗)

子句之间是有顺序的:

WHERE  GROUP  ORDER  LIMIT

筛选       合并       排序      限制


完整语句如下使用:(换行让你看的更清楚)

SELECT class,COUNT(class) FROM student_table
WHERE score>60
GROUP BY class
ORDER BY COUNT(class) DESC
LIMIT 2;


如果不按这个顺序会报错!!

为啥报错把顺序颠倒一下你就知道多不合理了。

所以请严格按照这个顺序使用子句!!!









猜你喜欢

转载自blog.csdn.net/cccbtrya/article/details/80469322