我已经看过很多数据库的ER图和概念模式,但我仍然不是很清楚如何创建表并查询它们?表之间的关系?
例如,下面是一个模式数据库,如何创建表并查询它?
说我需要执行一个查询来查找所有的电影,其中包括流派中的关键词“美国”,“行动”(类型ID = 126)。有任何想法吗?
我已经看过很多数据库的ER图和概念模式,但我仍然不是很清楚如何创建表并查询它们?表之间的关系?
例如,下面是一个模式数据库,如何创建表并查询它?
说我需要执行一个查询来查找所有的电影,其中包括流派中的关键词“美国”,“行动”(类型ID = 126)。有任何想法吗?
大多数可以创建ER图的工具也可以生成实现数据库所需的SQL语句。否则,你必须手动完成它,通过阅读图表并将它自己翻译成SQL。
所以,看ER图,你可以写
CREATE TABLE Film (
Id INTEGER PRIMARY KEY,
Title VARCHAR(35) NOT NULL,
Description VARCHAR(256) NOT NULL,
Year INTEGER NOT NULL CHECK (Year > 1900),
Rating INTEGER NOT NULL DEFAULT 3 CHECK (Rating BETWEEN 1 AND 5)
);
该图像不显示的数据类型(如VARCHAR(35))和约束(如年度> 1900),所以我只是猜测。
现在你只需要在表格中插入数据,你就可以走了。
select Film.*
from Film
inner join FilmGenre on FilmGenre.FilmId = Film.Id
inner join Genre on Genre.Id = FilmGenre.GenreId
where Film.Title like '%America%'
and Genre.Name = 'Action'
非常感谢,但流派编号126呢? – homlyn 2011-03-15 15:10:09
如果你告诉我你需要一个流派“动作”,那么我不需要按流派编号126进行查询。但是如果你想这样做,只需将最后一行替换为“and Genre.Id = 126” – 2011-03-15 18:28:14
这不是ER图。它看起来更像是Microsoft Access的屏幕截图,与任何公认的ER图表符号或ER建模惯例无关。 – sqlvogel 2011-03-15 13:15:22
同意dportas。而且由于它是Access,当你绘制它们时,表格就在那里。在其他工具中,您有一个“生成到数据库”的步骤。 – 2011-03-15 13:58:17