前言:
目前我们对“数据库中连接查询”大致比较重视,同学们都想要知道一些“数据库中连接查询”的相关资讯。那么小编在网上收集了一些对于“数据库中连接查询””的相关资讯,希望大家能喜欢,小伙伴们快快来了解一下吧!多张表查询,表连接查询分三种:
1、内连接
inner join 关联on(外键=主键)[主外键不分先后]
select StuNo,StuName,Sex,Grades.GradeName from Students inner join Grades on(Students.GradeId=Grades.GradeId)
精确写法:
select Students.StuNo,Students.StuName,Students.Sex,Grades.GradeName from Students inner join Grades on(Students.GradeId=Grades.GradeId)
简写:对表进行as重命名a,b等
select a.StuNo,a.StuName,a.Sex,b.GradeName from Students a inner join Grades b on(a.GradeId=b.GradeId)
多表查询:
select a.StuNo,a.StuName,a.Sex,b.GradeName
from Students a
inner join Grades b
on(a.GradeId=b.GradeId)
inner join 第三张表.c
on(a.GradeId=c.GradeId)
可以多个inner join,进行多表查询。外连接时也相似。
2、外连接:
1)、左外连接 left join
select a.StuNo,a.StuName,a.Sex,b.GradeName from Students a left join Grades b on(a.GradeId=b.GradeId)
以左边的表为基准,如果右边的表不存在,用null显示
2)、右外连接right join
select a.StuNo,a.StuName,a.Sex,b.GradeName from Students a right join Grades b on(a.GradeId=b.GradeId)
以右边的表为基准,如果左边的表不存在,用null显示
年级为分组条件统计(Grades基准)
select a.GradeId,a.GradeName,count(b.StuNo) as numberfrom Grades a left join Students bon(a.GradeId=b.GradeId)group by a.GradeId,a.GradeNameorder by a.GradeId
判断字段为空的函数
isnull(字段,0),函数,重新赋值,自带判断。一旦使用函数,字段名字可以重命名。
表联合查询,相对于表链接来说,用得不多,跨库的时候。可以根据查询结果拼接。关键词:union(去重复)union all(关联所有,不去重复)
select GradeId,GradeName from Gradesunion //去重复select GradeId,GradeName from Grades
selcet GradeId,GradeName frome Gradesunion all //例如选择框的时候使用select 0,'请选择'order by GradeId asc
标签: #数据库中连接查询