开发工具与关键技术:SQL Server与SQL语言
作者:陈鑫鹏
撰写时间:2022年3月17日
数据库表是存储数据库中所有数据的对象。在表中,数据按行和列格式逻辑组织,类似于电子表格。在表中,每行代表一个唯一记录,每列代表记录中的一个字段。如下所示:
SQL Server使用模式对表和其他数据库对象进行逻辑分组。处理SELECT语句时,SQL Server首先处理 FROM 子句,然后处理 SELECT 子句,即使SELECT子句首先出现在查询中也是一样的。
对数据进行排序:
使用SELECT语句从表中查询数据时,不保证结果集中的行顺序。这意味着SQL Server可以返回具有未指定行顺序的结果集。保证结果集中的行已排序的方法是使用ORER BY子句。以下是ORDER BY子句的写法:
处理具有ORDER BY子句的SELECT语句时,ORDER BY子句是要处理的最后一个子句。ORDER BY子句可以设定它是升序还是降序。上图中的ASC就是按照升序排序,而降序用的则是DESC。ORDER BY还可以进行多列结果集进行排序,如下:
按多列和不同顺序对结果集进行排序:
按不在选择列表中的列对结果集进行排序:
按表达式对结果集进行排序,LEN()函数返回字符串的字符数。以下语句使用ORDER BY子句中的LEN()函数来检索按名字长度排序:
按列的序数位置排序,SQL Server允许根据选择列表中显示的列的序号位置对结果集进行排序。
限制返回行数:
1、SQL Server Select Top语句
SELECT TOP子句用于限制查询结果集中返回的行数或行百分比。由于存储在表中的行的顺序是不可预测的,因此SELECT TOP语句始终与ORDER BY子句一起使用。结果集限于前 N 个有序行数。
①使用具有恒定值的TOP:
②使用TOP返回行的百分比:
③使用TOP WITH TIES:
2、SQL Server Offset Fetch子句
OFFSET和FETCH子句是ORDER BY子句的选项。它们用于限制查询返回的行数。必须将OFFSET和FETCH子句与ORDER BY子句一起使用。OFFSET和 FETCH子句比实现TOP子句更适合实现查询分页解决方案
在上面语法中:
OFFSET子句指定在开始从查询返回行之前要跳过的行数。 offset_row_count可以是大于或等于零的常量,变量或参数。
FETCH子句指定在处理OFFSET子句后要返回的行数。 offset_row_count可以是大于或等于1的常量,变量或标量。
OFFSET子句是必需的,而FETCH子句是可选的。 此外,FIRST和NEXT是同义词,因此可以互换使用它们。
分页查询:
分页查询需要参数,如下:PageSize(10):每页多少条,pageNum(2):页数