資料庫表與表的三種方式
表和表之間,一般就是三種關係:一對一,一對多,多對多
1、一對一:資料庫表中的資料結構,我們用人與車一 一對應的方式來描述一對一的資料表結構,type是區分這條資料是人還是車,master對應是的主人(車的主人是哪個id,car對應的是那輛車的id)
SQL程式碼中,我們先建立這一張表: 注--if not exists的意思是 如果不存在***就如何如何,在這裡就表示,如果這個資料庫中沒有這個表,就建立本表
CREATE TABLE IF NOT EXISTS person (
id int primary key autoincrement,
name varchar(50),
type int,
master int,
car int
);
插入資料:
insert into person values(1,"小馬",1,0,1);
insert into person values(2,"小虎",1,0,2);
insert into person values(3,"小龍",1,0,3);
insert into person values(4,"小牛",1,0,4);
insert into person values(5,"寶馬5系",1,1,0);
insert into person values(6,"賓士E系",1,2,0);
insert into person values(7,"漢蘭達",1,3,0);
insert into person values(8,"路虎攬勝",1,4,0);
對照表我們可以發現:小馬 -- 寶馬5系
小虎 -- 賓士E系
小龍 -- 漢蘭達
小牛 -- 路虎攬勝
通常呢為了查詢方便,會建倆張表,但是實際專案中為了節省空間,一般都是一張表,重點來了 !!! 這時我們可以建檢視,想當年我學資料庫課程的時候,死都理解不了檢視和儲存是幹什麼,現在用這個例子可以很清晰的說明什麼是檢視,首先在邏輯上我們可以把上述表重中的資料分為倆組,一組是以人為主的,一組是以車為主的,建立這麼兩類檢視(虛表)
有個小概念我們需要普及一下,檢視是一種邏輯概念,它並不獨立佔用實體記憶體,是依附在資料表上的,對檢視進行修改時,相應的表資料也會被改動
建立檢視:create view masterView as(select * from person where type = '1' ); 這是人的檢視
create view carView as(select * from person where type = '0' ); 這是車的檢視
要求:查出哪些人擁有的車是什麼?
執行查詢:
1、原始方法:select masterView.name AS car,carView.name AS master FROM masterView,carView where masterView.id =carView.master ANDcarView.id =masterView.car
2、連線方法:select mansterView.name AS car,carView.name AS master FROM masterView INTER JOIN carView ON masterView.id =carView.master ANDcarView.id =masterView.car