1. 程式人生 > >數據庫查詢

數據庫查詢

數據庫查詢 sql語句 笛卡爾 數據表 記錄

前兩天,做了一個關於信息系統的綜合索引。我用的sql語句拼接的方式,在這個過程中,我發現當我使用並和非邏輯的時候,一切正常。可是,當使用或邏輯的時候,發現全集變大了,就是查出來很多重復的記錄(我是兩個表聯立,返回一個數據表的實體。),我就將sql語句拿到數據庫中去直接查找,發現結果一樣。去網上查閱了一些資料,發現是數據庫的關聯出現了問題。因為數據沒有任何的關聯約束。兩個表聯立形成的集合就是兩個表的笛卡爾乘積,所以當你取並集的,就會將全集裏面的數據取出來。所以集合看起來就是變大了,出現這種問題,其實就是表聯合的時候出現了一些無意義的數據。這也是數據庫外鍵約束的意義所在。最後我也沒有再去更改表的屬性,將所謂的外鍵約束寫在sql語句裏面,就是當你條件的邏輯運算運算完成後,在跟我認為的全集(表聯合有意義的數據)取一個交集。

以上全是自己的見解,僅供參考。但是通過這次實踐,我知道了數據庫外鍵存在的意義。所以說,數據庫原理還是很重要的。

數據庫查詢