mysql中表联结_Mysql表联结

主键和外键

主键(primary key):一列(或一组列),其值能够唯一区分表中每个行 。

外键(foreign key) 外键为某个表中的一列,它包含另一个表的主键值,定义了两个表之间的关系

例: select iname,vname from class.words,info.words where  class.words.iname = info.words.vname order by iname,vname;

笛卡尔乘积

没有联结条件的表,检索出的行的数目将是第一个表中的行数乘以第二个表中的行数

可以理解为  A表 有1,2,3行数据   B表有a, b, c数据

搜索出来的就是1-a 1-b 1-c  2-a  2-b 2-c 3-a -3-b 3-c

内联结

两个表之间的相等测试

select 列  from    表INNER JOIN   想要测试关系的表 ON  条件

多表联结

select语句中可以联结的表数目没有限制,创建联结的基本规则也相同,首先列出所有表,燃火定义表之间的关系

例:    select iname,vname,jname from i,v,j where iid = vid  and iid=vid;

自联结

在同一个表中做联结操作  自联结的执行效率高于子查询

左联结

一左边表为基准,按照过滤条件查询右边表的记录,匹配到,那么久组合成一行显示结果

没有匹配到,只显示左边表的字段,右边用空值表示

例如

select * from s left join c on  s.id=c.id

右联结

以右边表为基准

select * from s right join c on  s.id=c.id

联合查询

union

将结果组合成单个结果集

使用union的每个查询必须包含相同的列,列数据内容必须兼容。

select * from s left join c on  s.id=c.id

union

select * from s right join c on  s.id=c.id

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值