数据库表与表的三种方式

表和表之间,一般就是三种关系:一对一,一对多,多对多

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值