一、数据的增、删、改、查(insert,delete,update,select)
1、插入数据
insert into 表 (列...) values (值)
insert into 表 values (值...)
不用插入的列:标识列,允许为空的列
insert into 表 (列...) select 列... from 表 //查询数据插入
insert into 表 values (值...),(值...) //插入多条数据
2、修改,更新数据
update 表 set 列=值,列=值...[where 过滤条件]
3、删除数据
delete from 表 [where 过滤条件]
4、查询数据
查询所有 select * from 表;
查询某些列数据 select 列... from 表;
查询某些数据 select * from 表 where 过滤条件;
对数据进行排序 select * from 表 [where 过滤条件] order by 列 [desc/asc];
二、根据SQL进行数据分页
limit :select * from 表 limit a,b;
a:从a+1行数据开始取值 b:取多少条记录出来
例:显示年龄排名在5,6,7的同学的基本信息 select * from students order by age desc limit 4,3;
(1)分页的要素:当前显示的页数 pageindex 。每页显示的条数 pagesize
(2)分页分析(表--students)
第一页:select * from students limit 0,3;
第二页:select * from students limit 3,3;
第三页:select * from students limit 6,3;
(3)总结分析分页公式--MySQL的分页公式
select * from 表 limit (pageindex-1)*pagesize,pagesize;
三、MySQL的聚合函数(集函数)
1、5个聚合函数
count() :聚合条数
sum() :聚合总和
avg() :聚合平均
max() :聚合最大
min() :聚合最小
--查询出所有同学的总年龄是多少,平均年龄?
总年龄:select sum(age) as '总年龄' from students;
平均年龄:select avg(age) as '平均年龄' from students;
获取表中数据的行数:select count(*) from students;
最小年龄,最大年龄:select min(age) as '最小年龄', max(age) as '最大年龄' from students;
--查询学生id为1的同学的平均成绩
select * avg(mark) from scroes where sid=1;
--查询每个同学的总成绩,平均成绩
select sum(mark), avg(mark) from scroes;
2、group by 列... 按照某列进行分组操作
注意:
(1)group by 后的查询语句查询的数据只能是分组列和聚合函数
having 过滤条件 当分组数据完成后对于分组数据再次过滤的条件
--查询出优秀的同学的成绩(平均分在70分或以上的同学)
select sid,sum(mark),avg(mark) from scroes group by sid having avg(mark) >=70;