a表两个字段都与b表一个字段关联_Oracle系列第二章----表,精彩延续。。。

41b0478dd8c4ed44d44b1503db619dab.png

第一节

表的概念

表设计的原则

2.1 表

数据库中以表为组织单位存储数据。表用来存储一些事物的信息,首先需要有一个表名,以及存储的信息。

2.2 设计原则

好的数据库表设计会影响数据库操作效率。特别是数据特别多的时候,如果表结构不好的话,操作的时候条件会变得非常复杂。所以为了以后操作简单,表的关系(内部和外部)要尽量合理的设计。
步骤:
1)找出表要描述的东西
2)列出你想通过这个表得到的相关信息的列表
3)通过上面的信息列表,将信息划分成一块块的小部分,通过这个小块来建表中的字段;

所以为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。在实际开发中最为常见的设计范式有三个:

第一范式(确保每列保持原子性),属性不可再分 第二范式(确保表中的每列都和主键相关),实体唯一 第三范式(确保每列都和主键列值直接相关,而不是间接相关),字段没有冗余

基本表及其字段之间的关系,应尽量满足第三范式。但是,满足第三范式的数据库设计,往往不是最好的设计。为了提高数据库的运行效率,常常需要降低范式标准:适当增加冗余,达到以空间换时间的目的。
更合理的表设计会给每条记录加上一个唯一的识别,就是加上主键。

1)将一个表字段设为主键要求在表创建的时候就进行设置。 2) 一个表里被设为主键的字段的值必须是唯一的,也就是说如果一个字段被设为主键,这个表所有的数据列表里这个字段的值不可能有重复的。 3) 被设为主键的字段不能插入空值。 4) 被设为主键的字段的值是不能更改的。 5) 如果字段被设为是自增长的,主键只能设置一个且它必须是主键。如果表中没有自增长的字段,则可以设多个字段为主键。 6) 主键最好是一个和表里数据无关的值。比如说另建一个字段:id;而不要设在:name 等这些字段上。

两个表关联.两个表之间数据的关系有三种:

1)一对一;两个表里数据唯一对应; 2)一对多;表A在表B里对应多条数据,但表B里的一条数据绝对只对就A中的一条数据; 3)多对多;A里的一条数据对应B里的多条数据,B里一条数据也对应A中的多条数据。

一对一 的表设计用的不多.可能用到的情况有:

a)对一个表中大多数时候不查的字段,放到另一个表中对应起来.这样可以提高大多数时候查询的效率; b)若表中记录还有些字段的值未知,可以将这些字段分出来放.这样可以让主表中不存在NULL; c)不想轻易就查出来的数据,比如一个人的工资详情,等.可以在主另一表中放着; d)大文本,通过一个外键关联,这样可以提高查询效率;

一对多 的情况可以如下: 有一个人员信息表info,里面包括一个外键:email;这个字段里存的是邮箱表emailBox里的主键:id;因为一个人可以对应多个邮箱,但一个邮箱只能属于一个人(他自己要共用木有办法)多对多 对优化表设计的用处最大,效果最显著;一个多对多的关系是由一个连接表有两个一对多的表关系组成的;
另外,同一个表里的各字段之间不要有复杂的依赖关系.各字段只能和主键有依赖关系.如果非主键和非主键间有依赖关系,就要将它们从主表分离出去,放在另一个表中,并通过外键进行关联

2.3 约束

对于存储的每一个信息,都应该使用相应的数据进行表示,并且这些数据应该是合法的(包括实际和业务逻辑),在数据库中我们通过约束来对每个字段中的数据的合法性进行规范。

•主键约束(PRIMARY KEY)

•唯一性约束(UNIQUE)

•非空约束(NOT NULL)

•外键约束(FOREIGN KEY)

•检查约束(CHECK)

主键

主键是定位表中单个行的方式,可唯一确定表中的某一行,关系型数据库要求所有表都应该有主键,不过Oracle没有遵循此范例要求,Oracle中的表可以没有主键(这种情况不多见)。关于主键有几个需要注意的点:

1.键列必须必须具有唯一性,且不能为空,其实主键约束 相当于 UNIQUE+NOT NULL 2.一个表只允许有一个主键 3.主键所在列必须具有索引(主键的唯一约束通过索引来实现),如果不存在,将会在索引添加的时候自动创建

唯一键

唯一性约束可作用在单列或多列上,对于这些列或列组合,唯一性约束保证每一行的唯一性。 UNIQUE允许null值,UNIQUE约束的列可存在多个null

非空约束

非空约束作用的列也叫强制列。顾名思义,强制键列中必须有值,当然建表时候若使用default关键字指定了默认值,则可不输入。

外键约束

外键约束定义在具有父子关系的子表中,外键约束使得子表中的列对应父表的主键列,用以维护数据库的完整性。不过出于性能和后期的业务系统的扩展的考虑,很多时候,外键约束仅出现在数据库的设计中,实际会放在业务程序中进行处理。外键约束注意以下几点:

1.外键约束的子表中的列和对应父表中的列数据类型必须相同,列名可以不同 2.对应的父表列必须存在主键约束(PRIMARY KEY)或唯一约束(UNIQUE) 3.外键约束列允许NULL值,对应的行就成了孤行了

检查约束

检查约束可用来实施一些简单的规则,比如列值必须在某个范围内。

2.4 客户端的安装使用

操作详见视频内容,这里不赘述。

2.5 准备表和数据

操作简单,所有准备都在视频中,若是没有请联系老师获取资料

2.6 SQL语言介绍

SQL(Structured Query Language)为数据库的语言,在1974年由Boyce【博伊斯】和Chamberlin【钱伯林】提出的一种介于关系代数与关系演算之间的结构化查询语言,是一个通用的、功能极强的关系型数据库语言。它包含三部分:.DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象。常用的语句关键字主要包括create、drop、alter等。.DML(Data Manipulation Languages)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用的语句关键字主要包括insert、delete、update和select等。.DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句,这些语句定义了数据库、表、字段、用户的访问权限和安全级别,主要的语句关键字包括grant、revoke等。

3dc4c79d795746fc76a39830dddf7bfe.png

分类命令DDLcreate:创建;drop:删除;alter:修改;rename:重命名;truncate:截断DMLinsert:插入;delete:删除;update:更新;select:查询DCLgrant:授权;revoke:回收权利;commit:提交事务;rollback:回滚事务

Oracle命令不区分大小写,但是数据|内容 是区分大小写的。


表和表的设计原则

视频内容很多,受篇幅限制只展示部分。想获取视频资料及文档添加码歌悠悠QQ: 1811119218 ,获取全部内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值