SQL 入门学习记录—07——子查询 in

1.
in

select * from [dbo].[Table_1]
where StudentNo in (1501,1503,1505)
表示我想查询 [dbo].[Table_1]这个数据库里面StudentNo(学号) 属性类别中的
1501,1503,1505数据
SQL 入门学习记录—07——子查询 in_第1张图片
这和之前的between是不一样的,between是一个范围,多少到多少,而in可以理解为一个一个拎出来。

2.
not in

相反我也可以不让这几个数据查询出来,用not in
SQL 入门学习记录—07——子查询 in_第2张图片
这样查询出来的数据就没有1501,1503,1505这三个了
以此类推,公式就是这样,你改改需要查询的属性,改改数据,就可以查出你想要的,或者你不想看到的那几个,就在in前面加not
查找学生名字为张三,李四,小红的↓
SQL 入门学习记录—07——子查询 in_第3张图片

查找不是21和19岁年龄的学生↓
SQL 入门学习记录—07——子查询 in_第4张图片
in 后面也不一定非要多个值,也可以单个值。

3.
子查询

现在我们要查询,哪些学生是有课程安排的,哪些是没有的
select * from [dbo].[Students]
where StudentNo in (select StudentNo from [dbo].[Student_Lesson])
SQL 入门学习记录—07——子查询 in_第5张图片

相反,我现在想看没有课程的学生是哪几个
select * from [dbo].[Students]
where StudentNo not in (select StudentNo from [dbo].[Student_Lesson])
SQL 入门学习记录—07——子查询 in_第6张图片

你可能感兴趣的:(SQL 入门学习记录—07——子查询 in)