1. Trang chủ
  2. » Khoa Học Tự Nhiên

Bài 7 lựa chọn dữ liệu trong phần mềm mapinfo (tiếp theo )

13 500 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 640,26 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lựa chọn sử dụng Query chất vấn Với chức năng Select, sử dụng MapInfo chọn ra một tập hợp con của tập dữ liệu, sử dụng lưu các tập con thành những lớp riêng biệt, hay sử dụng trong phâ

Trang 1

Bài 7 (ti ế p theo)

Ch ọ n l ự a SQL

TÓM TẮT BÀI THỰC TẬP

Ê Nắm vững phương pháp lựa chọn dữ liệu Select, SQL Select

Ê Cấu trúc dữ liệu GIS

Ê Tạo ra những dữ liệu mới (Subset of a File)

Ê Lưu trữ các chất vấn

Ê Chất vấn mẫu

Ê Những cột dẫn xuất

Ê Tạo những cột ñịnh danh (Creating Column Aliases)

Ê Gộp dữ liệu

Ê Nhóm, sắp xếp theo cột

Ê Nối các Table sử dụng SQL

Ê Tìm thông tin trong cột dữ liệu–Sử dụng hàm InStr()

Ê Chọn những bản ghi dữ liệu chẵn hay lẻ

KIẾN THỨC LIÊN QUAN

Ê Kiến thức Hệ thống thông tin ñịa lý-GIS

Ê Những kiến thức, qui ước bản ñồ

PHẦN LÝ THUYẾT

Tổng quan

Trong chương trước, chúng ta ñã học làm cách nào tạo ra các chọn lựa trên màn hình sử dụng các công cụ

như Radius Select và Boundary Select Trong bài này chúng ta sẽ tạo các lựa chọn bằng sử dụng những chức năng của MapInfo: Select and SQL Select

Thế nào là lựa chọn dữ liệu ?

Lựa chọn sử dụng Query (chất vấn)

Với chức năng Select, sử dụng MapInfo chọn ra một tập hợp con của tập dữ liệu, sử dụng lưu các tập con

thành những lớp riêng biệt, hay sử dụng trong phân tích dữ liệu

Trang 2

Chức năng Select cho phép chất vấn dữ liệu trong một lớp dữ liệu Cho phép chọn lựa những record và

những ñối tượng từ lớp tùy thuộc vào tiêu chuẩn lựa chọn trên thuộc tính của chúng

Ví dụ, ñưa ra công thức chất vấn với Select, yêu cầu MapInfo:

ª Thể hiện chỉ những vùng ở ñó nhiệt ñộ trung bình nhỏ hơn 25oC ?

ª Thể hiện vùng ở ñó ñộ pH ñất lớn hơn 7

ª Thể hiện vị trí những ñiểm quan trắc mưa có lượng mưa trung bình nhỏ hơn

1800mm/năm

Những ñối tượng ñược lựa chọn sẽ ñược ñánh dấu trong cửa sổ Map hay trong Browser MapInfo tạo

những table tạm thời gọi là table Selection (Query??) kết quả có bảng thuộc tính, bản ñồ như table khác Table này chỉ có thể lưu trữ bằng File>saved as thành một table riêng biệt

Ví dụ:

Ê Tỉnh nào của Việt Nam có diện tích lớn hơn 5000km2?

Ê Trạm khí tượng nào nằm trong tỉnh Lai Châu?

Ê Những Tỉnh nào của Việt Nam có dân số lớn hơn 1000000 dân ?

Với chức năng SQL Select, sử dụng những lớp (table) ñể tạo ra thông tin cần thiết như:

Ê Những cột dữ liệu dẫn xuất tính toán những giá trị mới dựa trên những nội dung của những cột dữ liệu có sẵn

Ê Kết hợp dữ liệu ñể mà chỉ liệt kê tổng số phụ (subtotal) thay cho việc phải xem toàn bộ dữ liệu

Ê Phối hợp hai hay nhiều table thành một table

Ê Chỉ thể hiện những cột và hàng cần quan tâm

Ví dụ:

Ê Nhóm các Tỉnh thuộc Đông Nam Bộ

Ê Tính tổng số dân số thuộc Tây Nam Bộ

Các tiêu chuẩn lựa chọn dữ liệu

Tạo các biểu thức

