T-SQL查询基础

查询是针对表中已经存在的数据行而言的,可以简单的理解为筛选。

数据表在接受查询的时候可以简单的理解为它将逐行选取,判断是否符合查询的条件。

如果符合查询条件,则提取出来,然后把所有的被选择的行组织在一起,形成另外一

个类似于表的结构,一张虚拟表,这便是查询的结果,通常叫做记录集。(RecordSet)

由于记录集的结构实际上和表的结构是相同的,都是由多行组成的。因此,在记录集上,

还可以再进行查询。

使用SELECT语句进行查询

查询使用Select语句,最简单的查询语句可以表示为:

Select <列名>

From <表名>

[WHERE 条件表达式]

[ORDER BY <排序的列名>[ASC 或 DESC]]

其中,where条件表达式是可选的,如果不限制,将返回该表中的所有数据行

Order By 是用来排序的,数据表中的记录是无序的,并不按照一定的次序存储。

查询语句可以分为多个部分,例如上面的查询语句可以划分为

Select ……From……Where……Order By……四个部分,注意要将每个部分单独

写成一行,以方便调试和查找错误。

查询可以分为一下几种情况:

<1>查询所有数据行和列

需要使用通配符*表示所有的列

Select * from 表名

<2>查询部分行列-条件查询

查询部分的列需要将你要查询的列全都列举出来,例:

Select Sname,Sscore,Ssex From Student

将学生表中的Sname列,Sscore列,Ssex列查询出来

如果要进行条件限制的话,例:

Select Sname,Sscore,Ssex From Student Where StudentID = 10

<3>在查询中使用列名

AS子句可以用来改变结果集列的名称,也可以为组合或者计算得来的列指定名称。

还有一种情况是让标题列的信息更易懂。例:

Select Sname AS 姓名,Sscore AS 成绩,Ssex AS 性别 From Student

经过计算,例:

Select firstName + '.' + lastName AS 姓名 From North

还有一种重新命名列名的方法 ,利用'='

Select 姓名 = firstName + '.' + lastName From North

<4>查询空行

在SQL语句中采用'IS NULL' ,'IS NOT NULL'来判断是否为空行,因此,如果要查询

Saddress 列为空的数据行,可以使用以下SQL语句

Select * from Student where Saddress IS NULL

IS NOT NULL同样用法。

<5>在查询中使用常量列

有时候,需要添加一些常量列到RecordSet中,例:

Select 姓名 = Sname,成绩 = Sscore,'北大青鸟' AS 学校名称 From Student

则输出结果中,会添加一列‘学校名称’,其中数据都为‘北大青鸟’

<6>查询返回限制的行数

有时候,需要返回定数的数据行,例如一个数据表中,有上万行数据,而我

只需要提取出前10行来,进行测试是否有效就OK了,没有必要查询出全部数据,

以提高查询速度,这时候就要用到限制返回行数的查询。

语法:

Select Top 返回行数 所查的列名 From 表名

在T-SQL中,限制行数需要用到TOP关键字,例如我要查询学生表中前10行数据.

Select Top 5 * From Student

还有一种情况,就是有时候需要按照百分比提取记录.这时候就要PERCENT关键字

来限制.

Select Top 百分数 Percent 所查列名 From 表名

例:

Select Top 10 Percent Sname,Sscore ,Ssex From Student

从Student表中查询10%的记录

你可能感兴趣的:(sql,测试,null,存储)