


SQL server數(shù)據(jù)在不同數(shù)據(jù)庫中的應(yīng)用
在軟件開發(fā)的初始階段,開發(fā)商們總是想把整個系統(tǒng)的最小的細(xì)節(jié)設(shè)計好了,然后再去單線程的編寫代碼。這樣軟件開發(fā)完成需要很長時間,但開發(fā)商們一直都在這么做。
所以開發(fā)者不得不去縮小他們的野心,先設(shè)計好一個小系統(tǒng),然而這個小系統(tǒng)只是解決了整個系統(tǒng)難題中的一部分。這導(dǎo)致了由不同的團隊設(shè)計和創(chuàng)建的許多小系統(tǒng)幾乎都不能相互之間兼容。
目前,許多組織都聘請了數(shù)據(jù)庫建模者或者DBA,這些人能監(jiān)督數(shù)據(jù)庫設(shè)計和開發(fā)。不幸的是,那些組織只有在出現(xiàn)某些狀況后,才會意識到在他們的員工中需要這樣的人。
數(shù)據(jù)建模者和DBA面對的一個非常普遍的問題就是,如何在不同的數(shù)據(jù)庫中解析SQL數(shù)據(jù)。本文將通過一個可靠的方法來說明這個問題。
一個實例
在這個實例方案中,有兩個包含相似數(shù)據(jù)的數(shù)據(jù)庫:一個使用術(shù)語OrderNumber,另一個使用術(shù)語OrderNo。第一個數(shù)據(jù)庫有關(guān)鍵字而第二個數(shù)據(jù)庫沒有。
首先,你會在兩個數(shù)據(jù)庫中發(fā)現(xiàn)它們的順序是相似的。清單A創(chuàng)建了兩個數(shù)據(jù)庫(Test_Cross_1和Test_Cross_2),每個數(shù)據(jù)庫中有一個表(分別是Orders_1和Orders_2)。
假設(shè)Orders_1包括這些行:
|
一旦你明白了如何引用表SQL執(zhí)行合并操作是很簡單的。簡而言之,你要有合法的名字。如清單B 所示。這將不會成功,因為Order_2包括一行Order_1沒有的數(shù)據(jù)。改變連接,加入對外連接符也不會成功,就像你在清單C中看到的那樣。第二個查詢得到跟第一個查詢相同的結(jié)果,因為OrderNo 301不存在于第一個表中。找到這一行,你必須在第二個查詢中,將這個表的順序反轉(zhuǎn)。如清單D。現(xiàn)在你就能發(fā)現(xiàn)不匹配的行了。
|
假設(shè)有一些行存在于Order_1中而不存在于Order_2中。你將上面的查詢翻轉(zhuǎn),它也能工作,然而,隨后你會得到兩個查詢和兩個結(jié)果集,并結(jié)束你的查詢,這些你都必須手動比較。如果每個表只有四行,這是不困難的,但是想象一下如果有 4,000行記錄的話,怎么使用這種不切實際的方法進(jìn)行比較呢。你必須對兩個表的每行沒出現(xiàn)在另外那張表的記錄進(jìn)行檢查。
|
|
|
|
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動項
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機IP講解
- CentOS7使用hostapd實現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯
- 解決Centos7雙系統(tǒng)后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解