1. 查询数据

       数据库表是存储数据库中所有数据的对象。

       在表中,数据按行和列格式逻辑组织,类似于电子表格(Excel)在表中,每行代表一个唯一记录,每列代表记录中的一个字段。

例如,customers表包含客户数据,如客户标识号,名字,姓氏,电话,电子邮件和地址信息,如下所示:

      SQL Server使用模式对表和其他数据库对象进行逻辑分组。

      在[示例数据库])(bk_stores)中,有两个模式:salesproduction

      sales模式将所有与销售相关的表分组,而production模式将所有与生产相关的表分组。

      要从表中查询数据,请使用SELECT语句。 以下是SELECT语句的最基本形式:

Select (查询)  * (全部) frOm(指定)  [salcs].[customers](数据表名称)
Select  select_list(列名) 
from schema_name.table_name(表名)

      在上面语法中,

  • 首先,select_list指定要在SELECT子句中查询数据的逗号分隔列的列表。
  • 其次,schema_name.table_name是在FROM子句中指定源表及其模式名称。

       处理SELECT语句时,SQL Server首先处理FROM子句,然后处理SELECT子句,即使SELECT子句首先出现在查询中也是一样。

2. 对数据进行排序(order by)

       使用SELECT语句从表中查询数据时,不保证结果集中的行顺序。 这意味着SQL Server可以返回具有未指定行顺序的结果集。保证结果集中的行已排序的方法是使用ORER BY子句。

      以下是ORDER BYorder by子句的语法:

在上面语法中,

  • column_name | expression - 指定要对查询结果集进行排序的列名或表达式。 如果指定多个列,则结果集按第一列排序,然后该排序结果集按第二列排序,依此类推。ORDER BY子句中出现的列必须对应于选择列表中的列或FROM子句中指定的表中定义的列。

  • ASC | DESC - 使用ASC或DESC指定是否应按升序或降序对指定列中的值进行排序。ASC将结果从最低值排序到最高值,而DESC将结果集从最高值排序到最低值。如果未明确指定ASC或DESC,则SQL Server将默认使用ASC来排序顺序。 此外,SQL Server将NULL视为最低值。

处理具有ORDER BY子句的SELECT语句时,ORDER BY子句是要处理的最后一个子句。

1. 按升序(asc)对结果集进行排序

以下语句按名字按升序对客户列表进行排序:

 

2. 按降序(desc)对结果集按一列排序以下语句按名字降序对客户列表进行排序。

3. 按多列对结果集进行排序以下语句检索客户的名字,姓氏和城市。 它首先按城市对客户列表进行排序,然后按名字排序。

4. 按多列和不同顺序对结果集进行排序以下语句按城市按降序对客户进行排序,之后按第一个名称按升序对排序结果进行排序。

5. 按不在选择列表中的列对结果集进行排序,请注意,state列在customers表中定义。 如果不是,那么查询将无效。

      可以通过选择列表中未显示的列对结果集进行排序。 例如,以下语句按state对客户进行排序,即使state列未显示在选择列表中。

6. 按表达式对结果集进行排序

      LEN()函数返回字符串的字符数。 以下语句使用ORDER BY子句中的LEN()函数来检索按名字长度排序客户列表。

7. 按列的序数位置排序

      SQL Server允许根据选择列表中显示的列的序号位置对结果集进行排序。

     以下语句按名字和姓氏对客户进行排序。 但是它没有显式指定列名,而是使用列的序号位置:

注:数据库对英文字母大小写不敏感。例:Select 和 SELECT 都是可以的。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