空间数据查询课件.ppt
空間數據查詢5.1對象查詢5.1.1對象1.點對象:點是有特定的位置,維數為零的物體。2.線對象:是GIS中非常常用的維度為一的空間組分,表示對象和它們邊界的空間屬性,由一系列座標表示。3.多邊形對象:面狀實體也稱為多邊形,是對湖泊、島嶼、地塊等一類現象的描述。通常在數據庫中由一封閉曲線加內點來表示。5.1.2對象查詢圖5-1選擇好記錄的窗口圖5-2“流覽表”對話框圖5-3查詢結果流覽窗口5.2SQL查詢SQL(StructureQueryLanguage)是結構化查詢語言,是一套強大的查詢系統。語言簡單、指令簡潔、操作簡單、功能強大,被廣泛運用在相互關聯的資料庫中,並能完成十分複雜的查詢和選擇。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.4SQL選擇①打開希望查詢的表(倘若尚未打開的話)。②選擇“查詢”→“SQL選擇”。③打開一個地圖窗口或一個流覽窗口(若用戶想看到查詢結果)。④MapInfo自動選中結果表中所有行。⑤若希望對查詢表做一個永久拷貝,選擇“檔”→“另存為”。5.2.5“選擇列”字段1.計算派生列“SQL選擇”可以計算派生列並將其保存在結果表中。【例5-1】顯示一個進行加法運算的派生列表達式,它將兩個數值型列相加。例中假設Purchase92和Purchase93都是數值型字段。選擇列:Purchase92Purchase932.選擇顯示在結果表中的列結果表中只包括在“選擇列”域中輸入的一個或多個列。這一點在表中有許多列,而只希望使用其中少數列(可能是因為在螢幕上一次只能顯示其中少數列)時很有用。輸入一系列列名:①在“從表”域中輸入表名(若還未輸入的話)。可以直接輸入表名或是在“表”下拉式列表中選擇表名。②單擊“選擇列”域,該域中出現插入符。③如果該域中有星號,先用〈Backspace〉鍵或〈Delete〉鍵將其刪除。“選擇列”域中可以含有一個星號或者一系列列名。④在對話框右側的“列”下拉列表中選擇一個列名。MapInfo將該列名複製到“選擇列”域中。⑤如果希望查詢中包含多個列,可以在“列”下拉式列表中選擇其他列名。在選擇其他列名時,MapInfo自動插入逗號以分隔列名。3.使用“SQL選擇”對話框的“選擇列”字段使用“選擇列”域來指定查詢結果表中應該出現哪些列。若想結果表中含有與原始表相同的列集,在“選擇列”域中輸入一個星號(*)。若想結果表中含有的列集與原始表不同,刪除星號,並輸入用逗號分隔的一系列列名或運算式,如下所述。“選擇列”域可包含星號或一系列列表達式,但二者不可得兼。在填寫“選擇域”之前,請先填好“從表”域。若查詢涉及多個表,每個列名前必須加上表名,用句點分開表名和列名。這樣,若你執行涉及兩個表的查詢,其中一個是“Canada”表,用戶希望查詢包括“Canada”表的“Population”列,則必須使用列表達式Canada.Population。無論何時使用兩個或多個表,“列”下拉式列表會自動將表名插入到列名前。5.2.6“條件”字段1.按行序連接表若兩個表沒有公共列,還可以按照記錄的順序進行表連接。若知道一個表的第一條記錄對應於另一個表的第一條記錄,或更一般地說,一個表的第N條記錄對應於另一個表的第N條記錄,就可以通過引用一個特殊的名為RowID的列將兩個表連接。RowID列含有代表著表中每個記錄的行號的整數。因此