表之间的关系?

时间:2011-03-15 12:59:03

标签: mysql database database-design

我已经看过许多数据库的ER图和概念架构,但是我还不是很清楚如何从中创建表并查询它们?

例如,下面是一个架构数据库,如何从中创建表并查询它?

enter image description here

假设我需要执行查询以查找在“动作”类型中包含关键字“America”的所有电影(流派ID = 126)。任何想法?

2 个答案:

答案 0 :(得分:0)

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'

答案 1 :(得分:0)

大多数可以创建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))和约束(如Year> 1900),所以我猜对了。

现在你只需要在表格中插入数据,就可以了。