码迷,mamicode.com
首页 > 数据库 > 详细

数据库查询

时间:2017-05-09 22:31:36      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:数据库查询   sql语句   笛卡尔   数据表   记录   

    前两天,做了一个关于信息系统的综合索引。我用的sql语句拼接的方式,在这个过程中,我发现当我使用并和非逻辑的时候,一切正常。可是,当使用或逻辑的时候,发现全集变大了,就是查出来很多重复的记录(我是两个表联立,返回一个数据表的实体。),我就将sql语句拿到数据库中去直接查找,发现结果一样。去网上查阅了一些资料,发现是数据库的关联出现了问题。因为数据没有任何的关联约束。两个表联立形成的集合就是两个表的笛卡尔乘积,所以当你取并集的,就会将全集里面的数据取出来。所以集合看起来就是变大了,出现这种问题,其实就是表联合的时候出现了一些无意义的数据。这也是数据库外键约束的意义所在。最后我也没有再去更改表的属性,将所谓的外键约束写在sql语句里面,就是当你条件的逻辑运算运算完成后,在跟我认为的全集(表联合有意义的数据)取一个交集。

    以上全是自己的见解,仅供参考。但是通过这次实践,我知道了数据库外键存在的意义。所以说,数据库原理还是很重要的。

数据库查询

标签:数据库查询   sql语句   笛卡尔   数据表   记录   

原文地址:http://12863969.blog.51cto.com/12853969/1923827

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!