sql数据库,以下创建命令我看不懂啊,能 帮我解释下么

createtablebanji_jiaoshi_mapping(banji_idintconstraintfk_banji_idforeignkeyreferences... create table banji_jiaoshi_mapping
(
banji_id int constraint fk_banji_id foreign key references banji(banji_id),
jiaoshi_id int foreign key references jiaoshi(jiaoshi_id),
kecheng nvarchar(20),
constraint pk_banji_id_jiaoshi_id primary key (banji_id, jiaoshi_id, kecheng)
)

每一句话都是什么意思啊,最好能详细点说明下啦 谢啦
展开
 我来答
badkano
2013-10-27 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885365
团长

向TA提问 私信TA
展开全部
create table banji_jiaoshi_mapping --创建表,名为banji_jiaoshi_mapping 
(
 banji_id int constraint fk_banji_id foreign key references banji(banji_id), --字段banji_id ,类型整型,是banji表banji_id字段的外键
 jiaoshi_id int foreign key references jiaoshi(jiaoshi_id),--这个按照上边的解释你就应该理解了
 kecheng nvarchar(20),--kecheng字段是字符类型长度20
 constraint pk_banji_id_jiaoshi_id primary key (banji_id, jiaoshi_id, kecheng )--其中banji_id, jiaoshi_id, kecheng这三个字段作为联合主键
)
更多追问追答
追问
banji_id int constraint fk_banji_id foreign key references banji(banji_id), 
就是说,我这里创建了一个名叫banji_id 的字段,但是他的规则就跟外边那个引用的banji_id是一样的。
这难道就好比,我先创建一个a()函数,然后宏定义 b()函数就是a()函数。最后我再创建一个b()函数?
追答
外键的意思是

banji表里banji_id这个字段,假如里边存的数据有1,2,3这三条

那么在你banji_jiaoshi_mapping 表banji_id字段引用时,只能最多出现1,2,3这三种banji_id,而不可能出现这三种以外的数据
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式