DELECT FROM 蜀国
WHEHE name = '刘玄德'
AND 创业进度<0.5
AND 存活状态 = true;
基础的sql语句
- SELECT ==>选择列
- FROM ==>确认数据源
- JOIN ==>联合操作
- WHERE ==>筛选数据
- GROUP BY ==>分组 HAVING ==>过滤分组的数据
- DISTINCT ==>去重
- ORDEY BY ==> 排序,默认升序 DESC 降序
- LIMIT ==>限制结果数量
AND 一般用在同一列上
OR 一般用在不同列上
一、基础关键字
BETWEEN...AND (在什么之间)和 IN( 集合)
-- 查询年龄大于等于20 小于等于30
SELECT * FROM student WHERE age>=20 && age<=30;
SELECT * FROM student WHERE age>=20 AND age <=30;
SELECT * FROM student WHRER age BETWEEN 20 AND 30;-- 查询年龄22岁,18岁,25岁的信息
SELECT * FROM student WHRER age = 22 OR age =18 OR age = 25;
SELECT * FROM student WHERE age IN (22,18,25);
is not null(不为null值) 与 like(模糊查询)、distinct(去除重复值)
-- 查询英语成绩不为nul
SELECT * FROM student WHERE english IS NOT NULL;_:单个任意字符%:多个任意字符
-- 查询姓马的有哪些? like
SELECT * FROM student WHERE NAME LIKE '马%';
-- 查询姓名第二个字是化的人
SELECT * FROM student WHERE NAME LIKE '_化%';
-- 查询姓名是3个字的人
SELECT * FROM student WHERE NAME LIKE '___';
-- 查询姓名中包含德的人
SELECT * FROM student WHERE NAME LIKE '%德%'-- 关键词 DISTINCT 用于返回唯一不同的值。
-- 语法:SELECT DISTINCT 列名称 FROM 表名称
SELECT DISTINCT NAME FROM student;
二、排序查询 order by
SELECT * FROM student ORDER BY math;---默认升序
SELECT * FROM student ORDER BY math DESC; ---默认降序
三、分组查询 grout by
-- 按照性别分组。分别查询男、女同学的平均分
SELECT sex , AVG(math) FROM student GROUP BY sex;
-- 按照性别分组。分别查询男、女同学的平均分,人数
SELECT sex , AVG(math) , count(id) FROM student GROUP BY sex;
-- 按照性别分组。分别查询男、女同学的平均分,人数 要求:分数低于70分的人,不参与分组
SELECT sex , AVG(math) , count(id) FROM student WHERE math >70 GROUP BY sex;
-- 按照性别分组。分别查询男、女同学的平均分,人数 要求:分数低于70分的人,不参与分组,分组之后。人数要大于2个人
SELECT sex , AVG(math) , count(id) FROM student WHERE math >70 GROUP BY sex HAVING count(id) >2;
四、训练题
1.student表中查询大于平均成绩的同学,只显示前10名
SELECT *
FROM student
WHERE score > (SELECT AVG(score) FROM student)
ORDER BY score DESC
LIMIT 10;
2.r如果列表中存在为null的数据,为他们赋值
ifnull(为空列,赋予值)等效于 完好的列
如 ifnull(referer_id,0)!= 2;