ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

数据库基础(三)

2021-02-08 14:57:04  阅读:166  来源: 互联网

标签:数据库 基础 sex 分组 math stud 约束 select


聚合函数

**注意事项:**聚合函数的计算,排除了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;

标签:数据库,基础,sex,分组,math,stud,约束,select
来源: https://blog.csdn.net/weixin_47366250/article/details/113757047

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有