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 '男' ;