




已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第5章 空間數(shù)據(jù)查詢,5.1 對象查詢 5.1.1 對象 5.1.2 對象查詢 5.2 SQL查詢 5.2.1 通過“選擇”來查詢 5.2.2 通過“選擇SQL”查詢 5.2.3 “SQL選擇”的操作示例,5.2.4 SQL選擇 5.2.5 “選擇列”字段 5.2.6 “條件”字段 5.2.7 “按列排序”字段 5.2.8 “按列分組”字段 5.2.9 聚合函數(shù) 5.3 習題5,5.1 對象查詢,5.1.1 對象 1. 點對象 :點是有特定的位置,維數(shù)為零的物 體 。 2. 線對象:是GIS中非常常用的維度為一的空 間組分,表示對象和它們邊界的空間屬性,由一 系列坐標表示。 3. 多邊形對象 :面狀實體也稱為多邊形,是對 湖泊、島嶼、地塊等一類現(xiàn)象的描述。通常在數(shù) 據(jù)庫中由一封閉曲線加內點來表示。,5.1.2 對象查詢,圖5-1 選擇好記錄的窗口,圖5-2 “瀏覽表”對話框,圖5-3 查詢結果瀏覽窗口,5.2 SQL查詢,SQL(Structure Query Language)是結構化查詢語言,是一套強大的查詢系統(tǒng)。語言簡單、指令簡潔、操作簡單、功能強大,被廣泛運用在相互關聯(lián)的數(shù)據(jù)庫中,并能完成十分復雜的查詢和選擇。,5.2.1 通過“選擇”來查詢,圖5-4 “查詢”菜單,圖5-5 “選擇”對話框,1. 從表中選擇記錄 2. 滿足條件 3. 存結果于表 4. 結果排序按列 5. 瀏覽結果 6. 保存模板 7. 載入模板,圖5-6 “表達式”對話框,5.2.2 通過“選擇SQL”查詢,1. 選擇列 2. 從表 3. 條件 4. 按列分組 5. 按列排序,6. 結果放入表 7. 瀏覽結果 8. 使用下拉列表 9. 保存模板 10. 載入模板,圖5-7 “SQL選擇”對話框,5.2.3 “SQL選擇”的操作示例,例如:查詢并顯示出人口大于3000萬的省份,圖5-9 滿足條件的瀏覽窗口,圖5-10 人口3000萬的省份單獨顯示,圖5-11 不排序 圖5-12 升序 圖5-13 降序,5.2.4 SQL選擇, 打開希望查詢的表(倘若尚未打開的話)。 選擇“查詢”“SQL選擇”。 打開一個地圖窗口或一個瀏覽窗口(若用戶想看到查詢結果)。 MapInfo自動選中結果表中所有行。 若希望對查詢表做一個永久拷貝,選擇“文件”“另存為”。,5.2.5 “選擇列”字段,1. 計算派生列 “SQL選擇”可以計算派生列并將其保存在結果表中。 【例5-1】顯示一個進行加法運算的派生列表達式,它將兩個數(shù)值型列相加。例中假設Purchase92和Purchase93都是數(shù)值型字段。 選擇列:Purchase 92 Purchase 93,2. 選擇顯示在結果表中的列 結果表中只包括在“選擇列”域中輸入的一個或多個列。這一點在表中有許多列,而只希望使用其中少數(shù)列(可能是因為在屏幕上一次只能顯示其中少數(shù)列)時很有用。 輸入一系列列名: 在“從表”域中輸入表名(若還未輸入的話)??梢灾苯虞斎氡砻蚴窃凇氨怼毕吕搅斜碇羞x擇表名。 單擊“選擇列”域,該域中出現(xiàn)插入符。 如果該域中有星號,先用Backspace鍵或Delete鍵將其刪除?!斑x擇列”域中可以含有一個星號或者一系列列名。 在對話框右側的“列”下拉列表中選擇一個列名。MapInfo將該列名復制到“選擇列”域中。 如果希望查詢中包含多個列,可以在“列”下拉式列表中選擇其它列名。在選擇其它列名時,MapInfo自動插入逗號以分隔列名。,3. 使用“SQL選擇”對話框的“選擇列”字段 使用“選擇列”域來指定查詢結果表中應該出現(xiàn)哪些列。若想結果表中含有與原始表相同的列集,在“選擇列”域中輸入一個星號(*)。 若想結果表中含有的列集與原始表不同,刪除星號,并輸入用逗號分隔的一系列列名或表達式,如下所述?!斑x擇列”域可包含星號或一系列列表達式,但二者不可得兼。在填寫“選擇域”之前,請先填好“從表”域。 若查詢涉及多個表,每個列名前必須加上表名,用句點分開表名和列名。這樣,若你執(zhí)行涉及兩個表的查詢,其中一個是“Canada”表,用戶希望查詢包括“Canada”表的“Population”列,則必須使用列表達式Canada.Population。無論何時使用兩個或多個表,“列”下拉式列表會自動將表名插入到列名前。,5.2.6 “條件”字段,1. 按行序連接表 若兩個表沒有公共列,還可以按照記錄的順序進行表連接。若知道一個表的第一條記錄對應于另一個表的第一條記錄,或更一般地說,一個表的第N條記錄對應于另一個表的第N條記錄,就可以通過引用一個特殊的名為RowID的列將兩個表連接。 RowID列含有代表著表中每個記錄的行號的整數(shù)。因此,任何表的第一條記錄的RowID值為1,第二條記錄的RowID值為2,依此類推。 要連接兩個表使得MapInfo匹配兩個表的第N條記錄,指定一個如下形式的“條件”表達式。 條件: TABLE_1.RowID = TABLE_2.RowID,2. 按地理關系連接表 若兩個表有圖形對象,MapInfo能根據(jù)那些對象之間的空間關系來連接表 。,圖5-10 對象包蘊關系,3. 連接兩個或多個表 MapInfo能利用該公共字段將兩表連接。,表5-1 Counties表,表5-2 Orders表,方法: 選擇列:* 從表:Counties, Orders 條件: Counties.CountyName = Orders.County,表5-1 Counties表,表5-2 Orders表,4. 執(zhí)行子選擇 MapInfo允許SQL選擇中有子選擇。子選擇是被放在“SQL選擇”對話框中的“條件”域內的選擇語句。 【例5-9】選擇states中超過4,000,000人的所有城市。 選擇列* 從表 cities 條件 obj within any(select obj from states where Pop_1990 4000000),5. 設置過濾規(guī)則 過濾條件是常用于比較列值與其它值的邏輯表達式。例如,下面的過濾條件使用大于運算符()來檢查Order_Amount列的值是否大于100。 “條件”:Order_Amount 100 如果查詢包括上述“條件”子句,MapInfo只選擇Order_Amount值大于100的行。 如果表達式被詞and或or隔開,“條件”子域可包含兩個或多個邏輯表達式。如果表達式被詞and連接,MapInfo只選擇滿足全部兩個條件的行。如果表達式被詞or連接,MapInfo選擇滿足任一條件的所有行。,6. 使用“SQL選擇”對話框的“條件”字段 “條件”域有好幾個作用。某些情況下,用戶可能要使用一個條件表達式來過濾表,以便只看到那些滿足一定準則的行。在其它情況下,可使用條件域來指定關系連接,從而查詢能包括二個或多個表中的列。 注意:不能在“條件”域中使用聚合函數(shù)。,5.2.7 “按列排序”字段,1. 選擇升序或降序排序 缺省情形下MapInfo按升序對表進行排序。要將字段按降序排以使大數(shù)字排在小數(shù)字前,可以在“按列排序”域中將desc放在列名字前。 【例5-12】查詢World表時,以下的Order By排序準則。按列排序:Population desc將該表按Population字段進行降序排序。 選擇列: * 從表: City_1K 按列排序 State, Population desc,2. 使用“按列排序”字段排序結果表 在“SQL選擇”對話框中使用“按列排序”域,可將結果表的記錄排序。排序影響在瀏覽窗口中記錄從上而下出現(xiàn)的順序。 【例5-13】按照State列對City_1K表排序。 結果表按州名排序;但是,在California組內各行中,城市并未排序,San Francisco出現(xiàn)在Anaheim之上。要改正這一問題,可以在“按列排序”域中輸入兩個列名: 選擇列: * 從表: City_1K 按列排序: State, City,5.2.8 “按列分組”字段,1. 按列分組示例 【例5-14】設想有一個顧客訂單表。該表中每一行表示單個訂單。表中一列包含訂貨銷售代理的名字,另一列含有顧客名字,還有一列包含訂貨量。 對每個銷售代理,可找出: 該代理的訂單數(shù)目。 該代理的平均訂貨量。 該代理的總訂貨量。 以下SQL選擇查詢產生所需結果: 選擇列 Sales_Rep, count(*), average(AMOUNT), sum(AMOUNT) 從表 Orders 按列分組 Sales_Rep,2. 使用“按列分組”字段分類匯總結果表 【例5-15】若有一個顧客數(shù)據(jù)庫,并按州名列分組,MapInfo會將所有得克薩斯州的顧客放入一組,所有加利福尼亞州的顧客放入另一組,等等。然后,MapInfo計算每一組的聚合信息(總計、平均等)。 指定分類匯總標準: 在“按列分組”域中,輸入MapInfo用于計算分類匯總的列的列名或列號。 例如,若要按州總計顧客表,可輸入表示顧客所在州的列的列名(如StateName)。 在“選擇列”域中,輸入同一列名(如StateName)。 在“選擇列”域中,輸入一個或多個運算符(Sum、Count Avg、Min或Max)。請記住用逗號分隔開聚合運算符。,5.2.9 聚合函數(shù),MapInfo提供以下聚合函數(shù): Count(*):計算一組中記錄總數(shù)。它簡單地使用*作參數(shù),因為它應用到整條記錄,而非某個特定字段。 Sum(表達式):計算一組中所有記錄的表達式總計值。 Avg(表達式):計算一組中所有記錄的表達式平均值。 Max(表達式):找出一組中所有記錄的表達式最大值。 Min
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 可穿戴醫(yī)療設備在皮膚癌監(jiān)測中的市場增長策略研究報告
- 2025屆內蒙古呼倫貝爾市海拉爾區(qū)鐵路第三中學英語八下期中達標測試試題含答案
- 2025年家具行業(yè)個性化定制生產綠色生產市場前景報告
- 2025年元宇宙時代基礎設施建設:區(qū)塊鏈技術深度應用案例分析報告
- 2025年元宇宙社交平臺用戶參與度提升策略研究
- 2025年元宇宙社交平臺虛擬現(xiàn)實與虛擬現(xiàn)實房地產游戲化應用創(chuàng)新研究報告
- 2025年元宇宙社交平臺虛擬現(xiàn)實社交平臺技術融合與創(chuàng)新趨勢報告
- 2025年醫(yī)院電子病歷系統(tǒng)優(yōu)化提升醫(yī)療數(shù)據(jù)質量深度報告
- 金融機構數(shù)字化轉型下風險管理的智能化與自動化報告001
- 2025屆內蒙古烏蘭察布市化德縣英語八下期末考試模擬試題含答案
- 深圳市羅湖區(qū)2025年小升初數(shù)學模擬試卷含解析
- 軸承加工合同協(xié)議
- 高爾夫俱樂部績效考核手冊
- 特鋼大學語文試題及答案
- 計劃用水管理辦法
- 2024-2025學年統(tǒng)編版七年級語文下學期期中考試模擬卷(含答案)
- 語言學導論知到課后答案智慧樹章節(jié)測試答案2025年春廣東外語外貿大學
- 2024-2025學年接力版(2024)小學英語三年級下冊(全冊)知識點歸納
- 2025年憲法知識競賽全套題庫及答案(共150題)
- 高空作業(yè)佩戴安全帶培訓
- 2025年春人教版英語七年級下冊 Unit 7 A Day to Remember(教學設計)
評論
0/150
提交評論