SQL Server使用模式对表和其他数据库对象进行逻辑分组。 在[示例数据库])(bk_stores)中,有两个模式:sales和production。
sales模式将所有与销售相关的表分组,而production模式将所有与生产相关的表分组。要从表中查询数据,请使用SELECT语句。
以下是SELECT语句的最基本形式:在上面语法中,首先,select_list指定要在SELECT子句中查询数据的逗号分隔列的列表。其次,schema_name.table_name是在FROM子句中指定源表及其模式名称。处理SELECT语句时,SQL Server首先处理FROM子句,然后处理SELECT子句,即使SELECT子句首先出现在查询中也是一样。
对数据进行排序:使用SELECT语句从表中查询数据时,不保证结果集中的行顺序。
这意味着SQL Server可以返回具有未指定行顺序的结果集。保证结果集中的行已排序的方法是使用ORER BY子句。
以下是ORDER BY子句的语法:在上面语法中,column_name | expression - 指定要对查询结果集进行排序的列名或表达式。
如果指定多个列,则结果集按第一列排序,然后该排序结果集按第二列排序,依此类推。ORDER BY子句中出现的列必须对应于选择列表中的列或FROM子句中指定的表中定义的列。
在上面语法中,column_name | expression - 指定要对查询结果集进行排序的列名或表达式。
如果指定多个列,则结果集按第一列排序,然后该排序结果集按第二列排序,依此类推。ORDER BY子句中出现的列必须对应于选择列表中的列或FROM子句中指定的表中定义的列。
使用ASC或DESC指定是否应按升序或降序对指定列中的值进行排序。
ASC将结果从最低值排序到最高值,而DESC将结果集从最高值排序到最低值。
如果未明确指定ASC或DESC,则SQL Server将默认使用ASC来排序顺序。 此外,SQL Server将NULL视为最低值。处理具有ORDER BY子句的SELECT语句时,ORDER BY子句是要处理的最后一个子句。
按升序对结果集进行排序以下语句按名字按升序对客户列表进行排序:
按不在选择列表中的列对结果集进行排序,请注意,state列在customers表中定义。 如果不是,那么查询将无效。可以通过选择列表中未显示的列对结果集进行排序。 例如,以下语句按state对客户进行排序,即使state列未显示在选择列表中
SELECT TOP子句用于限制查询结果集中返回的行数或行百分比。
由于存储在表中的行的顺序是不可预测的,因此SELECT TOP语句始终与ORDER BY子句一起使用。 结果,结果集限于前N个有序行数。
以下是带有SELECT语句的TOP子句的语法:在此语法中,SELECT语句可以包含其他子句,
如:WHERE,JOIN,HAVING和GROUP BY。expression - TOP关键字后面是一个表达式,它指定要返回的行数。 如果使用PERCENT,则将表达式计算为浮点值,否则将其转换为BIGINT值。PERCENT - PERCENT关键字指示查询返回前N个行百分比,其中N是表达式的结果。WITH TIES - WITH TIES用于返回更多行,其值与有限结果集中的最后一行匹配。 请注意,WITH TIES可能会导致返回的行数多于在表达式中指定的行数。