SqlServer 查询(SqlServer系列 : 篇三) 基本查询、条件查询、聚合查询、模糊查询、分组查询、多表查询(内连接,左外查询,右外查询)

前面两篇文章中,SqlServer 建库建表(SqlServer系列 : 篇一)-CSDN博客SqlServer 增、删、改(SqlServer系列 : 篇二)-CSDN博客,我们分别针对建表建库,增、删、改分别做了代码演示和基本讲解,在这一篇章中,我们主要针对查询进行学习,我们将以六种查询方法进行讲解(基本查询、条件查询、聚合查询、模糊查询、分组查询、多表查询)。

1.基本查询

基本查询语法 : select  查询的字段名 from 表名

基本查询使用select关键字,如果查询字段名使用 * 则将会查询全部信息,如果写字段名称则会查询字段名相对应的数据。下面以两个案例演示

案例一 : 使用 * 进行查询

--查询所有班级
select * from Class
--查询所有学生
select * from Student
--查询所有老师
select * from Teacher

此案例中,我们使用*进行了查询,所以展示出来了全部数据

案例二 : 指定查询字段 

--查询学生表中的姓名,性别,年龄三个字段,并且使用对应中文在表头展示
select name as 姓名,sex as 性别,age as 年龄 from Student

此案例中,我们指定查询了name,sex,age字段,并且使用as关键字对其表头添加了别名。 

2.条件查询

SqlServer中常用的查询关键字

=:等于,比较是否相等及赋值
!=:比较不等于
>:比较大于
<:比较小于
>=:比较大于等于
<=:比较小于等于
IS NULL:比较为空
IS NOT NULL:比较不为空
in:比较是否在其中
like:模糊查询
BETWEEN...AND...:比较是否在两者之间
and:逻辑与(两个条件同时成立表达式成立)
or:逻辑或(两个条件有一个成立表达式成立) 
not:逻辑非(条件成立,表达式则不成立;条件不成立,表达式则成立)

case when ...  then ... end : 类似于java中的swith语句

 条件查询语法结构

select  查询的字段名 from 表名 where 条件

条件查询在基本查询的基础上面添加了where关键字,可以where后面添加查询条件,当然在查询字段名称中也可以使用case条件查询,但是case查询只是针对显示进行条件判断,无法对查询条件条件判断。

案例一 : 条件查询语法演示

--查询年年龄为25岁的学生信息
select * from Student where age=25

案例二 : 单条件查询和多条件查询

--查询年龄大于26岁的学生信息(单条件)
select * from Student where age>26

--查询年龄大于一百岁且性别为男的老师(多条件查询)
select * from Teacher where age>100 and sex='男'

多条件查询使用and进行连接 

案例三 : case关键字使用

--根据性别另起一列显示出他的称呼
select name,age,
case(sex) 
when '男' then '先生' 
when '女' then '女士'
else '同学'
end 
as 称呼
from Student 

3.聚合查询

聚合查询其实就是使用聚合函数进行查询,常用的聚合函数如下

count:求数量
max:求最大值
min:求最小值
sum:求和
avg:求平均值 

案例一 : 统计有几个老师

--统计有有几个老师
select COUNT(*) as 老师人数 from Teacher

案例二 : 查询年龄最大和最小教师的个人信息

--求年龄最大的老师
select * from Teacher where age=(select Max(age) from Teacher )

--求年龄最小的学生
select * from Student where age=(select Min(age) from Student )

案例三 : 查询所有学生年龄总和和年龄平均值

--计算班级所有学生年龄总和
select SUM(age) 年龄总和 from Student

--求班级所有学生年龄平局值
select avg(age) 年龄总和 from Student

4.模糊查询

模糊查询通常使用like关键字+通配符使用,下面是常用的通配符

%:代表匹配0个字符、1个字符或多个字符。
_:代表匹配有且只有1个字符。
[]:代表匹配范围内
[^]:代表匹配不在范围内

 模糊查询基本语法

select 查询字段名称 from 查询表名称 where 条件字段名称 like '模糊查询条件'

案例一 : %的使用

-- 查询姓张的老师信息
select * from Teacher where name like '张%'

案例二 : _ 的使用

--查询名字最后一个字叫做一的老师信息,且名字是三个字
select * from Teacher where name like '__一'

案例三 : [ ] 和 [^ ] 的使用

--查询电话号码第三位是0或者一,且最后一位不为2或3的老师信息
select * from Teacher where GuardiansPhone like '___[0,1]%[^2,3]'

5.分组查询

在进行分组查询之前,我们给学生数据库添加两名学生信息(直接执行即可)

insert into Student(ClassID,TeacherId,name,sex,age,DateOfBirth) 
values(1,1,'雪莉杨','女',26,'2021-1-1')

insert into Student(ClassID,TeacherId,name,sex,age,DateOfBirth) 
values(2,2,'阿宁','女',25,'2022-1-1')

分组查询基本语法

select  查询字段名称 from 查询表名 group by 分组关键字名

实现案例 

--根据性别分组,查询出学院中最大年龄,最小年龄,平均年龄
select sex as 性别, max(age) as 最大年龄 ,
min(age) as 最小年龄,avg(age) as 平均年龄
from Student
group by sex

6.多表查询

多表查询又分为内连接基本多表查询、外连接多表查询、左外连接(左连接)、右外查询(右连接),

多表查询应该以主外键为关系进行表链接。

基本多表查询

基本多表查询基本语法

select 查询字段名称 from 表一名称,表二名称,表三名称 
where表一名称.表一字段 = 表二名称.二字段 ....

 案例演示

--查询学生信息,同时显示课程信息和老师信息
select * from Student,Class,Teacher 
where Student.ClassID=Class.ClassId and Student.TeacherId=Teacher.TeacherId 

此案例中,我们通过通过多表查询查询出了对应的课程信息和老师信息

内连接多表查询

内连接基本语法

select * from 表名词
inner join 添加表名称一 on 连接条件
inner join 添加表名称二 on 连接条件1

连接案例

--查询学生信息,同时显示课程信息和老师信息
select * from Student
inner join Class on Student.ClassID=Class.ClassId
inner join Teacher on Student.TeacherId=Teacher.TeacherId 

左外连接(左连接)

左外联接:以左表为主表显示全部数据,主外键关系找不到数据的地方null取代。

内连接基本语法

select 查询字段名称 from 表名称 left join 左查询表名称 on 连接条件

--查询学生信息,并且显示课程信息(左外链接)
select * from 
Student left join Class on Student.ClassID=Class.ClassId

右外查询(右连接)

右外连接(right join):右外连接和左外连接类似,A left join B == B right join A

内连接基本语法

select 查询字段名称 from 表名称 right join 左查询表名称 on 连接条件

代码案例

--查询学生信息,并显示老师信息(右外链接)
select * from Student 
right join Teacher on Student.TeacherId=Teacher.TeacherId

 至此我们已经完成了Sql Server 入门学习,接下来将进入Sql Server高级阶段学校。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值