龙空技术网

「笔记」数据库基础:表连接查询、表联合查询

新米米 129

前言:

目前我们对“数据库中连接查询”大致比较重视,同学们都想要知道一些“数据库中连接查询”的相关资讯。那么小编在网上收集了一些对于“数据库中连接查询””的相关资讯,希望大家能喜欢,小伙伴们快快来了解一下吧!

多张表查询,表连接查询分三种:

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

标签: #数据库中连接查询