• 第2课 检索数据


    第2课 检索数据

    2.1 SELECT语句

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

    为了使用SELECT检索表数据,必须至少给出两条信息——想选择什么,以及从什么地方选择。

    2.2 检索单个列

    SELECT prod_name
    FROM Products;
    

    上述语句利用SELECT语句从Products表中检索一个名为prod_name的列。所需的列名写在SELECT关键字之后,FROM关键字指出从哪个表中检索数据。

    提示:结束SQL语句
    多条SQL语句必须以分号(;)分隔。

    提示:SQL语句和大小写
    请注意,SQL语句不区分大小写,因此SELECT与select是相同的。同样,写成Select也没有关系。不过,一定要认识到虽然SQL是不区分大小写的,但是表名、列名和值可能有所不同(这有赖于具体的DBMS及其如何配置)。

    2.3 检索多个列

    提示:当心逗号
    在选择多个列时,一定要在列名之间加上逗号,但最后一个列名后不加。如果在最后一个列名后加了逗号,将出现错误。

    SELECT prod_id, prod_name, prod_price
    FROM Products;
    

    在这个例子中,指定了3个列名,列名之间用逗号分隔。

    2.4 检索所有列

    SELECT *
    FROM Products;
    

    如果给定一个通配符(*),则返回表中所有列。

    提示:检索未知列
    使用通配符有一个大优点。由于不明确指定列名(因为星号检索每一列),所以能检索出名字未知的列。

    2.5 检索不同的值

    SELECT DISTINCT vend_id
    FROM Products;
    

    如果使用DISTINCT关键字,它必须直接放在列名的前面。

    警告:不能部分使用DISTINCT
    DISTINCT关键字作用于所有的列,不仅仅是跟在其后的那一列。

    2.6 限制结果

    在SQL Server和Access中使用SELECT时,可以使用TOP关键字来限制最多返回多少行,如下所示:

    SELECT TOP 5 prod_name
    FROM Products;
    

    如果你使用的是DB2,很可能习惯使用下面这一DBMS特定的SQL语句,像这样:

    SELECT prod_name
    FROM Products
    FETCH FIRST 5 ROWS ONLY;
    

    如果你使用Oracle,需要基于ROWNUM(行计数器)来计算行,像这样:

    SELECT prod_name
    FROM Products
    WHERE ROWNUM <=5;
    

    如果你使用MySQL、MariaDB、PostgreSQL或者SQLite,需要使用LIMIT 子句,像这样:

    SELECT prod_name
    FROM Products
    LIMIT 5;
    

    LIMIT 5指示MySQL等DBMS返回不超过5行的数据。

    为了得到后面的5行数据,需要指定从哪儿开始以及检索的行数,像这样:

    SELECT prod_name
    FROM Products
    LIMIT 5 OFFSET 5;
    

    LIMIT 5 OFFSET 5指示MySQL等DBMS返回从第5行起的5行数据。第一个数字是指从哪儿开始,第二个数字是检索的行数。

    警告:第0行
    第一个被检索的行是第0行,而不是第1行。因此,LIMIT 1 OFFSET 1会检索第2行,而不是第1行。

    提示:MySQL和MariaDB快捷键
    MySQL和MariaDB支持简化版的LIMIT 4 OFFSET 3语句,即LIMIT 3,4。使用这个语法,,之前的值对应LIMIT, ,之后的值对应OFFSET。

    2.7 使用注释

    我们先来看行内注释:

    SELECT prod_name    -- 这是一条注释 
    FROM Products;
    

    -- 之后的文本就是注释,例如,这用来描述CREATE TABLE语句中的列就很不错。

    下面是另一种形式的行内注释(虽然这种形式很少得到支持)。

    # 这是一条注释
    SELECT prod_name 
    FROM Products;
    

    在一行的开始处使用#,这一整行都将作为注释。

    你也可以进行多行注释,注释可以在脚本的任何位置停止和开始。

    /* SELECT prod_name, vend_id 
    FROM Products; */ 
    SELECT prod_name 
    FROM Products;
    

    注释从/*开始,到*/结束,/*和*/之间的任何内容都是注释。

    2.8 小结

    这一课学习了如何使用SQL的SELECT语句来检索单个表列、多个表列以及所有表列。你也学习了如何返回不同的值,如何注释代码。

  • 相关阅读:
    PHP获取指定的时间戳
    Thinkphp实现excel数据的导出
    ThinkPHP按月统计订单总金额
    PHP获取本月起始和终止时间戳
    ThinkPHP 判断一个更新操作是否成功
    js 通过浏览器直接打开应用程序(IOS,Android)并判断浏览器内核
    ThinkPHP 后台管理删除、编辑操作(通过数组传ID)
    PHP面向对象
    【转】Chrome调试鼠标悬停后出现的元素
    【重要】Selenium2+python自动化44-元素定位参数化(find_element)
  • 原文地址:https://www.cnblogs.com/zhangsonghui/p/12934047.html
Copyright © 2020-2023  润新知