Oracle表约束和表间关系

      • 1.Oracle数据表要求
      • 2.Oracle数据表约束
      • 3表间关系
        • 3.1一对一关系
        • 3.1一对多关系
        • 3.1多对多关系

1.Oracle数据表要求

(1)必须以字母开头;
(2)长度不能超过30字符;
(3)避免使用关键字;
(4)会被自动转成大写(大小写不敏感),除非使用“”(不推荐,对数据表的使用不友好,而且能够突破非法字符检测限制):

(5)字符限制:a-z、A-Z、0-9、_&#

2.Oracle数据表约束

(1)主键约束(Primary Key constraint):唯一性,非空性;
(2)唯一约束(Unique constraint)唯一性,可以为空但是必须只有一个为空;
(3)检查约束(Check constraint):数据范围、格式等的限制;
(4)非空约束(Not NULL constraint):某些数据不允许为空。
(5)外键约束(Foreign Key constraint):表间关系约束。

3表间关系

    表间关系的核心是数据本身,不是表;

3.1一对一关系

    任何一方作为外键;

3.1一对多关系

    多方作为外键(允许重复,允许为空);eg:固定教师与上课学生;举例如下(developer太丑了没有办法):

删除教室101之后,学生表中的学生也被删除了,证明级联删除成功。虽然软件UI比较丑,但是功能还是比较多的,而且是更针对Oracle的数据库管理工具,多熟悉熟悉就好。

3.1多对多关系

    多方作为外键;举例学生选课系统中的学生和课程,由于学生人数肯定多余课程,因此将外键放到学生里面:

注意凡是外键,对应的需要为另一个表中的主键。最终得到如下设计:

这种数据库的设计比较接触,和Mysql如出一辙。但是需要注意一点,由于多对多的特点,”大佬选了数据结构“之后不能重复选择数据结构,否则就产生了数据冗余。处理方式设置将课程和学号一起使用unique约束:

熟能生巧,然后总结自己数据库的设计与别人的数据库设计相比的不足(当然需要明白数据库的设计不是唯一的),数据库的设计没有太多的捷径。

更多推荐

Oracle入门笔记(四)——Oracle表约束和表间关系