1、精確(條件)查詢
select into 列名 from 表名 where 條件 order by 排序的列名 [asc升序或者 desc降序]
1.查詢空值行
select Name from Teacher where Salary is null
2.查詢返回限制行數(關鍵字:top percent)
顯示Name列的前三行 top 為關鍵字
select top 3 Name from Teacher
3.顯示Name列的60% ,percent 為關鍵字
select top 60 percent Name from Teacher
2、模糊(條件)查詢
1.使用like類型查詢
說明:like運算符只用於字符串,所以僅與char和varchar數據類型聯合使用
select * from Teacher where Name like 'a%'
2.between範圍查詢
select * from Teacher where Age between 21 and 23
3.in類型 在列舉值內進行查詢
select * from Teacher where Age in(18,20,22)
4、group by 分組查詢
select Name as 姓名,AVG(Age) as 平均年齡 from Teacher group by Name
5.使用having 子句進行篩選
select Name as 姓名,AVG(Age) as 平均年齡 from Teacher group by Name having count(Age)>1
having條件查詢 和 where條件查詢的區別:
where只能在沒有分組時使用;
分組後只能使用having來限制條件。
3、多表連接查詢
內連接查詢
1.在where子句中指定連接條件
語法:
select 表1字段,表2字段,... from 表1,表2 where 表1字段=表2字段
例如:
select Teacher.Name,Teacher.Age,TCourse.KPS from Teacher,TCourse where Teacher.Name=TCourse.Name
2.在from子句中使用 inner join...on
語法:
select 表1字段,表2字段,... from 表1 inner join 表2 on 表1字段=表2字段
例如:
select Teacher.Name,TCourse.Course from Teacher inner join TCourse on (Teacher.Name=TCourse.Name)
外連接查詢
1.左外連接查詢 left (outer) join ...on
語法:
select 字段1,字段2,... from 表1 left join 表2 on 條件(表1字段=表2字段)
說明:在此條件約束下,以表1所需查詢字段為主,用表2所需字段內容填充,如果沒有,則填充null或者默認值。
例如:
select Teacher.Name,TCourse.Ranks from Teacher left join TCourse on Teacher.Name =TCourse.Name
2.右外連接查詢 right (outer) join ...on
語法:
select 字段1,字段2,字段3,... from 表1 riht join 表2 on 條件(表1字段=表2字段)
說明:在此條件約束下,以表2所需查詢字段為主,用表1所需字段內容填充,如果沒有,則填充null或者默認值。
例子:
select Teacher.Name,TCourse.Ranks from Teacher right join TCourse on Teacher.Name =TCourse.Name
3.全外連接查詢 full (outer) join ...on
語法:
select 字段1,字段2,字段3,... from 表1 full join 表2 on 條件(表1字段=表2字段)
說明:在此條件約束下,表1所需查詢字段和表2所需查詢字段的集合,空缺字段 則填充null或者默認值。
例如:
select Teacher.Name ,TCourse.Ranks from Teacher full join TCourse on Teacher.Name =TCourse.Name
閱讀更多 劍雲鋒 的文章