MapInfo SQL Commands
MapInfo SQL 言語は、SQL-3 標準および SQL/MM 標準をベースとしています。必要に応じて、文字列リテラルは単一引用符で囲み ('example')、識別子 (列名、テーブル名、エイリアスなど) は二重引用符で囲む ("example identifier") 必要があります。識別子は、パーシング ロジックで識別子を正しくパースできない場合にのみ引用符で囲む必要があります。これには、名前にスペースや他の特殊文字を含んでいる識別子が含まれます。詳細については、quotes.html#quotesを参照してください。
Spectrum Spatial では、MapInfo SQL 言語は以下のコマンドで構成されます。
選択
SELECT < select_list >
FROM { < table_source > } [ ,...n ]
[ WHERE < search_condition > ]
[ GROUP BY expression [ ,...n ] ]
[ ORDER BY < column_position | column_name > [ ASC | DESC ] [ ,...n ]]
[ LIMIT positive_integer ]
[ OFFSET positive_integer ]
< select_list > ::=
{
*
| { table_name | table_alias }.*
| { expression } [ [ AS ] column_alias ]
} [ ,...n ]
< table_source > ::=
table_name [ [ AS ] table_alias ]
注: ORDER BY または GROUP BY を、ラスタ、ジオメトリ、スタイル、またはバイナリ列に実行することはできません。
注: ORDER BY ASC では NULL 値は最後に表示されます。ORDER BY DESC 値は最初に表示されます。
更新
UPDATE <table_name>
SET {column_name = expression} [ ,…n]
[ WHERE < search_condition > ]
[ COMMIT_INTERVAL = integer ]
例えば、すべての州に対して DENSITY という列を更新するには、次の文字列を使用します。
UPDATE STATES set DENSITY = POP_1990 / MI_AREA(obj, 'sq mi', 'Spherical')
一部の州に対して DENSITY 列を更新するには、次のように WHERE 句を追加します。
UPDATE STATES set DENSITY = POP_1990 / MI_AREA(obj, 'sq mi', 'Spherical') WHERE STATE_NAME in ('New York', 'New Jersey')
次のようにして、コミット間隔 (1 回のトランザクションで一括で確定される変更件数) を指定することもできます。
UPDATE STATES set DENSITY = POP_1990 / MI_AREA(obj, 'sq mi', 'Spherical') COMMIT_INTERVAL 30
挿入
INSERT [INTO] { table_name } [ ( column_list ) ]
{ VALUES ({expression | NULL}[, ...n])
削除
DELETE [FROM] { table_name } [ WHERE < search_condition > ]
< search_condition > ::=
{ [ NOT ] < predicate > | ( < search_condition > ) }
[ { AND | OR } [ NOT ] { < predicate > | ( < search_condition > ) } [ ,...n ] ]
< predicate > ::=
{
expression [ { = | < > | != | > | >= | < | <= } expression ]
| string_expression [ NOT ] LIKE string_expression [ ESCAPE 'escape_character' ]
| expression [ NOT ] BETWEEN expression AND expression
| expression IS [ NOT ] NULL
}
expression は、列名、疑似列、列のエイリアス、定数、関数、または列名、列のエイリアス、定数、関数を演算子で接続した任意の組み合わせです。列名と疑似列の前には、テーブル名またはテーブルのエイリアスにドット (".") 文字を付加したものを付けることができます。
search_condition は、真または偽を返す式への参照です。このドキュメント内の関数の大部分は検索条件で使用できますが、集合関数は検索用にサポートされていません。
group_by_expression は選択リスト内の列への参照で、選択リストの式の正確なコピー、エイリアス、列の位置を示す 1 を起点とする数字、または n が列を表す数字である coln のいずれかです。
order_by_expression は選択リスト内の列への参照で、選択リストの式の正確なコピー、エイリアス、列の位置を示す 1 を起点とする数字、または n が列を表す数字である coln のいずれかです。