感悟网 导航

SQL中外码有什么用? 在SQl中、主外键主要到底 是干什么用的?

作者&投稿:利纪 (若有异议请与网页底部的电邮联系)
在SQL SERVER中,外码是怎么建立的?有什么作用?~

外码就是其他字段的主码,外码的取值只能是主码。如果取其他的值就会报错。建立的时候指定是哪个表中的哪个字段的外码就行

主键Primary key,唯一标示一个实体。是保证数据库的实体完整性,保证数据中数据的正确性和合理性,取值非空唯一。例子:create table 学生表(学号 int primary key)
外键Foreign,是用来使表与表之间联系。用来保证数据库的参照完整性,外键的取值必须来自参照表参照列的值,可以为空也可不为空。例子:create table 选课表(学号 int foreign key references 学生表(学号))

连接查询与内外键的关系:

连接的 连接条件:A表的主键 = B表的外键如果做连接的两表没有主外键关系,那么连接结果是笛卡尔积,没有意义。
例:学生表和选课表做连接,select *from 学生表,选课表where 学生表.学号(主键)=选课表.学号(外键)

主外键可以建级联级触发器,用来做级联删除、更新。作用原理还是因为主外键将两表联系。

个人理解,仅供参考。主码是用于唯一标识一行数据的,类似unique,比如插入的时候会查重。可能也有别的作用,如索引啊之类的,我没学透也不敢胡说。至于外码,是标识这一个关系(表)中的某个属性或者属性集是其他关系(表)中的码,那么插入时就会去另一个表中查看有没有这个码。如果没有,则插入失败。它能够用来增强两个关系(表)的联系。如果没有外码的限制,那么即使另一个表没有这个码,也能插入。
建议去看下廖雪峰的教学,举了个例子,写的很明白。

主码的作用是为了标记表中信息的唯一性(例如学生的学号,身份证,工资编号等等),比如说要记录一个班的学生信息,如果同名的情况下怎么区分呢?就是通过主码(学号)他在一张表中一定是唯一的。并且要求输入记录时,主码不允许空。这是必须遵循的数据库的实体完整性规则。
外码指在一个表中是主码另外一个表中不是主码,这样的字段我们把他定义为外码。例如:
学生(学号,姓名,性别,年龄)主码 :学号
课程(课程号,课程名,学分)主码:课程号
选课(学号,课程号,成绩)主码(学号,课程号)外码:学号(他在学生表中是主码) 课程好(他在课程表中是主码)
在选课表中学号和课程号都是外码。那么他们的取值要么为空,如果有值的话,这个值必须在学生表中存在。

《初中生读中职选什么专业好》
答:数控一般是采用通用或专用计算机实现数字程序控制,因此数控也称为计算机数控,简称CNC,国外一般都称为CNC,很少再用NC这个概念了。 培养目标:本专业培养与我国社会主义现代化建设相适应,德、智、体、美、劳全面发展,牢固掌握文化基础知识、具备从事数控加工和数控设备操作与管理的基础理论知识和综合职业能力,有较强的实践...

   

返回顶部
本页内容来自于网友发表,若有相关事宜请照下面的电邮联系
感悟网