
上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这样只有一行数据的表并针对该表执行查询,而没有使用局部查询。
任何其他仅用于特定实例和章节的表,我会在书中的适当位置做出解释。