• 一起学习SQL查询系列之一基本查询(上)


    (1)从表中检索所有行和列

    问题

        查看一个表中的所有数据。

    解决方案

        对表使用SELECT语句并使用特殊字符“*”。

    select * 
    from emp

    讨论

        SQL中的“*”符号是具有特殊意义的。使用它可返回指定表中的每一列。这里由于没有WHERE字句,所以将返回表中的每一行。还有一种替代方法是分别列出每一列。

    select empno,ename,job,sal,mgr,hiredate,comm,deptno
    from emp

        在交互执行的查询中,使用SELECT *更容易一些。然而,在编写程序代码的时候最好是分别指定每一列,它们的性能都是一样的。但是,显示的指定列就会更清楚查询中返回了哪些列。同样,其他用户,而不是代码编写者自己,也更容易理解该查询。

    (2)从表中检索部分行

    问题

        从表中查询满足特定条件的行。

    解决方案

        使用WHERE字句指定要保留哪些行。例如,要查看部门号码为10的所有员工的信息。

    select *
    from emp
    where deptno = 10

    讨论

        利用WHERE子句可以只检索用户感兴趣的行,如果WHERE子句中的表达式在某行为真,则返回该行。

        大多数厂商都支持通用的运算符,例如:=, <, >, <=, >=, !, <>。另外,如果要查询满足多种条件的行,可以使用AND,OR或圆括号。

    (3)查找满足多种条件的行

    问题

        查找满足多种条件的行。

    解决方案

        使用WHERE子句以及OR和AND子句。例如,如果要查询部门10中的所有员工的信息,所有得到提成的员工信息,以及部门20中工资不超过$2000元的员工信息,可使用如下代码:

    select *
    from emp
    where deptno = 10
          or comm is not null
          or sal <= 2000 and deptno=20

    讨论

        可以使用AND,OR和圆括号的组合来查询满足多个条件的行。在解决方案的例子中,WHERE子句查找满足下列条件的行:

    • DEPTNO字段为10,或者
    • COMM字段为NULL,或者
    • 工资最多为$2000,并且DEPTNO字段为20

    (4)从表中检索特定的列

    问题

        查询一个表中特定列的指而不是所有列的值。

    解决方案

        指定感兴趣的列。例如,只查询员工的姓名,部门号和工资:

    select ename,deptno,sal
    from emp

    讨论

        通过在SELECT子句中指定列,可以保证不会返回一些无关的数据。在通过网络检索数据时这一点很重要,因为这样可以避免检索不需要的数据时带来的时间浪费。

    (5)为列提供有意义的名称

    问题

        修改查询返回的列名使其更具有可读性并且容易理解。例如查询每个员工的工资和提成

    select sal,comm
    from emp

        “sal”是什么?是”sale”的缩写?还是某个人的名字?什么是“comm”,是表示“communication”吗?结果的标签应该更明确些。

    解决方案

        要改变查询结果的列名,可以按这种格式使用AS关键字:原列名 AS 新列名。一些数据库不需要使用AS,但是所有的数据库都接收这种用法。

    select sal as salary, comm as commission
    from emp 
  • 相关阅读:
    [译] 第二十天:Stanford CoreNLP
    [译] 第十九天: Ember
    [译] 第十八天:BoilerPipe
    [译] 第十七天:JBoss Forge
    [译] 第十六天: Goose Extractor
    [译] 第十五天:Meteor
    [译] 第十四天:Standford NER
    [译] 第十三天:Dropwizard
    [译] 第十二天: OpenCV
    hadoop-MR
  • 原文地址:https://www.cnblogs.com/xchsp/p/2959580.html
Copyright © 2020-2023  润新知