第二周第四天數(shù)據(jù)庫(kù)加強(qiáng)
練習(xí)題,復(fù)習(xí)昨天你的內(nèi)容
- 精確查詢 學(xué)生姓名為 馬冬梅的學(xué)生
- 查詢學(xué)生編號(hào) 大于60的
- 查詢學(xué)生 年齡大于20的
- 查詢學(xué)生姓名為 錢璟的
- 查詢學(xué)生性別為女的
- 查詢編號(hào)小于 110的學(xué)生
- 年齡不等于23 的學(xué)生信息
- 學(xué)生姓名不等于 張子棟 只顯示學(xué)生 編號(hào) 姓名
- 學(xué)生省份為重慶的 只顯示 學(xué)生編號(hào) 姓名 省份
like 模糊查詢
只對(duì)字符串類型的字段進(jìn)行模糊查詢:varchar,char
關(guān)鍵字:like
通配符:
- % 代表0-n個(gè)任意字符
- _代表1個(gè)任意字符
練習(xí)題:
10 學(xué)生姓名 包含 馬
11 學(xué)生姓名以吳開(kāi)頭
12 學(xué)生姓名包含 李
13 姓名包含靜的學(xué)生
14 姓名是兩個(gè)字符的學(xué)生
15 姓名最后一位 是民的學(xué)生
16 姓名第二位為 春的學(xué)生姓名
17 姓名只有三個(gè)字符的學(xué)生
18 姓名是 馬什么梅的
19 姓名是 馬冬什么
20 姓名是 什么冬梅
not 非
練習(xí)題:
查詢姓名中不包含冬的學(xué)生信息
in
- 單個(gè)字段
格式
select * from 表名 where 字段名 in (值1,值2,..);
練習(xí)題
查詢學(xué)生id 是77 88 99 111
22 查詢學(xué)生年齡 是 23 30
23 查詢學(xué)生省份 是 安徽 重慶
- 多字段
select * from 表名 where (字段1,字段2,...) in ((值1,值2,...),(值1,值2,...),....)
練習(xí)題
24 查詢年齡為23省份是重慶或者年齡是29省份是安徽的所有學(xué)生信息
25 查詢年齡不為23且身份不是重慶的所有學(xué)生信息;
26 查詢年齡不為23且省份不是重慶或者年齡不為29且省份不是安徽的所有學(xué)生信息;
排序
關(guān)鍵字:
order by
規(guī)則:
- 升序 asc
- 降序 desc
單字段排序
格式:
select * from 表名 order by 排序字段 排序規(guī)則;
練習(xí)題
27 查詢出所有學(xué)生的信息并對(duì)年齡字段進(jìn)行升序排序
28 查詢出所有學(xué)生的信息并對(duì)年齡字段進(jìn)行降序排序
29 查詢出年齡大于19歲的所有學(xué)生并以序號(hào)進(jìn)行升序排序;
30 查詢出年齡大于19歲的所有學(xué)生并以序號(hào)進(jìn)行降序排序;
多字段排序
格式:
select * from 表名 order by 排序字段1 排序規(guī)則,排序字段2 排序規(guī)則,...;
練習(xí)題
31查詢出年齡大于19歲的所有學(xué)生并以年齡進(jìn)行降序排序 如果有年齡相同的,以序號(hào)升序排序
32 查詢出性別為男的所有學(xué)生,并按照年齡降序排序,若有年齡相同的則以創(chuàng)建時(shí)間進(jìn)行升序排序
limit
注意:
- limit只適用于MySQL中
- oracle數(shù)據(jù)庫(kù)中用 rownum
- sqlSever數(shù)據(jù)中用top
關(guān)鍵字:
limit
格式
select * from 表名 limit n,m;
解釋
- n表示起始位置
- m表示展現(xiàn)m條數(shù)據(jù)
- 數(shù)據(jù)庫(kù)中查詢結(jié)果是以0為起始序號(hào)
練習(xí)題
33 查詢出年齡大于19歲的所有學(xué)生并以序號(hào)進(jìn)行降序排序取前10條記錄;
distinct 去重
格式:
select distinct 字段名 from 表名;
練習(xí)題
34 查詢出所有學(xué)生的年齡并去重
group by 分組
分組一般配合聚合函數(shù)使用
關(guān)鍵字
- group by
- having
聚合函數(shù)
- 統(tǒng)計(jì) count()
- 求和 sum()
- 平均 avg()
- 最大 max()
- 最小 min()
分組并統(tǒng)計(jì)
格式
select 分組字段,統(tǒng)計(jì)函數(shù) from 表名 group by 分組字段;
練習(xí)題
35 統(tǒng)計(jì)出男生和女生的總?cè)藬?shù)
36 統(tǒng)計(jì)出每門課的總成績(jī)
37 統(tǒng)計(jì)出每門課的平均成績(jī)
38 統(tǒng)計(jì)出每門課的最大成績(jī)
39 統(tǒng)計(jì)出每門課的最小成績(jī)
40 統(tǒng)計(jì)出每門課程的總?cè)藬?shù)
分組并對(duì)聚合函數(shù)進(jìn)行過(guò)濾
注意
對(duì)聚合函數(shù)進(jìn)行過(guò)濾必須用having關(guān)鍵字
格式
select 分組字段,聚合函數(shù) from 表名 group by 分組字段 having 過(guò)濾條件
練習(xí)題
41 統(tǒng)計(jì)出選修人數(shù)少于2人的課程
42 統(tǒng)計(jì)出成績(jī)不及格的學(xué)生
43 統(tǒng)計(jì)出全部成績(jī)都不及格的學(xué)生
作業(yè)
把今天上課練習(xí)的43條sql再寫一遍