我创建了两个表,animation_companies 和cartoon_characters。我收到了一份“文档来模拟主管的请求,将信息插入我创建的数据库中。数据如下:
Animation_Companies 表将仅包含这三 (3) 条记录:
Warner Bros.
Disney
Nickelodeon
Cartoon_Characters 表将仅包含十四 (14) 条记录,其中包含卡通名称、创建年份以及拥有该卡通的公司。
“Warner Bros.”、“Disney”和“Nickelodeon”公司仅用于展示目的。必须从 Animation_Companies 表引用它。
|Cartoon Name |Creation Year |Company
| ------------- | ------------- |----------- |
|Porky Pig |1935 |Warner Bros.|
|Daffy Duck |1937 |Warner Bros.|
|Elmer Fudd |1937 |Warner Bros.|
|Bugs Bunny |1940 |Warner Bros.|
|Foghorn Leghorn|1946 |Warner Bros.|
|Mickey Mouse |1928 |Disney |
|Goofy |1934 |Disney |
|Donald Duck |1931 |Disney |
|Elsa of Arendelle|2013 |Disney |
|Anna of Arendelle|2013 |Disney |
|Doug Funnie |1991 |Nickelodeon |
|Arnold Shortman|1985 |Nickelodeon |
|Tommy Pickles |1991 |Nickelodeon |
|Aang |2005 |Nickelodeon |
表animation_companies是使用以下语句创建的:
CREATE TABLE Animation_Companies
(
CompanyID INT PRIMARY KEY AUTO_INCREMENT,
CompanyName VARCHAR(100) NOT NULL
);
The table cartoon_characters was created using this statement:
CREATE TABLE Cartoon_Characters
(
cartoonID INT PRIMARY KEY AUTO_INCREMENT,
cartoonName VARCHAR(100) NOT NULL,
yearCreated INT,
OwningCompany INT NOT NULL,
CompanyID INT NOT NULL,
CONSTRAINT Cartoon_Characters_fk_Animation_Companies
FOREIGN KEY (CompanyID) REFERENCES Animation_Companies (CompanyID)
);
我已使用以下方法将数据插入到animation_companies 的记录中:
INSERT INTO animation_companies(CompanyName)
VALUES ('Warner Bros.'), ('Disney'), ('Nickelodeon');
我提出的问题如下:
“将数据插入Cartoon_Characters表中:
不使用列列表,编写语句插入卡通名称、创建年份以及所属公司。
备注:
将字符串用单引号引起来 注意你的间距 自动递增值使用 DEFAULT 公司由整数 ID 引用”
这个说法是我尝试过的:
INSERT INTO cartoon_characters
VALUES (DEFAULT, 'Porky Pig', 1935, 'Warner Bros.', 1),
(DEFAULT, 'Daffy Duck', 1937, 'Warner Bros.', 1),
(DEFAULT, 'Elmer Fudd', 1937, 'Warner Bros.', 1),
(DEFAULT, 'Bugs Bunny', 1940, 'Warner Bros.', 1),
(DEFAULT, 'Foghorn Leghorn', 1946, 'Warner Bros.', 1),
(DEFAULT, 'Mickey Mouse', 1928, 'Disney', 2),
(DEFAULT, 'Goofy', 1934, 'Disney', 2),
(DEFAULT, 'Donald Duck', 1931, 'Disney', 2),
(DEFAULT, 'Elsa of Arendelle', 2013, 'Disney', 2),
(DEFAULT, 'Anna of Arendelle', 2013, 'Disney', 2),
(DEFAULT, 'Doug Funnie', 1991, 'Nickelodeon', 3),
(DEFAULT, 'Arnold Shortman', 1985, 'Nickelodeon', 3),
(DEFAULT, 'Tommy Pickles', 1991, 'Nickelodeon', 3),
(DEFAULT, 'Aang' 2005, 'Nickelodeon', 3);
一种方法是先将数据插入到临时表中。
INSERT INTO #SomeTempTable
VALUES ('Porky Pig', 1935, 'Warner Bros.', 'Warner Bros');
然后你
JOIN
它到Animation_Companies
桌子
INSERT INTO cartoon_characters(cartoonName, YearCreated, OwningCompany, CompanyId)
SELECT t.cartoonName, t.YearCreated, t.OwningCompany, a.CompanyId
FROM #SomeTempTable t
JOIN Animation_Companies a ON a.CompanyName = t.CompanyName
2个错误
表名(和列名)也要保持一致,以防遇到区分大小写的问题。
否则你的插入是正确的。