1. 程式人生 > >簡單的數據庫查詢操作

簡單的數據庫查詢操作

出現 mil course body 函數 not 排序 where子句 目標

格式:

select <目標列名序列> ---需要哪些列
from <表名> ---來自於哪些表
where <行選擇條件> ---根據什麽條件
group by <分組依據列>
having <組選擇條件>
order by <排序依據列>

select * from student

select * from student where sno = ‘1‘

select * from student s,course c,score sc where sc.`sno` = s.`sno` and sc.`cno` = c.`cno`

select distinct * from score //去掉查詢結果的重復行

select * from student where sage between 20 to 25 //查詢20~30歲之間的學生信息

select * from student where sage not between 20 to 25 //查詢不是20~30歲之間的學生信息

select * from student where sdept in (‘計算機系‘,‘管理系‘,‘外語系‘)//查詢計算機系、外語系、管理系的學生名單

select * from student where sdept not in (‘計算機系‘,‘管理系‘)//查詢不是計算機系、管理系的學生名單

迷糊查詢


關鍵字 like
_ 表示匹配任意一個字符
% 表示配備0個或多個字符
[]表示匹配[]中任意的字符
[^]表示不匹配[]中任意的字符

select * from student where sname = ‘王%‘ //表示查詢全部姓王的同學的信息

select * from student where sname = ‘王_‘//表示查詢姓王且名字只要兩個字的同學的信息

select * from student where sname = ‘王__‘//表示查詢姓王且名字只要三個字的同學的信息

select * from student where sname = ‘[趙錢孫李]%‘ 表示查詢姓趙錢孫李的同學的信息


轉義字符:

關鍵字:ESCAPE

select * from sumbit where filed1 like ‘%30!%%‘ ESCAPE ‘!‘ //查詢包含有字符串‘30%‘的記錄

select * from submit where filed like ‘%!_%‘ escape ‘!‘ //查詢包含有字符串‘_‘的記錄

涉及空值的查詢:
select * from score where grade is null //查詢成績為空的信息

select * from score where grade is not null //查詢成績不為空的信息

多重查詢:
select * from student where (sdept = ‘計算機系‘ or sdept = ‘管理系‘) and sage < 25

對查詢結構進行排序:

關鍵字:order by ...排序依據的列
desc ...//降序排列
asc...//升序排列(默認)
select * from student order by sage AES //查詢學生信息以年齡為依據進行降序排列

聚合函數查詢:
關鍵字:count、sum、avg、max、min
*註意:聚合函數不能出現在where子句中
select avg(grade) 平均分 from score where sno = ‘1‘ //查詢學號為1 的同學的平均分

分組查詢:
關鍵字 group by ... (having....)having(並且的意思)

SELECT sno 學號,AVG(grade) 平均分 FROM score GROUP BY sno ORDER BY 平均分 DESC //查詢按學號分組的學生的平均分並以平均分的從高到低排序

SELECT sdept 系別 ,COUNT(sno) 人數 FROM student GROUP BY sdept ORDER BY 人數 DESC //查詢各系的學生數量

SELECT sdept 系別,ssex 性別,COUNT(ssex) 人數 FROM student GROUP BY sdept,ssex ORDER BY sdept//查詢各系性別的人數

SELECT sno,AVG(grade) 平均成績 FROM score GROUP BY sno HAVING 平均成績 > 90

SELECT sno ,AVG(grade) 平均成績 FROM score sc GROUP BY sno



簡單的數據庫查詢操作