数据库总结

数据库总结

数据库=实体+关系

实体:实体就是一个实际的对象,即主键.

关系:外键

三个范式:

第一范式:

1.一个行的每个列必须具有原子性,即任何给定行的列只能包含一个值

2.表中的每行必须包含相同数量的列,假如每个列只能包含一个值,即意味着每行必须包含相同数量的值.

3.一个表中的所有行必须是不同的,虽然可能包含相同的值,但每行作为一个整体必须在整个表中试唯一的.

第二范式:

非主必须依赖于主键列键列(设计一个实体必须是它的固有属性)

第三范式:

非主键列之间必须相互独立(不能通过一个字段知道另一个字段的值)

注:NF1和NF2必须满足.

实体:

强实体:能脱离主键列而单独存活

弱实体:脱离了主键列就不能存活(没有什么意义)

关系:

实体与实体之间的关系(一对一,一对多,多对多)

一对一:从一边到另一边是一对一,反过来还是一对一

一对多:从一边到另一边是一对多,反过来是一对一

多对一:反过来就是一对多

多对多:从一边到另一边是一对一,反过来还是多对多,但实际中一般不用多对多而用一对多或多对一

注:找关系一定是以“一”为标准,从一个实体的一条记录出发。

主键:用来对实体的唯一标识

代理主键:没有什么实际的意义

业务主键:与业务有关,一般情况下,业务变更业务主键也要相应的变更

外键:表示表与表之间的关系,表不一定要有外键才有关系

例如:在学生表中,学号(学生表)和科目编号(科目表)是独立主键

学号+科目编号(成绩表)是复合主键。

创建序列:

SELECT*FROMemp

CREATESEQUENCEtt

CREATETABLEt_class(

cidNUMBER(5)PRIMARYKEY,

cnameVARCHAR2(8)

)

INSERTINTOt_class(cid,cname)VALUES(tt.NEXTVAL,'1');

INSERTINTOt_class(cid,cname)VALUES(tt.NEXTVAL,'2');

INSERTINTOt_class(cid,cname)VALUES(tt.NEXTVAL,'3');

INSERTINTOt_class(cid,cname)VALUES(tt.NEXTVAL,'4');

SELECT*FROMt_class

创建同义词:

CREATEPUBLICSYNONYMyyFORt_class

SELECT*FROMyy

视图理解:

CREATEORREPLACEVIEW视图名

AS

SQL查询;

例如:

CREATEORREPLACEVIEWT_EMP

AS

SELECT*FROMEMPELEFTJIONDEPTDONE.DEPTNO=E.DEPTNO

删除:

DROPVIEW视图名

视图的作用:

1.保护数据安全

2.简化数据的查询和处理操作

3.有利于数据交换操作

4.有利于简化对用户权限的管理

相关推荐