9. テ`ブルの荷恬
荷恬 GRASS SQLite
双の弖紗 v.db.addcol ALTER TABLE ´ ADD COLUMN´
双兆の筝 v.db.renamecol 掲*
双の茅 db.dropcol / v.db.dropcol 掲*
テ`ブル兆の筝 g.rename ALTER TABLE ´ RENAME TO ´
テ`ブルの茅 g.remove DROP TABLE ´
*やろうと房えばできる仟テ`ブル恬撹?デ`タのコピ`?圷テ`ブル茅?テ`ブル兆の筝
テ`ブルの荷恬は、GRASSコマンドとSQLiteSQL猟のどちらからでもできます。
双兆の筝と双の茅はSQLiteでサポ`トしていないので、採かと宴旋です。
リファレンスにもいてあります。
db.dropcol is a front-end to db.execute to allow easier usage
with a special workaround for the SQLite driver to support column drop.
http://grass.osgeo.org/grass64/manuals/db.dropcol.html
GRASSでQう貧で、レイヤ兆┘透`ブル兆や双兆の崙泙いくつかあります。
?磯叔哂方忖とアンダ`バ`のみサポ`ト
?恷兜の猟忖はアルファベット
?レイヤ兆の忖方は、198猟忖までは寄嬋健でした。
?SQLの猟で聞喘するZ鞘は聞喘できません。 箭SELECT
?双兆には寄猟忖と弌猟忖の曝eがありません。NAME=name
10. SQLiteの侏
デ`タ侏 N GRASSの侏
NULL 腎猟忖 null
INTGER 屁方8゛64ビット integer
REAL 検嗤(泣方64ビット double precision
TEXT テキスト侏UTF-8 / UTF-16BE / UTF-16LE varchar(n)
BLOB バイナリ侏 -
侏の兆念は、匯違議な兆各なら尖盾してくれます。 INT, FLOAT, DOUBLE, VARCHAR etc.
...侏の協xはGRASSに栽わせるのが耳です。
SQLiteに鯉{される、離禰`タ侏は5N。
なお、BLOB侏はGRASS GISでQえないので、
この侏の双を根むテ`ブルをGRASSで荷恬するとエラ`が竃ます。
GRASS 6.4.3 (HKD_J2K)> v.db.renamecol map=hoge column=old_column,new_column
WARNING: SQLite driver: unable to parse decltype: blob
WARNING: SQLite driver: column 'blob', SQLite type 4 is not supported
Datatypes In SQLite Version 3 http://www.sqlite.org/datatype3.html
11. UPDATE hoge
SET int = 0, real = 0, text = 0;
UPDATE hoge
SET
int = 2014/6/27,
real = 2014/6/27,
text = 2014/6/27;
UPDATE hoge
SET
int = 2014/6/27,
real = 1.0*2014/6/27,
text = '2014/6/27';
SQLiteの侏
双阿縫妊侫ルトの侏を協xすることができますが、それぞれのセルには
鏡羨した侏のデ`タを鯉{することができてしまいます。
匯鬄∩个龍xに鬉犬塵佑埜饉{されていますが、、、
侏ごちゃまぜでもSQLite議には}ありません。
SQLを初して處麻をする栽は、猟忖双でも方、箸澆覆靴酉麻しようとします。
屁方のみの處麻の栽、屁方侏にも廣吭が駅勣です。
12. 採ができる
SQL猟を聞って互業なデ`タxk、渇竃、それを圷にしたデ`タの厚仟ができます。
$訳周によるgzみWHERE
?LIKE處麻徨でのパタ`ンマッチング 箭WHERE city_name LIKE ^%貧% ̄
屎ア蹶FでのマッチングREGEXP處麻徨はデフォルトでは聞えない
$デ`タのグル`プ晒GROUP BY
?揖じ訳周の佩を匯つにまとめて鹿する 箭GROUP BY city_name
SELECT * FROM cityborder
WHERE city_name LIKE "%貧%"
SELECT
'$$'||substr(city_name,-1) AS city_type,
count(city_name) AS count
FROM cityborder
GROUP BY city_type
箭偏曝隨翫の恷瘁の匯猟忖でグル`プ晒して方を鹿
箭兆各に仝貧々を根む偏曝隨翫を渇竃
13. $麿のテ`ブルとのY栽LEFT JOIN, INNER JOIN
SELECT *
FROM nationalcensus_mesh
LEFT JOIN landuse_mesh
ON landuse_mesh.meshID = nationalcensus_mesh.key_code;
箭メッシュデ`タのY栽┨殳{砲藩禅慇喘
LEFT JOIN
忽殳{縫瓮奪轡絅禰`タ 輿仇旋喘メッシュデ`タ
SQLiteで旋喘できるY栽はLEFT、INNER、CROSS、NATURALの膨Nです。
?RIGHT JOIN,FULL OUTER JOINには鬉靴討い覆い里如⊇Y栽の會に廣吭が駅勣です。
採ができる
15. $xkY惚の旋喘┘汽屮エリ
ALTER TABLE landuse_mesh
ADD COLUMN Population integer; --双を弖紗
UPDATE landuse_mesh
SET Population =
(SELECT Population
FROM nationalcensus_mesh
WHERE landuse_mesh.meshID = nationalcensus_mesh.key_code
);
箭奉來デ`タに麿のテ`ブルのデ`タを携襭┘禰`タの厚仟UPDATEステ`トメント
???
CREATE INDEX landuse_mesh_meshID ON landuse_mesh (meshID);
CREATE INDEX nationalcensus_mesh_key_code ON nationalcensus_mesh (key_code);
$インデックスのO協
?SQLiteでは、光カラムにインデックスをO協することができます。
これによって、Y栽やサブクエリを初した厚仟などがゝ弔穆腓なる栽があります。
箭貧のUPDATE箭の栽landuse_mesh114,100佩 nationalcensus_mesh180,222佩
I尖rg インデックス恬撹念瑳s2rg15蛍 ?インデックス恬撹瘁1.18昼
?ユニ`クインデックス恬撹CREATE UNIQUE INDEX瘁1.08昼
採ができる