数据库最重要也是最难的操作就是查询。而单表查询是指只针对一张表的查询,相对来说这部分是查询中比较简单的,本文我们来看一下什么是查询。
我们先对表进行一下认识

sql server单表记录数查询 sql怎么单表查询_sql server单表记录数查询


这是一张sql的表,这种表记录的是学生的信息,从左往右称为一行,每一行就是一个学生的信息,如108号学生曾华,性别男,出生。。。班级等等。而第一行的SNO,SNAME,SSEX…等,则是这个表的一个字段,每个字段描述的是表的某个特定的信息,如SNO表示学号,SNAME表示姓名等。

而我们要查询的就是这张表中的某些信息,比如说,我想查找学号为105的学生的全部信息。我想查看所有的男同学的名字,我想查看这个班所有人的名字等等。1.查询全部字段

这是最为笼统的一种查询,他会列出整个表所有的信息。查询语句为:

select * from 表名

这里的*是一个通配符,表示所有的字段。表名是你要查找的表,这里我们的表示student。

实例

select * from student

结果

sql server单表记录数查询 sql怎么单表查询_简单_02

2.查询指定字段

有的时候我们并不需要知道每一条信息的每一个字段是什么,比如说我只想知道这个班级的每一个人的学号和名字,那么我们应该在查询时指定字段即可。

select 字段1,字段2,字段3···· from 表名

这里的字段就是要查询显示的信息,不同字段中间用逗号分开,特别要注意,一定要查询表中含有的字段,否则会出错。

实例

select SNO,SNAME from student

结果

sql server单表记录数查询 sql怎么单表查询_简单_03

这样我们就得到了,表中所有学生的学号和姓名了。

3.查询后指定排列顺序

前面的查询,所有行的排列都是没有顺序的,有时候为了方便看,就要按照某种顺序排列数据了,比如我们要求学号按从小到大的顺序排列或者从大到小排,这时候我们就要指定排列顺序了。

select 字段1,字段2,字段3···· from 表名 order by 依据的字段

select 字段1,字段2,字段3···· from 表名 order by 依据的字段 desc

实例:

select SNO,SNAME from student order by SNO

结果

sql server单表记录数查询 sql怎么单表查询_入门_04

实例
select SNO,SNAME from student order by SNO desc

sql server单表记录数查询 sql怎么单表查询_sql server单表记录数查询_05

第一个实例查询的结果,所有学生是按照学号从小到大增序排列的,而第二个实例由于多了desc关键字,则变成了学号从大到小降序排列。注意没有desc的默认为升序排列,这里的顺序对于数字据说大小顺序,对于字符串就是字典顺序。

4.去除重复列

很多时候我们的字段可能有很多重复,比如说我想查询这些学生所在的班级有哪些,通过上面的方式,班级可能会重复出现多次,因为每个学生的信息都对应于一条班级信息,这时我们就需要做去重的操作了,这个操作也很简单,只需在原有的操作加上destinct关键字就可以了。

select distinct 各字段... from 表名

实例

select distinct class from student

结果

sql server单表记录数查询 sql怎么单表查询_sql server_06


注意这里的消除重复是基于你所要查询的字段的,而不是只表中的所有字段。这里由于只要查询班级,所以只考虑班级的情况,而不用考虑其他字段。5.添加条件的查询

如果现在的需求是,我想查询这个表中所有的男生的名字怎么办?

这时候我们就要给定条件了,这里要引入一个新的关键字where,注意这里的条件通常是表中拥有的字段

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

实例

select SNO,SNAME,SSEX from student where SSEX='男'

结果

sql server单表记录数查询 sql怎么单表查询_select_07


这样我们就查出来所有性别为男的学生的学号和姓名。

补充:

where可以指定的条件

  • 比较运算符>,<,=等
  • and or not 与或非
  • in()表示满足括号中的任意一个值
  • between A and B 值在A和B之间
  • like 模糊查询

长沙理工大学2017