我已經看過很多數據庫的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