sql_03_查询语句
程序员文章站
2022-05-23 11:01:29
...
- 去除重复的结果接
- select distinct address from student;(去除student表中重复地址的数据)
- 计算分数和:
- SELECT NAME,math,english,math+english 总分 FROM student;(与null相加都为null)
- SELECT NAME,math,english,math+IFNULL(english,0) 总分 FROM student;(与null相加,null取值为0)
- 条件查询:
- SELECT * FROM student WHERE age>=10 AND age<=30;—查询10到30之间的数据
- 模糊查询
- #查询姓马的数据
- SELECT * FROM student WHERE NAME LIKE ‘马%’;
- _:单个任意字符
- %多个任意字符
DQL:查询语句
/*
1:DQL:查询语句
排序查询
聚合函数
分组查询
分页查询
2:约束
3:多表之间的关系
4:范式
5:备份和还原
#DQL查询语句
#1排序 order by 子句()
SELECT * FROM student ORDER BY math DESC;-- 降序
SELECT * FROM student ORDER BY math ASC;-- 升序ASC(默认)
#第二排序,只有在第一排序一样的情况下才执行
SELECT * FROM student ORDER BY math DESC,english DESC;
- DQL:查询语句-聚合计算
# 聚合计算:将一列数据作为一个整体,进行纵向计算(注意:排除null值)---可以用ifnull来解决
#count:计算个数
SELECT COUNT(english) FROM student;
#max:最大 min:最小
#sum:计算和
#avg:计算平均值
DQL:分组查询
#分组查询:
#语法:group by 分组字段;
SELECT sex,AVG(math),COUNT(NAME) FROM student GROUP BY sex;-- 可以多个聚合函数
#按照性别分组,分别查询男女同学的平均分,人数,要求:分数低于70分,不参与分组
SELECT sex,AVG(math),COUNT(NAME) FROM student WHERE math>70 GROUP BY sex;-- 分组之前对条件的限定的操作
#按照性别分组,分别查询男女同学的平均分,人数,要求:分数低于70分,不参与分组,分组之后人数要大于2个人
SELECT sex,AVG(math),COUNT(NAME) FROM student WHERE math>70 GROUP BY sex HAVING COUNT(NAME)>2;-- 分组之前对条件的限定的操作
#where和having的区别:
#where在分组之前限定,如果不满足则不参与分组;having在分组之后进行限定,如果不满足结果,则不会被查询出来
#where不能跟聚合函数进行判断;having可以进行聚合函数的判断
分页查询
#分页
#语法:limit 开始的索引,每页的条数; limit是mysql的方言,特有的
#每页显示3条数据
SELECT * FROM student LIMIT 0,3;-- 第一页
SELECT * FROM student LIMIT 3,3;-- 第二页
#公式:开始索引=(当前的页码-1)*每页显示的条数
约束
#约束:对表中的数据进行限定,保证数据的正确性、有效性和完整性。
#分类:
#1:主键约束 prinary key
#含义:非空且唯一,一张表只能有一个主键
CREATE TABLE girl(
id INT PRIMARY KEY,
NAME VARCHAR(20) NOT NULL
);
#删除主键
ALTER TABLE girl DROP PRIMARY KEY;
#------------------------------------------------
#2:非空约束 not null
CREATE TABLE boy(
id INT,
NAME VARCHAR(20) NOT NULL
);
#更改约束
ALTER TABLE boy MODIFY NAME VARCHAR(20);
#---------------------------------------------------
#3:唯一约束 unique 不能重复
CREATE TABLE phone(
id INT,
phone_number VARCHAR(20) UNIQUE-- 添加唯一约束
);
#删除唯一约束
ALTER TABLE phone DROP INDEX phone_number;
#在表创建完成后,添加唯一约束
ALTER TABLE phone MODIFY phone_number VARCHAR(20) UNIQUE;
#4:外键约束 foreign key