1. 程式人生 > >資料庫表與表的三種方式

資料庫表與表的三種方式

表和表之間,一般就是三種關係:一對一,一對多,多對多

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