在Oracle数据库中每个数据库里面都包含很多对象,主要包括表、视图、存储过程、触发器及其约束。
1、表
表,即在数据库中存放数据用的数据表。每一个数据库中都可以包含很多张数据表,但是每一个数据表的名字都是不能重复的。表的每一行代表一条记录,每一列都有一个列名,列名时唯一的,行与列的交叉点称为字段。
2、视图
视图是数据库的虚拟表。在视图中存放的是从数据库表中查询 的记录,使用视图主要是为了方便信息查询,同时也能缩短查询数据的时间。
3、存储过程
存储过程是由SQL 语句和控制流语句组成的代码块。存储过程在数据库内,可由应用程序通过存储过程的名称调用执行。
存储过程在开发软件时,可以把大量的数据操作放在服务器端的存储过程中,而只返回需要的数据,这样就减少了数据的传输量,速度也可以大大得提高。
4、触发器
触发器是特殊的存储过程,也是由SQL语句和程序控制语句组成。但是,触发器在数据库中不需调用而是自动执行的。例如,在触发器中可以定义在修改某张表记录后执行触发器中的内容。
5、约束
约束是在数据库中保证数据库里表中数据完整性的手段。在Oracle中使用的约束有主键约束、外键约束、唯一约束、检查约束和非空约束5个,其中主键约束和唯一约束都被认为是唯一约束,而外键约束被认为是参照约束。
(1)主键(Primary Key)约束
主键约束在每个数据表中只能有一个,但是一个主键约束可以由多个列组成,通常把由多个列组成的主键又叫做复合主键或组合主键。主键约束可以保证主键列的数据没有重复值且值不为空,也可以说是唯一的标识表中的一条记录。
(2)外键(Foreign Key)约束
外键约束之所以被认为是参照约束,是因为它主要用作把一个表中的数据和另一个表中的数据进行关联,表和表之间的关联是为了保证数据库中数据的完整性,使用外键保证数据的完整性,也叫参照完整性。
(3)唯一(Unique)约束
唯一约束和主键约束一样都是设置表中的列不能重复的约束,区别就是一个表中只能有一个主键约束,而却可以有多个唯一约束。通常情况下设置唯一约束的目的就是使非主键列没有重复值。唯一约束和主键约束的另一个区别是如果数据表中的某一列中有空值,那么就不能把这个列设置为主键列,但可以设置为唯一约束。
(4)检查(check)约束
检查约束是用来指定表中列的值的取值范围的。例如:在员工信息表中的员工年龄的列,如果要使员工的年龄列的值为18~50,就可以使用检查约束进行设置,当输入的值不在有效范围内时,就会出现错误。这样就保证了数据库中数据的有效性。
(5)非空(not null)约束
非空约束是用来约束表中的列不允许为空的。例如,在员工信息表中员工身份证号码列,要求员工必须输入时,可以使用非空约束来保证该列不能为空。
数据库设计的完整性
使用数据库约束就是保证数据库完整性的方法。数据库设计的完整性实际上就是为了保证数据的正确性。为了保证数据的正确性,在Oracle中涉及的完整性主要有3个,即实体完整性、区域完整性和参照完整性。
1、实体完整性
实体完整性要求表中的主键字段都不能为空或者重复的值。例如,在学校里每个学生的学号是唯一的,银行卡的卡号也是唯一的,每个人的身份证号也是唯一的等。
2、区域完整性
区域完整性是保证输入到数据库中