SQL Server數據庫————連接查詢和分組查詢
分組查詢
select 列from <表名>
where ……
group by 列
注意:跟order by一樣group by 后面可以寫多個列 寫多個列則按照多列分組
having:對分組之后的結果進行篩選
!!!注意:having必須寫在group by后面,沒有group by,having也不能寫
!!!對查詢的列,要么出現在聚合函數,要么出現在分組,否則會出錯
一條SQL語句同時出現 where group by having order by則排列順序為:
Select…from 表....where…. group by....having…order by
/********聯接查詢***********/
多表聯接查詢實際上是通過各個表之間共同列的關聯性來查詢數據的
A.內連接:
1) 在where子句中指定連接條件
select 列名1,列名2... from 表1,表2
where 表1.列 = 表2.列
-如有多表,from中多個表名用逗號隔開,where中多個關系中用 and 連接
2) 在from子句中使用inner join…on
select 列名1,列名2.. from 表1 inner join 表2
on 表1.列 = 表2.列
!!!注意:如果兩個表中的列名相同,在語句中如果查詢這一列,需要寫表名.列名
如果列名不同,不需要加表名
B.外連接:
左外連接:left join…on 或者left outer join…on
查詢出左表所有的行,不僅僅是匹配的行。若左表某些數據在右表中沒有對應的項,則以null填充
select 列名1,列名2... from 表1 left join 表2
on 表1.列 = 表2.列
右外連接:right join…on 或者right outer join…on
查詢右表所有行,不僅僅是匹配的行。若右表的某些數據在左表中沒有對應的項,則以null填充
select 列名1,列名2... from 表1 right join 表2
on 表1.列 = 表2.列