1.分组查询

select 字段列表(可以包含查询的分组字段) from 表名 group by 分组字段

注意事项: gruop by 它的后面不能使用聚合函数

①需求:按照性别进行分组,查询分组信息以及他们总人数

SELECT 
     sex '性别', -- 查询分组字段
     COUNT(id) '总人数'
FROM
     student3
GROUP BY
     sex ;

②需求:要按性别分组,查询性别以及数学的平均分 .

条件:数学成绩不小于70分的人参与分组

SELECT
    sex '性别',
    AVG(math) '数学平局分' 
FROM
    student3

WHERE 
	math > 70 
	
GROUP BY sex ;

2.筛选查询:having

having的后面是可以使用聚合函数的,而且having必须置于group by 之后

①需求:要按性别分组,查询性别以及数学的平均分 以及总人数,
   条件:数学成绩不小于70分的人参与分组,筛选出总人数大于2的那一组

SELECT
	sex '性别',
	AVG(math) '数学平均分',
	COUNT(id) 总人数
FROM

    student3
    
 WHERE math > 70 
 GROUP BY sex 
 
 HAVING 总人数 > 2 ;

3.分页查询 :limit

语法格式:select 字段列表 from 表名 limt 起始行数,每页显示的条数;

①需求:每页显示2学生数据, 求第一页的分页数据

SELECT  * FROM student3 LIMIT 0,2;
 
 -- 需求:第二页的分页数据
 SELECT * FROM student3 LIMIT 2,2 ;
 
 -- 需求:第三页的分页数据
 SELECT * FROM student3 LIMIT 4,2;
 
  -- 需求:第四页的分页数据
 SELECT * FROM student3 LIMIT 6,2;
  
    -- 需求:第五页的分页数据
 SELECT * FROM student3 LIMIT 8,2;


数据库的备份和还原

备份:将当前数据库进行本地存储,存储.sql文件
还原:就是将本地磁盘上.sql文件,进行执行,把这些库中表数据进行还原操作!

两种方式    
方式1: 命令行方式
       备份:不需要登录mysql 在dos控制台上
       mysqldump -uroot -p密码 库名 > 磁盘上某个文件夹中的xx.sq 还原:将指定磁盘备份的xx.sql文件读取,把里面的表进行还原操作!
       1在dos控制台登录mysql
       2显示所有库,show databases; 发现刚才库已经删除了,重新创建一个新的库
       3使用库 use 库名 ;
       4source 本地磁盘上保存xx.sql文件路径 (加载存储的sql文件)

方式2:图形界面化: 这个sqlYog工具
     备份:鼠标选中库---右键---备份(backup/export 导出 )----> 选中第二个 备份为数据库sql脚本进行存储 -->选中Structure and data(结构和数据)--->选中本地磁盘路径 ---->x.sql
      还原:在sqlyog使用sql创建库--->库名--->右键---->import(导入)--->选第二个,执行本地 sql脚本即可    

数据库的约束

默认约束 default :当某个字段没有插入值,默认约束就开始起作用了,当在给某个字段没有插入值的时候,这个默认约束就可以作用,给字段设置默认值

需求:创建一张表:emp 员工表

CREATE TABLE emp(
	id INT, -- 员工编号
	emp_name VARCHAR(10),-- 员工姓名
	gender VARCHAR(5) DEFAULT '男'  -- 员工性别   ,加入默认约束);
-- 插入正常数据
INSERT INTO emp VALUES(1,'高圆圆','女') ;
-- 插入部分字段
-- insert into emp(id,emp_name) values(2,'赵又廷') ; -- 没有给员工性别赋值,默认值null
-- 加入默认约束,再次插入部分字段
INSERT INTO emp(id,emp_name) VALUES(2,'赵又廷') ;
-- 通过sql语句,删除默认约束
ALTER TABLE emp	MODIFY gender VARCHAR(5) ;
-- 再次插入部分字段
INSERT INTO emp(id,emp_name) VALUES(3,'文章') ;
DELETE FROM emp WHERE id = 3 ;
-- 通过sql语句,加入默认约束
ALTER TABLE emp	MODIFY gender VARCHAR(5) DEFAULT '男' ;