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;