1、数据库中一般包含下列对象
表、约束、索引、触发器、序列、视图;
可以使用图形用户界面或通过显式执行语句来创建这些数据库对象。用于创建这些数据库对象的语句称为“数据定义语言”(DDL),它们通常以关键字 CREATE 或 ALTER 作为前缀。
了解每个数据库对象提供的特征和功能很重要,这有助于设计一个好的数据库,该数据库不仅要满足当前业务的数据存储需求,同时还应保持足够的灵活性,以便能随着时间的推移进行扩充和增长。
(资料源于https://www.ibm.com/support/knowledgecenter/zh/SSEPGG_9.5.0/com.ibm.db2.luw.admin.dbobj.doc/doc/c0023321.html,数据库是DB2,不同的数据库有不同)
2、表
表是数据库管理器维护的逻辑结构。表由列和行组成。
3、约束——用于优化的规则
在任何业务中,数据通常必须符合特定限制或规则。例如,职员编号必须是 唯一的。数据库管理器提供了约束作为强制实施这种规则的方法。
通常,数据库会提供以下类型的约束:
- NOT NULL 约束:非空约束防止在列中输入空值。
在排序时NULL值会出现在增序排序的首位,出现在减序排序的末位。
NULL意味着“not having a value”:
- DEFAULT约束:默认约束,赋予某字段默认值。如果该字段没有插入数据,则其值为默认值。
- UNIQUE KEY:唯一约束:设置字段的值是唯一的,允许为空,但只能有一个空值。
- PRIMARY KEY:主键约束,设置字段为表的主键,作为该表的唯一标识。
- FOREIGN KEY:外键约束,也称为引用约束或引用完整性约束。在两表之间建立关系,指定引用主表的哪一字段。InnoDB支持外键,MyISAM不支持。还有,作为外键的字段要求在主表中是主键(单字段主键)。
- AUTO_INCREMENT:设置为自增字段,且每条默认自增1;通常用于设置主键,且为整数类型;可设置初始值和步长。
- (表)检查约束:指定表中每行的一列或多列中允许使用的值。指定检查约束是通过限制格式的搜索条件完成的。
- 参考约束:参考约束是一种约束属性,SQL 编译器可使用它来改善对数据的访问。参考约束不是由数据库管理器强制执行的,并且不用于数据的附加验证;它们用来提高查询性能。
4、索引
索引是一个或多个键的集合,每个键指向表中的一行。SQL优化器自动选择最有效率的访问表中数据的方法。当确定最快速的数据访问路径时,优化器会将索引考虑在内。
5、触发器
触发器定义一组操作,在响应对指定表的插入、更新或删除操作时将执行这些操作。执行这样的 SQL 操作时,触发器被认为是已激活的。触发器是可选的,并且可使用 CREATE TRIGGER 语句定义。
6、序列
序列是一个数据库对象,它允许自动生成值,例如,支票号。
序列特别适合于生成唯一键值这一任务。应用程序可以使用序列来避免用于跟踪数字的列值所引起的可能的并行性和性能问题。
与在数据库外部创建的数字相比,序列的优点在于数据库服务器将跟踪生成的数字。崩溃和重新启动不会导致生成重复的数字。
7、视图
视图是高效率的数据呈示方法(无需维护数据)。视图不是实际的表,不需要永久存储器。“虚拟表”是即创建即使用的。