数据库基础(三)

聚合函数

**注意事项:**聚合函数的计算,排除了null值
解决方案
1.选择不包含非空的列进行计算
2.ifnull函数

select count(ifnull(english,0)) from stud;
select min(math) from stud;
select max(math) from stud;

分组查询

1.语法:group by 分组字段;
按照性别分组,分别查询男、女同学的平均分
2.分组之后:
①分组之后查询的字段:分组字段;聚合函数
②where和having的区别?
where在分组之前进行限定,如果不满足条件,则不参与分组;having在分组之后进行限定,如果不满足结果,则不会被查询出来
where后不可跟聚合函数,having可以进行聚合函数的判断

select from stud group by sex;
select sex,avg(math) from stud group by 

sex;[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fleDzOzO-1612767374728)(leanote://file/getImage?fileId=6020d6d347c749713a000004)]

3.按照性别分组,分别查询男、女同学的平均分;人数

select sex,avg(math),count(id) from stud group by sex;

4.按照性别分组,分别查询男、女同学的平均分;人数 要求:分数低于70分的人,不参与分组

select sex,avg(math),count(id) from stud where math > 70 group by sex;

5.按照性别分组,分别查询男、女同学的平均分;人数 要求:分数低于70分的人,不参与分组

select sex,avg(math),count(id) from stud where math > 70 group by sex having count(id)>2;
select sex,avg(math),count(id) 人数from stud where math > 70 group by sex having 人数 >2;

分页查询

1.语法:limit开始的索引,每页查询的条数
– 每页显示3条记录

select *from stud limit 0,3; --第一页
select *from stud limit 3,3;  --第二页

公式:开始的索引 = <当前的页码-1> * 每页显示的条数
分页操作是一个“方言”

约束

对表中的数据进行限制,保证数据的正确性,有效性和完整性
分类:
1.主键约束:primary key
2.非空约束:not null
3.唯一约束:unique
4.外键约束:foreign key

非空约束:not null

1.在创建表时添加约束

CREATE TABLE student1(
id INT,
NAME VARCHAR(20) NOT NULL -- name为非空

);

2.创建表之后,添加非空约束

ALTER TABLE student1 MODIFY NAME VARCHAR(20) NOT NULL;

3.删除name的非空约束

ALTER TABLE student1 MODIFY NAME VARCHAR(20);

唯一约束:unique(值不能重复)

-- 创建表时,添加唯一约束
CREATE TABLE student1(
	id INT,
	phone_number VARCHAR(20) UNIQUE -- 添加了唯一约束
);

– 注意mysql中,唯一约束限定的列的值可以有多个Null

-- 删除唯一约束
-- alter table student1 modify phone_number varchar(20);

ALTER TABLE student1 DROP INDEX phone_number;

-- 在创建表之后,添加唯一约束
ALTER TABLE student1 MODIFY phone_number VARCHAR(20) UNIQUE;
上一篇:《C语言及程序设计》实践参考——用文本文件保存的学生名单


下一篇:JAVA学生管理系统(简单版)