MySQL联结表

作者: IT的咸鱼 | 来源:发表于2018-07-23 20:12 被阅读16次

    关系表:

    把信息分解成多个表,一类数据一个表,各表通过某些常用值(即关系设计中的关系(relational))互相关联;

    外键(foreign key):

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

    优点:

    ①数据信息不重复,从而不浪费时间和空间

    ②如果某个数据信息变动,可以只更新该表中的某个记录,相关表数据不用变更

    ③数据无重复,可以更有效的存储和方便的处理,伸缩性强(能够适应不断增加的工作量而不失败,设计良好的数据库或者应用程序称为可伸缩性好(scale well))

    约束

    约束是一种限制,它通过对表的行或者列的数据作出限制,来确保表的数据完整性,唯一性

    主键约束:PRIMARY KEY

    外键约束:FOREIGN KEY

    唯一约束:UNIQUE

    非空约束:NOT  NULL

    默认值:DEFAULT

    联结表:

    联结是一种机制,用来在一条SELECT语句中关联表,因此称为联结。使用特殊的语法,可以联结多个表返回一组输出,联结在运行时关联表中正确的行。

    使用SELECT语句编写创建联结

    SELECT name,age,score,teacher  from students,scores where  stidents.stu_id  = scores.stu_id;

    where子句的重要性

    在一条select语句中联结几个表时,相应的关系是在运行中构造的;在联结两个甚至多个表时,实际上是将第一个表中的每一行与第二个表中的每一行配对,where子句作为过滤条件,它只包含匹配的给定条件的行。

    没有where子句,第一个表中每个行将与第二个表中的每个行匹配,而不管逻辑上是否可以配在一起。

    笛卡尔积

    由没有联结条件的表关系返回的结果称为笛卡尔积(检索出的行的数目将是第一个表中的行数乘以第二个表中的行数);

    例如:select A_name,B_name,B_mobile from A, B order by A_name, B_name;

    应保证所有联结都有where子句,否则MySQL将返回比想要的数据多得多的数据,还应保证where子句的正确

    叉联结:有时我们会听到返回叉联结(cross  join)的笛卡儿积的联结类型

    内部联结

    等值联结(equijoin):基于两个表之间的相等测试,也称为内部联结

    例如:select A_name,B_name,B_mobile from A inter join B on A_name = B_name;

    这条SQL语句中,select语句与之前的相同,相较于上面的from,这里使用了inter join指定(当使用inter join时,联结条件用on子句而不是where子句,在这里on等同于where)

    相关文章

      网友评论

        本文标题:MySQL联结表

        本文链接:https://www.haomeiwen.com/subject/ndxsmftx.html