SQL Server学习笔记——单表查询

Posted Aiden_Zhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server学习笔记——单表查询相关的知识,希望对你有一定的参考价值。

SQL Server学习笔记——单表查询

已知数据库中存在四个表:

  • major:
    在这里插入图片描述
  • stu:
    在这里插入图片描述
  • cou
    在这里插入图片描述
  • sc
    在这里插入图片描述

1. 无条件查询

(1) 查询学生的全部信息(全部字段查询)

--*则代表查询表的所有字段
select * from stu

查询结果为:
在这里插入图片描述
(2) 查询全部学生的姓名和出生年份(部分字段查询)
stu表中无学生出生年份,则可通过学生年龄求其出生年份

select sname, 2021-age as birth_date from stu

查询结果为:
在这里插入图片描述
(3) 查询有选修课程的学号(distinct去重)

select sno from sc

查询结果为:
在这里插入图片描述
上述查询结果中’2020004’和’2020005’均出现多次,可通过distinct进行去重操作,改写为:

select distinct sno from sc

查询结果为:
在这里插入图片描述
可见,结果已无重复。

2. 有条件查询

(1) 查询姓名是”小十“的学生的全部信息

select * from stu where sname='小十'

或者可写为:

select * from stu where sname like '小十'

查询结果为:
在这里插入图片描述
:如果like后面的字符串不含有通配符(%,_用于模糊查询),那么like等价于”=“
(2) 查询课号是’20201’且学生成绩高于80的学生学号(and)

select sno from stu where cno='20201' and grade>80
--或者
select sno from stu where cno like '20201' and grade>80

查询结果为:
在这里插入图片描述
(3) 查询年龄在18到19岁之间的学生的姓名(between)

select sname from stu where age>=18 and age<=19

上述语句可看利用between(between可用于表示某字段的取值范围)改写为:

select sname from stu where age between 18 and 19

查询结果为:
在这里插入图片描述
(4) 查询专业号01 02 04的学生信息(in)

select * from stu where mno='1' or mno='2' or mno='4'

上述语句可看利用in(in也可用于表示某字段的取值范围,但不同于between,in相当于多个or)语句改写为:

select * from stu where mno in ('1', '2', '4')

查询结果为:
在这里插入图片描述
(5) 查询专业号01 02 04的学生信息(not in)

select * from stu where mno!='1' and mno!='2' and mno!='4'
--或者
select * from stu where mno<>'1' and mno<>'2' and mno<>'4'

上述语句可看利用not in语句改写为:

select * from stu where mno not in ('1', '2', '4')

查询结果为:
在这里插入图片描述
(6) 查询有选课记录但没有考试成绩的学生信息

select * from sc where grade=null

查询结果为空:
在这里插入图片描述
当表示某一字段为NULL时,则用is,而不是"=",即

select * from sc where grade is null

查询结果为:
在这里插入图片描述

3. 模糊查询

(1) 查询所有姓 彭 的学生的信息(%)
姓彭,则姓名的第一个字为彭,名字随意,且可长可短。

select * from stu where sname like '彭%'

查询结果为:
在这里插入图片描述
:字符串中含有通配符时,只能用like。
(2) 查询名字中带有 小 的学生的信息
名字中带有小,则小可以在名字中的任意位置。

select * from stu where sname like '%小%'

查询结果为:
在这里插入图片描述
(3)查询第二个字为 小 的学生信息(_)
小之前仅有一个字,后边可有可无。

select * from stu where sname like '_小%'

在这里插入图片描述
:模糊查询中”%“代表多个字符(包含0个),而”_“仅可代表一个字符。

以上是关于SQL Server学习笔记——单表查询的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server学习笔记——存储过程

SQL Server学习笔记——存储过程

知了堂学习笔记SQL查询基础语句(单表查询多表查询)

Microsoft SQL Server 代码片段收集

SQL Server进阶单表查询

MySql学习笔记之DQL常用查询