主键与外键

基本定义

主键(primary key):一列或一组列,其值能够唯一区分表中每个行

 特性:1.任何两行都不具有相同的主键值

             2.每行必有一个主键值,且不为NULL

注意:主键列的值最好不需要更新,且不会更改

外键(foreign key):指的是某个表中的某一列包含另一个表的主键,即表的外键为另一个表的主键,外键将两个表联系起来。


举个例子

表customers主要存放客户的信息,其中每个客户的ID都不同,因此客户ID可以作为customers表的主键。表orders存放客户的订单信息,包括订单号以及下单时间和客户的ID,我们知道,每个订单的订单号都不相同,因此订单号则可以作为orders表的主键,而orders表中的客户ID就是其外键,联系了customers表和orders表。


如何在表中定义主键和外键

创建表时定义

create table table_name

(

...

primary key(主键列名)  //可以将多个列作为主键,这些列的组合必须不同

foreign key(外键列名) references another_table_name(相应的主键列名)

)

创建表后进行定义外键

alter table table_name 

add constraint 外键名

foreign key(外键列名) references another_table_name(相应的主键列名)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关系型数据库和SQL SQL语言的三个部分DML:Data Manipulation Language,数据操纵语...
    Awey阅读 1,985评论 0 13
  • 2017/3/14 RDBMS:关系型数据库管理系统 关系模型独立于语言 SQL有几种不同类型的语言:数据定义语言...
    ancherl阅读 1,673评论 0 6
  • 转载,觉得这篇写 SQLAlchemy Core,写得非常不错。不过后续他没写SQLAlchemy ORM... ...
    非梦nj阅读 5,529评论 1 14
  • /** * 获取当前URL * @return string */ function get_now_url() ...
    上善若水_900e阅读 159评论 0 0
  • 凌晨依然追剧经典《老友记》,发愁Ross与Rachel一再错身而过。不知道何时睡着,醒来手机依然孜孜不倦,完全没有...
    Rain0320阅读 361评论 0 1