《Microsoft SQL Server入门教程》第04篇 简单查询

Posted 不剪发的Tony老师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Microsoft SQL Server入门教程》第04篇 简单查询相关的知识,希望对你有一定的参考价值。

本篇我们介绍一下如何使用 SELECT 语句查询单个表中的数据。

SELECT 语句

表是数据库中存储数据的对象。从逻辑上来说,表中的数据以行和列的格式进行组织,就像电子表格一样。表中的每一行代表了一条记录,每一列代表了记录的一个字段(属性)。例如,customers 表包含了客户的信息,包括客户编号、名字、姓氏、电话、邮箱以及地址等:

SQL Server 使用模式(schema)将表和其他数据库对象进行逻辑分组。在示例数据库 BikeStores 中包含两个模式:sales 和 production。sales 模式包含了所有和销售相关的表,production 模式包含了所有和产品相关的表。

查询数据使用 SELECT 语句,以下示例演示了 SELECT 语句的基本用法:

SELECT
    select_list
FROM
    schema_name.table_name;

其中:

  • SELECT 子句用于指定需要查询的字段,多个字段使用逗号进行分隔。
  • FROM 子句用于指定查询的表,表名可以使用模式进行限定。

SQL Server 处理查询语句时,首先处理 FROM 子句找到相应的表,然后再处理 SELECT 子句返回相应的字段,这一点和书写的顺序相反。

查询示例

接下来我们使用 customers 表演示一些查询语句的示例。

查找指定字段

以下示例用于查找所有客户的姓名:

SELECT
    first_name,
    last_name
FROM
    sales.customers;

查询的结果如下:

查询的结果被称为结果集。

以下语句返回了所有客户的姓名和邮箱:

SELECT
    first_name,
    last_name,
    email
FROM
    sales.customers;

查找全部字段

如果想要查找表中的全部字段,可以在查询列表中指定全部字段的名称。另外,我们也可以使用 SELECT * 查询全部字段:

SELECT
    *
FROM
    sales.customers;

SELECT * 可以帮助我们快速查询和了解表的字段信息,也可以用于即席查询。但是,不建议在生产环境中使用这种查询方式。原因如下:

  • 首先,SELECT * 通常会返回更多的数据,应用程序通常并不需要这些字段。这种查询会导致更多的数据从服务器传输到客户端,导致网络传输时间的增加和应用程序的性能下降。
  • 其次,如果表中增加了字段,SELECT * 也会自动返回该字段,同样应用程序可能并不需要这个字段。这种情况甚至可能导致应用程序错误。

快速查询

通常来说,我们查询的对象都是数据表;这意味着查询语句的基本形式为 SELECT … FROM … 。不过,SQL Server 还支持另一种形式的查询语句:只有 SELECT 子句、没有 FROM 子句的查询。例如:

SELECT @@version;
|---------------------------------------------------------------------------------------------------------------------------------+
Microsoft SQL Server 2019 (RTM-GDR) (KB4583458) - 15.0.2080.9 (X64) 
	Nov  6 2020 16:50:01 
	Copyright (C) 2019 Microsoft Corporation
	Developer Edition (64-bit) on Windows 10 Home China 10.0 <X64> (Build 19042: )
|

这种形式的查询语句通常用于快速查找信息,或者当作计算器使用。上面的示例返回了 SQL Server 服务器的版本,@@version 是一个全局的系统变量。

使用注释

SQL Server 支撑两种形式的注释。一种以两个连字符(–)开始,直到这一行结束的内容表示注释:

-- 这是标准 SQL 注释方式
SELECT DISTINCT
       first_name
  FROM sales.customers;

注释的内容不会被服务器执行。

另外,SQL Server 还支持 C 语言风格的注释方法(/* … */)。例如:

SELECT DISTINCT
       first_name 
       /*  这是一个多行注释,
           DISTINCT 表示排除重复值
           /* 这是一个嵌套的注释 */
       */
  FROM sales.customers;

SQL Server 支持嵌套的注释。

以上是关于《Microsoft SQL Server入门教程》第04篇 简单查询的主要内容,如果未能解决你的问题,请参考以下文章

《Microsoft SQL Server入门教程》第01篇 SQL Server 简介

《Microsoft SQL Server入门教程》第04篇 简单查询

《Microsoft SQL Server入门教程》第03篇 示例数据库和示例表

什么是sqlserver

sql server 2014怎么装的过程中出错

如何在Linux上安装和使用MS SQL Server