美文网首页
《SQL必知必会》笔记(MySQL实现)---检索数据(1)

《SQL必知必会》笔记(MySQL实现)---检索数据(1)

作者: CoolForrest | 来源:发表于2017-07-11 14:56 被阅读0次

    这篇主要讲的是检索一个或者多个列

    SELECT语句

    正如之前提到的,SQL语句是由简单的英语单词组成。这些单词被称为关键字,每个SQL语句都是由一个或者多个关键字构成的。SELECT语句大概是最常用的SQL语句了,它的用途是从一个或者多个表中检索信息。

    关键字(keyword)
    作为SQL组成部分的保留字。关键字不能用作表或者列的名字

    还有一点需要指出的是,SQL语句是不区分大小写的,这意味着SELECT和select是相同的。但是当创建表和列的时候大小写是有敏感的。

    使用SELECT检索表数据,需要两个最基本的信息,想选择什么和从什么地方选择。

    检索单个列

    首先来看一个最简单的SELECT语句,在此之前最好是能够按照之前给出的地址里的代码创建好之后所需要的数据。
    输入:

    SELECT prod_name FROM Products
    

    上述语句的意思是,通过SELECT语句从Products表中检索出一个名为prod_name的列。基本的SELECT语句的格式是SELECT 列名 FROM 表名,将所需的列名写在SELECT关键字后,FROM关键字指出从哪个表中检索数据。此语句的结果输出如下:

    检索单个列.png

    不同的终端输出的结果的顺序可能有所不同,这是因为没有明确排序查询结果,所以返回的数据没有特定的顺序,但只要返回相同的行数就是正常的。

    这个简单的SELECT语句例子返回了表中所有的行。之后将会讨论数据的过滤和排序。

    关于SQL语句的一些格式:

    • 分号:
      多条语句必须用分号( ; )分隔。多数DBMS不需要在单条SQL语句后加分号,但是部分DBMS有这个要求。总的来说,加上分号没有什么坏处。
    • 使用空格:
      在处理SQL语句时,其中所有的空格都被忽略。SQL语句可以写成很长的一行,也可以分多行写。以下三种写法的作用是一样的。但是多数SQL开发人员认为,将SQL语句分成多行更容易阅读和调试。
      • SELECT prod_name
        FROM Products;
      • SELECT prod_name FROM Products;
      • SELECT
        prod_name
        FROM
        Products
    检索多个列

    要从一个表中检索多个列,还是使用SELECT语句,但是区别在于必须在SELECT关键字后给出多个列名,并且列名之间必须以逗号分隔,需要注意的是,最后一个列名后不需要加逗号,否则会出现错误。
    下面是一个简单的例子,从Products表中选择3列。
    输入:

    SELECT prod_id,  prod_name,  prod_price FROM Products;
    

    这条SELECT语句从Products表中选择出了三列的数据,在使用SELECT语句的时候,指定了三个列,列名之间用逗号隔开了。


    检索多个列.png

    从前两个例子可以看出,SQL语句一般返回原始的,无格式的数据。一般来说,数据的格式化是表示的问题,不是检索的问题。

    检索所有列

    除了检索特定的一个或者几个列,SELECT语句可以检索所有的列。在实际列名位置使用星号(*)通配符可以做到这一点。
    输入:
    SELECT * FROM Products;
    (由于markdown的代码标签无法正常显示转义以后的星号,所以就不使用代码标签直接显示了)
    这条SELECT语句给定了一个通配符(*),返回表中所有的列。列的顺序一般是列在表定义中出现的顺序,但是也不一定如此。不过列的顺序对于整个检索结果来说并不会造成什么问题。


    检索所有列.png

    关于通配符:

    • 一般而言,除非确实需要表中的每一列,否则最好是不要使用*通配符,虽然通配符用起来很省事,但是检索不需要的列会降低检索的性能。
    • 但是使用通配符有一个优点,那就是当不明确指定的是哪个列的时候,使用通配符可以检索出这些不明确的列。

    相关文章

      网友评论

          本文标题:《SQL必知必会》笔记(MySQL实现)---检索数据(1)

          本文链接:https://www.haomeiwen.com/subject/msvphxtx.html