数据库表中的主键和外键

数据库表中的主键和外键,第1张

主外键的存在是依托两个实体之间的关系而存在的;

比如班级学生的关系:

一个班级可以有多个学生,并且一个学生只能属于一个班级,这就是一对多的关系;

那么设计数据库的时候就应该在学生表内存放班级的ID作为外键,为什么不在班级表内放学生呢?

因为,你想一想班级表内如果放学生那么记录可能就是这样:

1班ID

1班

xx同学id

1班ID

1班

xx同学id

这是不允许的,班级表内班级为主键,是唯一的不允许相同记录的;

下面简单给你讲下大概建成的表结构

--建班级表

create

table

class(

classid

int

primary

key,--定义班级ID为主键

classname

varchar(15)

)

--建学生表

create

table

students(

studentid

int

primary

key,--定义学生ID为主键

classid

int

,--外键值,跟班级表classid

属性类型相同

stuname

varchar(20),--学生姓名

---定义外键

foreign

key(classid)

references

class(classid)

--本表classid是基于class表classid的外键

)

---------

如上定义了主外键后,两个表间的关系就是一对多的关系了,并且学生表内的classid必须依托班级表的classid存在,也就是说外键必须要主键存在的时候才能创建,例如:

--在班级表为空的情况往学生表插入一条记录是不允许的:

insert

into

students(studentid,classid,stuname)values(1,1,'小明')

系统会抛出异常提示主键表班级表内班级ID不存在这样是不允许插入的;

必须要先往班级表内插入一条记录:

insert

into

class(classid,classname)values(1,'一班')

后才能执行插入前面一条往学生表插入信息的语句

--------------可了解一些了?真累啊

-〉INDEX

(category_id),

->

FOREIGN

KEY

(category_id)

REFERENCES

categories

(category_id),

->

CONSTRAINT

fk_member

FOREIGN

KEY

(member_id)

REFERENCES

members

(member_id),

->

PRIMARY

KEY(article_id)

范例中的添加外键约束就是这种形式

如果是概念的问题,直接参考书籍,一般添加外键约束,主要在创建表中

可以用创建关系图的方式进行约束,步骤如下

企业管理器中打开数据库,新建关系图,选出自己所要的几张表,然后将对应的外键用鼠标连接到另一张表的主键上就行了

ps 环境 sql2000

以上就是关于数据库表中的主键和外键全部的内容,包括:数据库表中的主键和外键、SQL中如何为表添加外键约束、在SQL中如何创建外键约束等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9450180.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存