์˜์–ดํ”„๋ž‘์Šค์–ด์ŠคํŽ˜์ธ์–ด

Ad


์˜จ์›์Šค ํŒŒ๋น„์ฝ˜

db.executegrass - ํด๋ผ์šฐ๋“œ์˜ ์˜จ๋ผ์ธ

Ubuntu Online, Fedora Online, Windows ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋˜๋Š” MAC OS ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ํ†ตํ•ด OnWorks ๋ฌด๋ฃŒ ํ˜ธ์ŠคํŒ… ์ œ๊ณต์—…์ฒด์—์„œ db.executegrass๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

์ด๊ฒƒ์€ Ubuntu Online, Fedora Online, Windows ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋˜๋Š” MAC OS ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ์™€ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๋ฌด๋ฃŒ ์˜จ๋ผ์ธ ์›Œํฌ์Šคํ…Œ์ด์…˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ OnWorks ๋ฌด๋ฃŒ ํ˜ธ์ŠคํŒ… ์ œ๊ณต์—…์ฒด์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” db.executegrass ๋ช…๋ น์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ๊ทธ๋žจ:

์ด๋ฆ„


db.์‹คํ–‰ - ๋ชจ๋“  SQL ๋ฌธ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
SELECT ๋ฌธ์˜ ๊ฒฝ์šฐ 'db.select'๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

ํ‚ค์›Œ๋“œ


๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์†์„ฑ ํ…Œ์ด๋ธ”, SQL

๊ฐœ์š”


db.์‹คํ–‰
db.์‹คํ–‰ --๋„์›€
db.์‹คํ–‰ [-i] [SQL=sql_query] [์ž…๋ ฅ=name] [์šด์ „์‚ฌ=name] [๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค=name]
[๊ฐœ์š”=name] [--๋„์›€] [--๋ง ์ˆ˜๊ฐ€ ๋งŽ์€] [--์กฐ์šฉํ•œ] [--ui]

ํ”Œ๋ž˜๊ทธ :
-i
SQL ์˜ค๋ฅ˜๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ๊ณ„์†

--๋„์›€
์‚ฌ์šฉ ์š”์•ฝ ์ธ์‡„

--๋ง ์ˆ˜๊ฐ€ ๋งŽ์€
์ž์„ธํ•œ ๋ชจ๋“ˆ ์ถœ๋ ฅ

--์กฐ์šฉํ•œ
์กฐ์šฉํ•œ ๋ชจ๋“ˆ ์ถœ๋ ฅ

--UI
๊ฐ•์ œ ์‹คํ–‰ GUI ๋Œ€ํ™” ์ƒ์ž

๋งค๊ฐœ ๋ณ€์ˆ˜ :
SQL=sql_query
SQL ๋ฌธ
์˜ˆ: update rybniky set kapri = 'hodne' ์—ฌ๊ธฐ์„œ kapri = 'malo'

์ž…๋ ฅ=name
SQL ๋ฌธ์„ ํฌํ•จํ•˜๋Š” ํŒŒ์ผ ์ด๋ฆ„
ํ‘œ์ค€ ์ž…๋ ฅ์˜ ๊ฒฝ์šฐ '-'

์šด์ „์‚ฌ=name
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“œ๋ผ์ด๋ฒ„์˜ ์ด๋ฆ„
์˜ต์…˜ : MySQL, ์˜ค๋””์˜ค, SQLite, ํŽ˜์ด์ง€, ์˜ค๊ทธ, dbf
ํƒœ๋งŒ: sqlite

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค=name
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„
ํƒœ๋งŒ: $GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db

๊ฐœ์š”=name
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ
๋“œ๋ผ์ด๋ฒ„/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์—์„œ ์Šคํ‚ค๋งˆ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

๊ธฐ์ˆ 


db.์‹คํ–‰ ์‚ฌ์šฉ์ž๊ฐ€ SQL ๋ฌธ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

๋…ธํŠธ


db.์‹คํ–‰ SQL ๋ฌธ๋งŒ ์‹คํ–‰ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ˜ํ™˜๋œ ๊ฒฝ์šฐ ์‚ฌ์šฉ DB.์„ ํƒ.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์„ ์œ„ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ด๋ฏธ ์„ค์ •๋œ ๊ฒฝ์šฐ DB.์—ฐ๊ฒฐ, ๊ทธ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค
๊ธฐ๋ณธ๊ฐ’์ด๋ฉฐ ๋งค๋ฒˆ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ฒ˜๋ฆฌํ•  SQL ๋ช…๋ น์ด ๋งŽ์€ ๊ฒฝ์šฐ ๋ชจ๋‘ ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋น ๋ฆ…๋‹ˆ๋‹ค.
SQL ๋ฌธ์„ ํ…์ŠคํŠธ ํŒŒ์ผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์‚ฌ์šฉ ์ž…๋ ฅ ์ฒ˜๋ฆฌํ•  ํŒŒ์ผ ๋งค๊ฐœ๋ณ€์ˆ˜๋ณด๋‹ค
๊ฐ ๋ฌธ์€ ๋ฃจํ”„์—์„œ ๊ฐœ๋ณ„์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ช…๋ น์ค„์ด ์ œ๊ณต๋˜๋ฉด ๊ฐ SQL์€
์ค„์€ ์„ธ๋ฏธ์ฝœ๋ก ์œผ๋กœ ๋๋‚˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์ธ๋ณ„๋กœ ๋ด์ฃผ์„ธ์š” GRASS SQL ์ธํ„ฐํŽ˜์ด์Šค ์ƒˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์„ธ์š”.

