Mysql 表之间的关系?

Mysql 表之间的关系?,mysql,database,database-design,Mysql,Database,Database Design,我看过许多数据库的ER图和概念模式,但我仍然不太清楚如何从中创建表并查询它们 例如,下面是一个模式数据库,如何从中创建表并查询它 假设我需要执行一个查询,以查找类型“动作”(类型ID=126)中包含关键字“美国”的所有电影。有什么想法吗?大多数可以创建ER图的工具也可以生成实现数据库所需的SQL语句。否则,您必须手动执行此操作,方法是读取图表并自己将其转换为SQL select Film.* from Film inner join FilmGenre on FilmGenre.Film

我看过许多数据库的ER图和概念模式,但我仍然不太清楚如何从中创建表并查询它们

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


假设我需要执行一个查询,以查找类型“动作”(类型ID=126)中包含关键字“美国”的所有电影。有什么想法吗?

大多数可以创建ER图的工具也可以生成实现数据库所需的SQL语句。否则,您必须手动执行此操作,方法是读取图表并自己将其转换为SQL

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'
所以,看看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),所以我只是猜测


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

这不是ER图。它看起来更像是微软Access的截图,与任何公认的ER图符号或ER建模约定无关。同意dportas。由于是Access,所以在绘制表格时,表格就在那里。在其他工具中,在某个点上有一个“生成到数据库”步骤。但是如何通过阅读此图来创建表呢??是使用创建表格命令吗??我说的是MySQL,不是SQL。上面的一个是sql,但我不熟悉sql。@homlyn:但它是dportas和Stephanie Page正确的——我相信他们是正确的——您正在查看Access数据库,表已经在那里了。只要插入数据。如果你告诉我你想要一个流派“动作”,那么我不需要按流派id 126查询。但如果您想这样做,只需将最后一行替换为“and Genre.Id=126”