Thực hiện Select query, cần tạo biểu thức Biểu thức là phát biểu logic sử dụng như câu hỏi yêu cầu Ví dụ,

có một table gồm các ñiểm quan trắc nguồn nước và số liệu phân tích Tạo một table tạm thời cho các ñiểm mẫu có ñộ pH nhỏ hơn 7, sử dụng biểu thức:

pH < 7

Ở ñây pH là cột dữ liệu lưu trữ giá trị pH cho từng ñiểm mẫu

Dấu < nghĩa là nhỏ hơn

Trang 3

MapInfo tìm kiếm tất cả các bản ghi trên table ñiểm quan trắc nguồn nước và kiểm tra ñiều kiện tìm ra những bản ghi thỏa mãn ñiều kiện và tạo ra một table tạm thời, table gồm bản ñồ, thuộc tính Có thể thực hiện các công thức toán trên dữ liệu

Ví dụ, tạo một table tạm thời những vị trí mẫu có tổng BOD, COD nhỏ hơn 10mg/l Sử dụng biểu thức:

BOD + COD < 10

Chúng ta ñã yêu cầu MapInfo cộng số cột BOD với số trong cột COD và so sánh chúng với số 10 Có hai cách thực hiện biểu thức này

Đánh vào trực tiếp biểu thức Dùng khi tạo các biểu thức ñơn giản, phương pháp này nhanh

Nhấn nút Assist trong hộp thoại Select và xây dựng biểu thức sử dụng danh sách trong hộp thoại

Expression Phương pháp này khi xây dựng các biểu thức phức tạp hộp thoại Expression cho phép ba

thanh kéo cho phép xây dựng biểu thức: columns, operators, và functions

Các trường (Columns)

Hộp này cho phép liệt kê danh sách tất cả cột trong table ñã chọn

