关系表中的SQL插入命令

时间:2018-07-20 12:42:42

标签: sql foreign-keys

对不起,我是SQL的新手,我需要有关sql关系表的帮助。

我需要在关系表中插入查询。

在我的程序中,我有一本书,这本书有很多类别。

我是否应该为此建立一对多或多对多的关系?

以及如何执行插入命令以将书添加到表中。 我尝试做某事,但我不知道它的正确与否。

  

tblBook:BookID,BookName,CategoryID
      tblCat:CatID,CatName,

我创建外键

tblCat.CatID -> tblBook.CatID就是这样。我需要第三张桌子吗?还是足够?

那我不明白如何将许多类别插入书桌?

你能帮我吗?感谢您的建议。

2 个答案:

答案 0 :(得分:1)

您必须使用多对多关系,因为一本书可以具有不同的类别,而一本书可以用于不同的书籍。

您需要3张桌子:

  

tblBook:BookID,BookName

     

tblCat:CatID,CatName

     

tblRelationBookCat:BookID,CatID

要插入,您必须:

在您的tblBook中添加一本书

INSERT INTO tblBook(BookID, BookName) VALUES(1, 'Star-Wars');

在tblCat中添加类别

INSERT INTO tblCat(CatID, CatName) VALUES(1, 'Sci-Fi');

在您的tblRelationBookCat中添加关系

INSERT INTO tblRelationBookCat(BookID, CatID) VALUES(1,1);

答案 1 :(得分:0)

简单来说,您与两个表建立了关系。您还应该建立一对多关系。可以,不需要创建第三个表。在插入时,您需要类别表上的行。因为,在逻辑上在书本表上添加具有外键值的行时,必须在类别表的主键上添加一个存在的类别ID。

示例:

tblCat            |  tblBook
--------------    |  ---------
CatID  CatName    |   BookID      BookName       CategoryID
1      Sci-Fi     |     1         Star-Wars          1
2      Adventure  |     2         Witcher            2
                  |     3         Romeo & Juliet     3 (???)

SQL查询:

INSERT INTO tblBook(BookName, CategoryID) VALUES('Star-Wars',1);