多表查询和子查询

	多表联查

一对一: 一张表的一条记录一定只能与另外一张表的一条数据进行对应

一对多: 一个尸体的某个数据与另外一个实体的多个数据有关联关系,一对多的关系在设计的时候需要设计表外键(constraint)约束 (foreign key)外键

多对多(3个表,2个实体表,1个关系表): 一个实体的到时见对应另外一个实体的多个数据,另外实体的数据也同样对应当前实体的多个数据;
比如:一个学生可以有多个老师,一个老师可以教多个学生;
解决方案:创建一个中间表,专门用来维护多表之间的对应关系,通常是能够唯一标识出数据的字段(主键);
中间表,用来表述主键表和外键表对应关系的
constraint 约束
foreign key 外键

foreign key就是表与表之间的某种约定关系,由于这种关系的存在,能够让表与表之间的数据更加的完整,关联性更强

foreign key的语句的句例: FOREIGN KEY(id) REFERENCES 关联的表名(id);

表的外键必须是另一张表的主键

外键的概念:删除主键信息时,当该主键字段值在外检表中存在时,该记录是不能删除的,要把外检表的相关信息删除之后,才能删除

交叉查询: 也叫笛卡尔积查询,将左表和右表的信息,做一个乘积将所有信息查询出来,会产生临时表,比较占用内存,生成的记录数 = 表1数据个数 * 表2数据个数

内连接查询: 内连接关键字;inner join on 查询两张表,设定条件,将两张表中对应的数据查询出来,不会产生笛卡尔积和临时表,性能高

左外连接: 关键字;left join on 设定条件,将两张表对应的数据查询出来,同时将左表自己没有关联的数据也查询出来
这里注意:join前面是左表,后面是后表

右外连接: 关键字;right join on 设定条件,将两张表对应的数据查询出来,同时将右表自己没有关联的所有数据查询出来

联合查询: 例如; select * from 表名1 left join 表2 on 表1.id = 表2.外键id having price > 20;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值