暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据库主键和外键

国产程序员 2018-06-04
383
主键、外键和索引的区别?

主键

外键

索引

定义:

唯一标识一条记录,不能有重复的,不允许为空

表的外键是另一表的主键外键可以有重复的可以是空值

该字段没有重复值,但可以有一个空值

作用:

用来保证数据完整性

用来和其他表建立联系用的

是提高查询排序的速度

个数:

主键只能有一个

一个表可以有多个外键

一个表可以有多个惟一索引


聚集索引和非聚集索引的区别?

聚集索引一定是唯一索引。但唯一索引不一定是聚集索引。  

聚集索引,在索引页里直接存放数据,而非聚集索引在索引页里存放的是索引,这些索引指向专门的数据页的数据。

Mysql和Oracle创建主键:

1MySQL

create table user_test   

 (id int auto_increment primary key not null,

name varchar2(15));

2.Oracle

  create table user_test (

    id    int,

    name    varchar2(15),

constraint PK_ user_test  primary key (id) );

修改时:ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名)前提是原先没有设置主键。


创建外键:

ALTER TABLE news_info[子表名]   ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列] ;

创建组合键:

  alter table tb_name add primary key (字段1,字段2,字段3);


ORACLE支持五种类型的完整性约束

NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL.
CHECK (检查)--检查在约束中指定的条件是否得到了满足.

UNIQUE (唯一)--保证在指定的列中没有重复值.在该表中每一个值或者每一组值都将是唯一的.

PRIMARY KEY (主键)--用来唯一的标识出表的每一行,并且防止出现NULL,一个表只能有一个主键约束.

POREIGN KEY (外部键)--通过使用公共列在表之间建立一种父子(parent-child)关系,在表上定义的外部键可以指向主键或者其他表的唯一键.



文章转载自国产程序员,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论