欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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
相关标签: 回顾