1.我们展示多个表的全连接,按照先后顺序,将各个字段安排在同一行,若出现重复字段,则会自动设置(1)(2)诸如此类来划分关系

SELECT * from students,scores  #/全连接   笛卡尔积  /;

MYSQL用大表关联小表还是_学习

MYSQL用大表关联小表还是_学习_02

但是是将每一行的数据相乘,出现冗杂数据(不需要的数据)

2.SELECT * from students,scores where students.SID=scores.SID  /*用where对select出来

的内容进行重定向*/     

   

MYSQL用大表关联小表还是_MYSQL用大表关联小表还是_03

我们这里使用了用where对select出来的内容进行重定向,减少了大量的冗杂信息

3.SELECT students.SID,students.SName,courses.CName,scores.Score

from students,scores,courses

where students.SID=scores.SID and scores.CID=courses.CID 

/*使用selec选中多个表中的字段,再使用where对表之间建立明确联系,尤其是在对象表之间建立相同字段的连接*/
/*当出现三张表之后,就是要寻找中立表和另外二者的连接点*/

MYSQL用大表关联小表还是_字段_04

此时,我们通过使用select在三张表中进行数据的处理,分别取出表中字段名称,用from集成到单表后,开始筛选,这里尤其要注意在where重定向时,我们需要注意,在三个表中,会有一个表拥有其他表都有的单个字段,这样才能建立

MYSQL用大表关联小表还是_数据库_05

这样的关系

4./*下面是双表示例*/
SELECT students.SID,students.SName,scores.Score from  students,scores where students.sid=scores.SID 

MYSQL用大表关联小表还是_数据库_06

5.这里展示两种连接方式,一个是全连接,直接使用‘,’将二表隔开

且,<1>全连接可以直接使用where来选择,来重定向

<2>而内连接则是使用inner join 将二表连接到一起去,而inner join内部链接的话,就要使用on来代替where在全连接中的作用,给出限制规则,

SELECT * from students ,scores #全连接
/*全连接用where,内连接用on和子句where*/
SELECT * from students INNER JOIN scores#内部链接  

SELECT * from students INNER JOIN scores on students.sid=scores.sid         

MYSQL用大表关联小表还是_字段_07

6. SELECT*from students  join scores on students.SID=scores.SID where Score>80

MYSQL用大表关联小表还是_字段_08

而在这里了,我们可以看见,在inner join内部链接中我们也使用了where,显示出来,where更多的是起到筛选的的作用

7.SELECT st.sid,st.SName,c.CName,sc.Score

FROM students st join scores sc  

on st.sid = sc.sid join courses c on sc.cid=c.CID

MYSQL用大表关联小表还是_学习_09

这里就需要一点编程基础了,因为我们使用了面向对象的法则在这里进行命名的简化,以方便使用,命名的简化我们在from时开始简化,所以我们在这里时先使用from进行命名,再去select,这样才能起到简化的作用,当然,现在的开发环境navicat会自动那个提示,也可以不简化,这列给大家提供一个新的方法

FROM students st join scores sc  on st.sid = sc.sid 
这里是重命名表格,然后将两表通过(inner)join组合到一起,再用on去筛选【重定向字段

这个时候我们就有了initial table,而之后的join courses c on sc.cid=c.CID

则是将courses表格与前两个表格组合成的新表格,建立内连接inner join,再加上on来重定向字段即可