SQL 经典实例
上QQ阅读APP看书,第一时间看更新

本书中用到的表

本书中的大部分例子都会涉及两个表:EMP表和DEPT表。EMP表有14行数据,它非常简单,仅用到了数字、字符串和日期字段。DEPT表有4行数据,它也很简单,只含有数字和字符串字段。这两个表在许多现存的数据库教科书里都曾出现过,大家也早已熟知在员工和部门之间所存在的多对一关系。

当我谈到示例表的话题时,我想说本书中的示例除了极少数的几个,几乎所有的示例都会用到这两个表。我不会像其他一些书那样,通过修改示例数据来构造一些你绝对不可能在真实世界里实现的解决方案。

说到解决方案,请允许我稍微提一下,只要状况允许,我都会尽可能地为本书涉及的5种关系数据库管理系统提供通用的解决方案。但经常无法做到这一点。尽管如此,在许多情况下,多种数据库可能共用一种解决方案。举例而言,因为相互支持对方的窗口函数,所以Oracle和DB2经常共用解决方案。如果解决方案共用或非常类似,那么在讨论部分也会一并提及。

EMP表和DEPT表的数据分别如下所示。

select * from emp;
EMPNO ENAME   JOB        MGR HIREDATE     SAL COMM  DEPTNO
----- ------  --------- ---- ----------- ---- ---- -------
 7369 SMITH  CLERK      7902 17-DEC-1980  800           20
 7499 ALLEN  SALESMAN   7698 20-FEB-1981 1600  300      30
 7521 WARD   SALESMAN   7698 22-FEB-1981 1250  500      30
 7566 JONES  MANAGER    7839 02-APR-1981 2975           20
 7654 MARTIN SALESMAN   7698 28-SEP-1981 1250 1400      30
 7698 BLAKE  MANAGER    7839 01-MAY-1981 2850           30
 7782 CLARK  MANAGER    7839 09-JUN-1981 2450           10
 7788 SCOTT  ANALYST    7566 09-DEC-1982 3000           20
 7839 KING   PRESIDENT       17-NOV-1981 5000           10
 7844 TURNER SALESMAN   7698 08-SEP-1981 1500    0      30
 7876 ADAMS  CLERK      7788 12-JAN-1983 1100           20
 7900 JAMES  CLERK      7698 03-DEC-1981  950           30
 7902 FORD   ANALYST    7566 03-DEC-1981 3000           20
 7934 MILLER CLERK      7782 23-JAN-1982 1300           10
select * from dept;
DEPTNO DNAME          LOC
------ -------------- ---------
    10 ACCOUNTING     NEW YORK
    20 RESEARCH       DALLAS
    30 SALES          CHICAGO
    40 OPERATIONS     BOSTON

除此之外,本书还会用到4张数据透视表:T1、T10、T100和T500。因为这些只是数据透视表,所以我认为不需要给它们取更容易懂的名字。关于表名,跟在字母T后面的数字表示该表有几行数据,每行有一个序号,从1开始。例如,T1表和T10表的数据如下所示。

select id from t1;
        ID
----------
         1
select id from t10;
        ID
----------
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10

顺便说一下,一些数据库支持局部SELECT语句。举例来说,可以只有SELECT而没有FROM子句。我不喜欢这样的用法,因此我构造了T1这样只有一行数据的表并针对该表执行查询,而没有使用局部查询。

任何其他仅用于特定实例和章节的表,我会在书中的适当位置做出解释。