2.1 数据库表简介

  通过第1章图1.36可以看到,HR用户可以操作的用户表共有七个,它们的基本情况如表2.1所示。

表2.1 HR用户表简介

序 号 表 名 表 作 用
1 EMPLOYEES 雇员信息表,包括所在部门编号,所从事职位编号以及部门经理雇员编号等
2 DEPARTMENTS 部门信息表,包括部门所在地编号等
3 JOBS 职位信息表
4 LOCATIONS 所在地信息表,包括所在地所属国家编号等
5 COUNTRIES 国家信息表,包括国家所在大洲编号等
6 REGIONS 大洲信息表
7 JOB_HISTORY 职位变迁表,包括雇员编号、职位编号、部门编号等

2.1.1 获取表数据

  第1章在简介PL/SQL Dev这个Oracle客户端工具如何使用的时候,已经介绍了通过选择表对象,右击Query data的方式获取表数据。接下来分别获取上述七个表的部分数据,直观感受这些表里到底存了什么数据。

  • EMPLOYEES表(见图2.1)

2.1 数据库表简介 - 图1


图2.1 EMPLOYEES表数据

  • DEPARTMENTS表(见图2.2)

2.1 数据库表简介 - 图2


图2.2 DEPARTMENTS表数据

  • JOBS表(见图2.3)

2.1 数据库表简介 - 图3


图2.3 JOBS表数据

  • LOCATIONS表(见图2.4)

2.1 数据库表简介 - 图4


图2.4 LOCATIONS表数据

  • COUNTRIES表和REGIONS表(见图2.5和图2.6)

2.1 数据库表简介 - 图5


图2.5 COUNTRIES表数据

2.1 数据库表简介 - 图6


图2.6 REGIONS表数据

  • JOB_HISTORY表(见图2.7)

2.1 数据库表简介 - 图7


图2.7 JOB_HISTORY表数据

  在数据库这门课程中,我们把每一行数据整体称为一条“记录”,而把每一列的标题称为一个“字段”(如EMPLOYEE_ID、START_DATE等)。

2.1.2 获取表结构

  获取了七个表的部分表数据之后,读者对这些表已经有了直观的认识,并且似乎已经感觉到这些表之间的联系。接下来,要更进一步,查看这几个表的表结构,重点是表里有哪些字段,这些字段有什么要求。由于篇幅关系,这里仅以EMPLOYEES为例查看表结构,其他表要求大家自己查看。

  在PL/SQL Dev中获取表结构的方法也很简单,选择表对象EMPLOYEES,右击Edit,再切换到Columns选项卡,得到如图2.8所示的内容。

2.1 数据库表简介 - 图8


图2.8 EMPLOYEES表结构

  从图2.8中可以看出,EMPLOYEES表包含11个字段,分别是代表雇员编号字段EMPLOYEE_ID、雇员名(不含姓)字段FIRST_NAME、雇员姓字段LAST_NAME、邮箱字段EMAIL、电话字段PHONE_NUMBER、雇佣日期字段HIRE_DATE、职位编号字段JOB_ID、薪水字段SALARY、佣金百分比字段COMMISSION_PCT、所属经理编号字段MANAGER_ID和所属部门编号字段DEPARTMENT_ID。

  数据库表中的每个字段都规定了特定的类型,存放在该字段中的值必须符合类型的要求,这和Java语言中的数据类型类似。Oracle中支持的数据类型,包括五个大类:字符型、数值型、日期时间型、大对象型、伪列型,每个大类中又包括很多详细的类型。这么多的类型都记忆下来比较困难,在学习阶段只需要记住一些日常开发中常使用到的类型就可以了。表2.2列出了这些Oracle常用数据类型。

表2.2 Oracle常用数据类型

类 型 含 义
CHAR(size) 存储固定长度的字符串。参数size指定了长度,如果存储的字符串长度小于size,用空格填充。默认长度为1,最长不超过2000字节
VARCHAR2(size) 存储可变长度的字符串。参数size指定了该字符串的最大长度。默认长度为1,最长不超过4000字节
NUMBER(p,s) 存储变长的数字。既可以存储浮点数,也可以存储整数,p表示数字的最大位数(如果是小数包括整数部分、小数部分和小数点,p默认是38位),s表示小数位数
DATE 存储定长的日期或时间。存储世纪、年、月、日、时、分、秒,存储范围从公元前4712年1月1日到公元后9999年12月31日
TIMESTAMP 和DATE类型大致相同,不过TIMESTAMP精确到了秒后6位小数
CLOB 存储单字节字符大数据。和VARCHAR2数据类型相似,可存储的数据最大可以达到4GB,可以用来存储非结构化的XML文档
BLOB 存储无结构的二进制大数据。可存储的数据最大可以达到4GB,可以用来存储图像、视频、音频等信息
ROWID 表中行的存储地址,该地址可以唯一标识数据库中的一行,可以使用 ROWID 伪列快速定位表中的一行
ROWNUM 查询返回的结果集中行的序号,可以使用它来限制查询返回的行数

  在学习了Oracle常用数据类型之后,再次查看图2.8显示的EMPLOYEES表中11个字段。可以发现,FIRST_NAME、LAST_NAME、EMAIL、PHONE_NUMBER和JOB_ID这些字段都是VARCHAR2类型,EMPLOYEE_ID、SALARY、COMMISSION_PCT、MANAGER_ID和DEPARTMENT_ID这些字段都是NUMBER类型,HIRE_DATE这个字段是DATE类型。

  图2.8中第三列,指出该表中每个字段是否允许为空。从显示结果来看,EMPLOYEE_ID、LAST_NAME、EMAIL、HIRE_DATE、JOB_ID这五个字段不可以为空。

  通过Columns选项卡,可以了解该表每个字段的属性,这是了解表结构的重点。同时也可以通过General、Keys、Checks、Indexes这四个选项卡(见图2.9~图2.12),分别了解该表的基本信息、键、约束和索引,这些内容会在后面的课程中详细介绍。

2.1 数据库表简介 - 图9


图2.9 General选项卡

2.1 数据库表简介 - 图10


图2.10 Keys选项卡

2.1 数据库表简介 - 图11


图2.11 Checks选项卡

2.1 数据库表简介 - 图12


图2.12 Indexes选项卡