一起学习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 
posted @ 2013-03-14 17:12  xchsp  阅读(184)  评论(0编辑  收藏  举报
友情链接 豆约翰博客备份专家 IT行业观察