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

 

posted @ 2020-08-22 22:45  寂静音无  阅读(139)  评论(0)    收藏  举报