第一范式,所有的属性都是单一值,属性只表示单一的意义。(记录可以重复,没有任何限制)没有任何约束
第二范式,某属性要求唯一且非空,(记录不可重复,但是数据可能会出现冗余)。主键约束
第三范式,非主属性只能依赖于主属性,不能依赖于其他非主属性。(解决数据冗余问题)
主键约束,属性分表,外键引用
约束
约束是针对表中的字段进行定义的,为了保证数据的完整性。
primary key (主键约束 PK)保证实体的完整性,保证记录的唯一
主键约束,唯一且非空,并且每一个表中只能有一个主键,有两个字段联合作为主键,只有两个字段的值放在一起可唯一标识记录,叫做联合主键。
foreign key (外建约束 FK)保证引用的完整性,
外键约束,外键的取值是受另外一张表中的主键或唯一值约束的,不能够取其他值,只能够引用主键或唯一键的值,被引用的表,叫做parent table(父表),引用方的表叫做child table(子表),要想创建子表,就要先创建父表,后创建子表,记录的插入也是如此,先父表后子表,删除记录,要先删除子表记录,后删除父表记录,要修改记录,如果要修改父表的记录要保证没有被子表引用。要删表时,要先删子表,后删除父表。
not null 非空约束,
unuque key(唯一键),值为唯一
index(索引)是数据库特有的一类对象,view(示图)
check约束
检查约束,可以按照指定条件,检查记录的插入。check中不能使用尾列,不能使用函数,不能引用其他字段。
例:create table sal (a1 number , check(a1>1000));
创建脚本
class table
一
create table class(
cid number,
class_num number,
desc varchar2(32),
primary key(cid)
);
student table
多
create table student(
id number,
name varchar2(32),
address varchar2(32)
class_id number,
primary key(id),
foreign key (class_id) references class(cid)
);
数据字典
数据字典是由系统维护的,包含的数据库的信息
数据字典示图
user_XXXXX 用户示图
all_XXXXX 所有示图
dba_XXXXX 数据库中所有示图
v$_XXXXX 动态性能示图
dist或 distionary 表示数据字典的数据字典。
user_constraints 用户的表中约束的表
其中有constraints_name字段存放的是约束名,r_constraints_name字段表示外键引用子何处
这两个字段之间有自连接的关系,也就是约束名和外键约束名之间的自连接。
user_cons_column表,是用户的列级约束表
alter table命令
alter table 命令用于修改表的结构(这些命令不会经常用):
增加字段:
alter table 表名 add(字段字,字段类型)
删除字段:
alter tbale 表名 drop column 字段; (8i 以后才支持)
修改字段
alter table 表名 modify( 字段,类型)
(此时应注意的问题,更改时要看具体值情况之间的转达换, 改为字符类型时,必须要为空)
not null约束是使用alter table .. modify (..,not null),来加上的。
第二范式,某属性要求唯一且非空,(记录不可重复,但是数据可能会出现冗余)。主键约束
第三范式,非主属性只能依赖于主属性,不能依赖于其他非主属性。(解决数据冗余问题)
主键约束,属性分表,外键引用
约束
约束是针对表中的字段进行定义的,为了保证数据的完整性。
primary key (主键约束 PK)保证实体的完整性,保证记录的唯一
主键约束,唯一且非空,并且每一个表中只能有一个主键,有两个字段联合作为主键,只有两个字段的值放在一起可唯一标识记录,叫做联合主键。
foreign key (外建约束 FK)保证引用的完整性,
外键约束,外键的取值是受另外一张表中的主键或唯一值约束的,不能够取其他值,只能够引用主键或唯一键的值,被引用的表,叫做parent table(父表),引用方的表叫做child table(子表),要想创建子表,就要先创建父表,后创建子表,记录的插入也是如此,先父表后子表,删除记录,要先删除子表记录,后删除父表记录,要修改记录,如果要修改父表的记录要保证没有被子表引用。要删表时,要先删子表,后删除父表。
not null 非空约束,
unuque key(唯一键),值为唯一
index(索引)是数据库特有的一类对象,view(示图)
check约束
检查约束,可以按照指定条件,检查记录的插入。check中不能使用尾列,不能使用函数,不能引用其他字段。
例:create table sal (a1 number , check(a1>1000));
创建脚本
class table
一
create table class(
cid number,
class_num number,
desc varchar2(32),
primary key(cid)
);
student table
多
create table student(
id number,
name varchar2(32),
address varchar2(32)
class_id number,
primary key(id),
foreign key (class_id) references class(cid)
);
数据字典
数据字典是由系统维护的,包含的数据库的信息
数据字典示图
user_XXXXX 用户示图
all_XXXXX 所有示图
dba_XXXXX 数据库中所有示图
v$_XXXXX 动态性能示图
dist或 distionary 表示数据字典的数据字典。
user_constraints 用户的表中约束的表
其中有constraints_name字段存放的是约束名,r_constraints_name字段表示外键引用子何处
这两个字段之间有自连接的关系,也就是约束名和外键约束名之间的自连接。
user_cons_column表,是用户的列级约束表
alter table命令
alter table 命令用于修改表的结构(这些命令不会经常用):
增加字段:
alter table 表名 add(字段字,字段类型)
删除字段:
alter tbale 表名 drop column 字段; (8i 以后才支持)
修改字段
alter table 表名 modify( 字段,类型)
(此时应注意的问题,更改时要看具体值情况之间的转达换, 改为字符类型时,必须要为空)
not null约束是使用alter table .. modify (..,not null),来加上的。