Hộp này chứa các ký hiệu toán và toán tử logic (cộng (+), trừ (-), nhân (*), chia (/), lớn hơn (>), nhỏ hơn (<),

và dấu bằng (=) Dùng những ký hiệu này tạo các công thức toán

Ví dụ, từ table Dân số muốn chọn những vùng có tổng số lớn hơn 1000000 người Tổng số dân bằng tổng số NAM và NU

Có hai cột trong table: NAM, NU Sử dụng công thức:

NAM + NU < 1000000

Ngoài ra còn một số toán tử phép hợp, giao như AND, NOT, OR và LIKE

Hộp này chứa hàm toán ñưa vào một hay nhiều thông số và trả lại giá trị Sử dụng hàm số thực hiện những hàm số toán học trên dữ liệu trong cột Ví dụ:

abs(<number>)

Lấy giá trị tuyệt ñối của số trong cột chỉ ñịnh Ví dụ, nhà khí tượng muốn chọn tất cả ngày trong năm có nhiệt

ñộ lớn hơn 10oC hay nhỏ hơn nhiệt ñộ trung bình quốc gia Có table và cột AVG_DIFF chứa chứa sự khác nhau giữa nhiệt ñộ trung bình QG và TB TP Tạo biểu thức sau:

AVG_DIFF < -10 Or AVG_DIFF > 10

Biểu thức này ñiều khiển MapInfo chọn những bản ghi có nhiệt ñộ trung bình nhỏ hơn -10oC hay lớn hơn +10oC Hay có thể tạo theo biểu thức:

abs(AVG_DIFF) > 10

Quá trình chọn lựa dữ liệu theo các bước sau:

1 Chọn Select từ Menu Query

Trang 4

2 Xác ñịnh table chúng ta chọn lựa

3 Tạo một biểu thức logic sẽ sử dụng chọn dữ liệu

4 Chọn cột chứa các chất vấn dữ liệu

Để xem kết quả chọn, chọn ô Browse MapInfo tạo ra Browser của table mới

Thế nào là lựa chọn SQL ?

Sự lựa chọn dữ liệu tạo ra những tập con dữ liệu dựa trên một hay nhiều biến Chúng ta tạo ra các chọn lựa bằng các công thức toán hay chất vấn trên dữ liệu

Có bao nhiêu người sinh sống tại Châu Âu?

Khu vực nào có mật ñộ dân số cao?

MapInfo chứa những kết quả câu hỏi trong những table tạm thời gọi là table chất vấn (query tables)

Ê Với lệnh Select cho phép công thức có trật tự, Những bản ghi chọn ra bằng lệnh Select

luôn có những thông tin giống như trên dữ liệu gốc Thực tế, chúng là cùng bản ghi và sắp xếp lại với nhau

Ê Với SQL Select thực hiện ñược nhiều hơn, có thể tạo ra các query tables chứa những

thông tin ẩn trong table gốc Hộp thoại SQL Select khá ñơn giản tạo ra những chọn lựa hiệu quả Có thể ñánh trực tiếp vào hay sử dụng menu trượt tạo ra các biểu thức logic

Lưu trữ các chất vấn dữ liệu (Saving Queries)

Bất kỳ một chất vấn tạo ra bằng lệnh Select hay SQL Select có thể lưu như là MapInfo Query table Query

table gồm file *.TAB và *.QRY Sau khi thực hiện Select hay SQL Select, chọn File > Save Query lưu những

chất vấn như table Khi mở table này thì table gốc chấn vấn trên ñó sẽ mở ra và thực hiện chất vấn

Chú ý: Những chất vấn tạo ra dựa trên chất vấn khác không lưu như là table hay trong workspace

Khi mở workspace có chứa các chất vấn, những chất vấn này sẽ thực hiện và những cửa sổ này tạo bởi chất vấn sẽ ñược mở Không giống như lưu query như table, file *.TAB không ñược tạo ra khi lưu query tới workspace

Chú ý: Lưu query trong workspace, Save Queries trong ô Workspaces cần chọn trong Startup preferences

(Options > Preferences > Startup)

Những chất vấn mẫu

Những chất vấn mẫu cho phép lưu những tiêu chuẩn Select hay SQL như mẫu sử dụng lại chúng Chúng sẽ tiết kiệm cho người sử dụng xây dựng các tiêu chuẩn lựa chọn mỗi khi sử dụng chúng Cả hai hộp thoại

Select và SQL Select ñều có tùy chọn Load Template và Save Template cho phép lưu dễ dàng Những mẫu

chất vấn rất cần thiết khi tạo lại các chất vấn với nâng cấp các lựa chọn hay thực hiện các chất vấn trên table

có cùng cấu trúc trường dữ liệu

Lưu trữ mẫu

Trang 5

Sau khi ñặt các ñiều kiện cho chất vấn Select hay SQL Select, nhấn nút Save Template lưu các tiêu chuẩn thành mẫu (hay thành các file query - *.QRY) Hộp thoại The Save Dialog to Query File, xem thêm (Options

> Preferences > Directories)

Chú ý: Những chất vấn không cần quá phức tạp hoặc phải ñúng cú pháp

Sử dụng lại các mẫu

Có thể sử dụng lại bất kỳ mẫu lựa chọn ñã lưu nhấn nút Load Template Chọn file (*.QRY) muốn sử dụng

nhấn Open

Những cột dẫn xuất

Cột dẫn xuất là những cột trong query table Nội dung chúng tạo bởi áp dụng các biểu thức cho những cột số

liệu tồn tại trong một số table cơ sở Ví dụ, cột mật ñộ dân số là cột dẫn xuất

Mặc ñịnh, hộp Select Columns có (*), chỉ ra tất cả các cột trong table cơ sở sẽ có trong query table Nếu

không muốn những cột này, xóa dấu (*) và ñưa vào danh sách những cột cần sử dụng

Có thể tạo những cột dẫn xuất dựa trên aggregate functions count, sum, avg, wtavg, max, min

Ví dụ:

1 Sum(Population) Sẽ tính tổng dân số toàn Thế giới

2 Sum(Area(obj), “sq km”) Sẽ tính tổng diện tích toàn Thế giới

Tạo cột ñịnh danh

Khi MapInfo tạo cột dẫn xuất, nó sẽ sử dụng những biểu thức như là tên các cột dẫn xuất, rất bất tiện Có thể

xác ñịnh (ñịnh danh- alias) cho cột ví dụ, cột population density trong DENSITY Browser có tên:

Population / Area(obj, “sq mi”)

1 Có thể thay ñổi tên cột cần một số mô tả Định danh cần theo qui ước Nó cần cách biệt biểu thức một khoảng trắng và ñóng kín bằng “” Ví dụ:

Country, Population / Area(obj, “sq mi”) “POP_DENSITY”

Khi MapInfo tạo các table query tạm thời, mật ñộ dân số có tên POP_DENSITY

2 Có thể ñịnh danh hay ñổi tên bất kỳ cột nào trong table, không chỉ cột dẫn xuất Ví dụ:

Country “TERRITORY”, Population / Area(obj, “sq mi”) “POP_DENSITY” Nhóm dữ liệu

Khi nhóm dữ liệu, MapInfo sẽ thực hiện các thao tác toán học trên tất cả các cột dữ liệu các bản ghi trong

table Không giống như lệnh Select, chỉ cho phép thực hiện hàm toán học trong những bản ghi riêng biệt,

SQL cho phép Nhóm - aggregate (hay tính tổng - summarize) dữ liệu qua các bản ghi Khi nhóm dữ liệu cần xác ñịnh:

1 Những bản ghi nào sẽ nhóm

2 Những dữ liệu gộp thế nào

Trang 6

3 MapInfo có sáu hàm gộp dữ liệu:

4 Count(*), Sum (expression), Average (expression), WtAvg (expression), Max (expression), Min (expression)

Nhóm, sắp xếp dữ liệu theo cột

Có thể nhóm SQL query bằng những cột mà dữ liệu có chứa cùng một giá trị

Nối dữ liệu các table sử dụng SQL

Khi thực hiện SQL Select với nhiều table, MapInfo cần nối thông tin từ những table khác nhau Tạo ra những bản ñồ có những ñối tượng bản ñồ với những thông tin từ nhiều bảng dữ liệu khác nhau

PHẦN THỰC HÀNH

Tạo ra những dữ liệu mới (Subset of a File)

1.1.1 Lưu trữ các tiêu chuẩn chất vấn

Sử dụng lại các tiêu chuẩn chất vấn

1.1.2 Tạo những cột dữ liệu dẫn xuất

Tạo các cột dữ liệu mới bằng cách sử dụng các hàm gộp dữ liệu - aggregate functions (count, sum, avg,

wtavg, max, min) Ví dụ:

1 Sum(Population)

2 Sum(Area(obj, "sq mi")

Trang 7

1.1.3 Tạo những cột ñịnh danh (Creating Column Aliases)

Tạo cột ñịnh danh cho kết quả Query SQL

1 Country, Pop_1994/ Area(obj, "sq mi") "POP_DENSITY"

2 Country “TERRITORY”, Population / Area(obj, “sq mi”) “POP_DENSITY"

1.1.4 Lưu kết quả tạo dữ liệu mới

Lưu theo query (*.QRY)

Lưu Workspace (*.wor)

Lưu kết quả thành file (*.tab)

1.1.5 Nhóm dữ liệu (Tập hợp dữ liệu-Aggregate)

Sử dụng các hàm gộp dữ liệu thực hiện các tiêu chuẩn sau (dựa trên dữ liệu bản ñồ thế giới):

Trang 8

Count(*): ñếm số bản ghi trong nhóm lấy dấu (*) là ñối số

Sum (expression): tính tổng số những giá trị trong <expression> cho tất cả bản ghi trong nhóm

Average (expression): Tính toán trung bình cho những giá trị <expression> tất cả các bản ghi trong nhóm

WtAvg (expression): Tính toán trung bình trọng số cho những giá trị <expression> tất cả các bản ghi trong

nhóm

Max (expression): tìm giá trị lớn nhất trong <expression> cho các dữ liệu trong nhóm

Min (expression): tìm giá trị nhỏ nhất trong <expression> cho các dữ liệu trong nhóm

1.1.6 Nhóm và sắp xếp dữ liệu theo cột

Sử dụng Group By Columns ñể tính các table kết quả (tổng phụ - Subtotal)

Group By Columns trong hộp thoại là tùy chọn Nếu ñưa vào một hay nhiều tên cột dữ liệu, table những kết

quả chứa các tổng phụ hoặc thông tin tập hợp của table

Khi xác ñịnh giá trị cho Group By Columns, MapInfo chất vấn những cột xem những hàng nào có cùng giá trị trong cột này Nếu ta có một CSDL 61 Tỉnh thành Việt nam, và nhóm theo cột vùng, MapInfo lấy tất cả các Tỉnh thuộc ĐNB vào một nhóm, và các Tỉnh Tây Nguyên vào nhóm khác vv

MapInfo tính toán thông tin tập hợp(sums, averages, vv ) cho mỗi nhóm

Xác ñịnh vai trò tổng phụ:

1 Trong Group By Columns, ñưa vào tên hay số thứ tự cột cần tính tổng phụ

Ví dụ, muốn tính tổng diện tích các tỉnh thuộc Đồng bằng Nam Bộ, ñưa vào tên vùng (cột mô tả các vùng Việt

Nam)

2 Đưa vào tên cùng tên cột Vùng trong Select Columns

Trang 9

3 Đưa vào một hay nhiều phương pháp tập hợp dữ liệu (Sum, Count, Avg, Min, Max) trong Select columns

Nhớ cách nhau bằng dấu phẩy

Tất cả cột trong Select Columns không dựa trên chức năng tập hợp (aggregate) cần nhất thiết liệt kê trong

Group By Columns Chúng là những cột MapInfo kiểm tra xác ñịnh nhóm số liệu Mỗi tập hợp của duy nhất

giá trị dữ liệu trong cột có một hàng trong table chất vấn (query table) Các cột dẫn xuất cần thiết kế bằng số chỉ ra mối quan hệ vị trí: "1," "2," "5," cho cột ñầu tiên, thứ hai, thứ năm

Trong Group By Columns, cần xác ñịnh tên hay vị trí thứ tự chúng

Có thể ñưa vào Group By Columns một hay nhiều giá trị MapInfo ñầu tiên nhóm theo cột ñầu tiên trong

danh sách Với những cái ñã nhóm, MapInfo gộp những hàng theo cột hai và tiếp theo Cho mỗi kết quả hàng, table chất vấn chứa những giá trị cho tất cả cột dựa trên chức năng tập hợp dữ liệu

Chú ý: Những cột trong Select Columns dựa trên chức năng tập hợp dữ liệu không thể liệt kê trong Group

By Columns Những cột trong Select Columns không dựa trên thao tác tập hợp nên liệt kê trong Group By Columns

Trang 10

1.1.7 Nối các Table sử dụng SQL

Sử dụng (Where Condition) nối dữ liệu

1 Sử dụng cửa sổ Mapbasic ñánh lệnh theo cú pháp:

Select * from A,B where A.field1 = B.field1 Select * from A,B where B.field1 = A.field1

2 Chú ý thứ tự khi phân tích quan hệ hình học ñối tượng:

Select * from states, cities where states.obj contains cities.obj Select * from states, cities where cities.obj within states.obj

Thứ tự các lệnh không quan trọng

1.1.8 Tìm thông tin trong cột dữ liệu–Sử dụng hàm InStr()

Hàm InStr() tìm một phần chuỗi ký tự trong một chuỗi lớn Đây là hàm số sử dụng với trường ký tự tìm vị trí

ký tự ñặc biệt hay một nhóm ký tự

Ví dụ, Muốn chọn những con ñường trong tên của nó có chuỗi “ie” trong trường tên ñường phố Set up your

SQL Select statement as follows:

Nếu InStr thực hiện tìm thấy chuỗi “ie" nó sẽ trả lại vị trí lớn hơn 1

Cú pháp hàm INSTR như sau:

INSTR ( position, string, substring):

position là vị trí bắt ñầu tìm

Trang 11

string là trường dữ liệu chứa ký tự

substring là chuỗi ký tự cần tìm kiếm

Chú ý Nếu không có chuỗi tìm thấy hàm trả lại số 0

1.1.9 Chọn những bản ghi dữ liệu chẵn hay lẻ

1.1.10 Tìm những bản ghi có giá trị lặp lại trong cột

1 Thường dữ liệu tạo nên bởi nhiều người Một số trường hợp dữ liệu bị lặp lại trong một bản ghi khác Điều này có thể thực hiện bằng SQL

2 Ví dụ : Tìm những thông tin lặp lại trong dữ liệu

Đầu tiên sử dụng SQL Select tạo ra một table chất vấn với hai cột dữ liệu.(sử dụng count(*))

Ngày đăng: 06/12/2015, 18:45

TỪ KHÓA LIÊN QUAN