์‚ฌ์šฉ ์˜ˆ


'cat' ๋ฐ 'soiltype' ์—ด์ด ์žˆ๋Š” ์ƒˆ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
db.execute sql="CREATE TABLE ํ† ์–‘(cat ์ •์ˆ˜, ํ† ์–‘ ์œ ํ˜• varchar(10))"
SQL ๋ฌธ์ด ํฌํ•จ๋œ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ํ…Œ์ด๋ธ” ๋งŒ๋“ค๊ธฐ
db.execute ๋“œ๋ผ์ด๋ฒ„=odbc ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค=grassdb ์ž…๋ ฅ=file.sql
์†์„ฑ ํ…Œ์ด๋ธ”์— ์ƒˆ ํ–‰์„ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.
db.execute sql="INSERT INTO mysites(id,name,east,north) ๊ฐ’(30,'Ala',1657340,5072301)"
SQL ๊ทœ์น™์— ๋”ฐ๋ผ ์†์„ฑ ํ•ญ๋ชฉ์„ ์ƒˆ ๊ฐ’์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
db.execute sql="๋„๋กœ ์—…๋ฐ์ดํŠธ SET ์—ฌํ–‰ ๋น„์šฉ=5 WHERE cat=1"
SQL ๊ทœ์น™์— ๋”ฐ๋ผ ์†์„ฑ ํ•ญ๋ชฉ์„ ์ƒˆ ๊ฐ’์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
db.execute sql="์—…๋ฐ์ดํŠธ dourokukan SET testc=50 ์—ฌ๊ธฐ์„œ testc๊ฐ€ NULL์ž…๋‹ˆ๋‹ค."
์†์„ฑ ํ…Œ์ด๋ธ”์—์„œ ์„ ํƒํ•œ ํ–‰์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
db.execute sql="์œ„๋„ < -91์ธ gsod_stationlist์—์„œ ์‚ญ์ œ"
์†์„ฑ ํ…Œ์ด๋ธ”์— ์ƒˆ ์—ด์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
db.execute sql="ALTER TABLE ๋„๋กœ ADD COLUMN ๊ธธ์ด๋ฅผ ๋‘ ๋ฐฐ๋กœ ๋Š˜๋ฆผ"
์—ด ์œ ํ˜• ๋ณ€ํ™˜ - ๊ธฐ์กด ์—ด์—์„œ ์ƒˆ ์—ด์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค(๋‹ค์Œ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๋“œ๋ผ์ด๋ฒ„).
DBF):
# 'z_value'๋Š” varchar์ด๊ณ  'z'๋Š” ๋ฐฐ์ •๋ฐ€๋„์ž…๋‹ˆ๋‹ค:
echo "UPDATE geodetic_pts SET z = CAST(z_value AS ์ˆซ์ž)" | db.execute ์ž…๋ ฅ=-
์†์„ฑ ํ…Œ์ด๋ธ”์—์„œ ์—ด์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
db.execute sql="ALTER TABLE ๋„๋กœ DROP COLUMN ๊ธธ์ด"
๋“œ๋กญ ํ…Œ์ด๋ธ”(์ผ๋ถ€ ๋“œ๋ผ์ด๋ฒ„์—์„œ๋Š” ์ง€์›๋˜์ง€ ์•Š์Œ):
db.execute sql="DROP TABLE fmacopy"
ํŒŒ์ผ์˜ ์—ฌ๋Ÿฌ SQL ๋ช…๋ น์œผ๋กœ ์†์„ฑ ์—…๋ฐ์ดํŠธ(์˜ˆ: file.sql, ๋ช…๋ น์ค„)
์„ธ๋ฏธ์ฝœ๋ก ์œผ๋กœ ๋๋‚˜์•ผ ํ•จ):
๋„๋กœ ์—…๋ฐ์ดํŠธ SET travelcost=5 WHERE cat=1;
๋„๋กœ ์—…๋ฐ์ดํŠธ SET travelcost=2 WHERE cat=2;
db.execute ์ž…๋ ฅ=file.sql
๊ณตํ†ต 'cat' ์—ด ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ…Œ์ด๋ธ” 'myroads'๋ฅผ 'extratab' ํ…Œ์ด๋ธ”์— ์กฐ์ธํ•ฉ๋‹ˆ๋‹ค.
DBF ๋“œ๋ผ์ด๋ฒ„์—์„œ ์ง€์›๋จ):
db.execute sql="extratab SET ์ด๋ฆ„ ์—…๋ฐ์ดํŠธ=(extratab.cat=myroads.cat์ธ myroads์—์„œ ๋ผ๋ฒจ ์„ ํƒ)"

onworks.net ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜จ๋ผ์ธ์œผ๋กœ db.executegrass ์‚ฌ์šฉ


๋ฌด๋ฃŒ ์„œ๋ฒ„ ๋ฐ ์›Œํฌ์Šคํ…Œ์ด์…˜

Windows ๋ฐ Linux ์•ฑ ๋‹ค์šด๋กœ๋“œ

Linux ๋ช…๋ น

Ad