一、聚合查询

使用SQL自带的聚合函数进行查询,有count()、AVG()、min()、max()、sum()

二、分组聚合查询

select 后面的字段 只能是group by后的字段

1
SELECT City,Gender, COUNT(*)FROM Students GROUP BY City, Gender;

  

三、多表查询

 等值查询:两表的所有数据都要连接,然后再根据条件进行筛选

1
2
3
SELECT S.StudentlD, C.CourseName
FROM Students AS S, courses AS C
WHERE S.CourselD = C.CourselD;

  

四、连接查询

也是一种多表查询,和等值查询不同的是,先确定主表,再连接其他表,连接时只有满足on 后面条件的才能连接上,结果和等值查询一样,但是效率比等值查询高

并且:

内连接可以使用除等值条件外的其他条件,如大于、小于等。连接条件可以是多个,并且可以使用逻辑运算符组合。

等值连接的连接条件只能是两个表中的字段相等,即使用"="运算符进行比较。

1
2
3
SELECT s.studentID, c.courseName
FROM Students As s
INNER JOIN Courses As c ON s.courseID = c.courseID;

  

内连接:

此语句就能将每个StudentlD和其对应的课程名查询出来,要注意内连接语句的语法如下︰

1.确定主表,使用FROM table_name

2.紧接着确认连接的表,I使用INNERJOIN table_name

3.再确定连接条件,使用ON condition,
4.最后加上: WHERE、ORDERBY等之子句

 

  • 左外连接(Left Outer Join)返回符合连接条件的行以及左表中的所有行,对于右表中未满足连接条件的行,将填充为NULL值。
  • 右外连接(Right Outer Join)返回符合连接条件的行以及右表中的所有行,对于左表中未满足连接条件的行,将填充为NULL值。
  • 全外连接(Full Outer Join)返回符合连接条件的行以及两个表中的所有行,对于未满足连接条件的行,将填充为NULL值。