四大操作语句-增删改查

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;

例如分页,每页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;


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

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

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