表の構成
表の記述
このセクションでは,データベース表の情報を得るコマンドについて述べる.
このセクションの例を実際に試してみて,記載の通りに動作しなかった場合は,「データベースの例の使用」で述べているように"DatabaseLink`DatabaseExamples`"パッケージを使ってデータベースをもとの状態に戻す必要があるかもしれない.
SQLTableNames[conn] | データソース内の表の名前をすべてリストする |
SQLTableNames[conn,name,opts] | nameに合致するデータソース内の表の名前をすべてリストする |
SQLTables[conn] | データソース内の表をすべてリストする |
SQLTables[conn,name,opts] | nameに合致するデータソース内の表をすべてリストする |
SQLTableInformation[conn] | データソース内の表の情報をすべてリストする |
SQLTableInformation[conn,name,opts] | データソース内の名前が合致する表の情報をすべてリストする |
SQLTableTypeNames[conn] | このデータソースでサポートされている表の型をリストする |
DatabaseLink をロードしてpublisherデータベースに接続する:
SQLTableNamesは,接続内の表の名前のリストを返す.
SQLTablesはSQLTable式のリストを返す.これらはデータベース中の表の情報を保管している.
また,SQLTableInformationは表についてのより詳細な情報を返す.
各関数の第2引数にパラメータ文字列を指定し,それに合致する名前の表だけを抽出することもできる.このフィルタリングはデータベースサーバ上で行われるため,速度が顕著に上がる.次の例はAUTHORSという名前の表を検索する.この条件に合致する表が存在しない場合は,結果は空のリストとなる.
複数の表が合致するようにメタ文字を指定することも可能である.メタ文字には0以上の文字が合致する「%」と,1文字のみの「_」がある.次のコマンドは,TITLEで始まるすべての表の名前を返す.
SQLTables,SQLTableNames,SQLTableInformationには数々のオプションが使える.
オプション名
|
デフォルト値
| |
"TableType" | "TABLE" | 返される表の型 |
"Catalog" | None | 使用するデータベースカタログ |
"Schema" | None | 使用するデータベーススキーマ |
"ShowColumnHeadings" | False | 結果とともに見出しを返すかどうか(SQLTableInformationオプションのみ) |
オプション"TableType"を指定すると,どのような型の表を返すか指定することができる.一般にこれはTABLE型の表であり,DatabaseLink の表関数はデフォルトでこれらの情報のみを返す.SQLTableTypeNamesを使うと,データソース中のあらゆる型の表を抽出することができる.
データソースの中のすべての表を見たいときは,SQLTableTypeNamesのオプションに"TableType"を指定して得られた結果が使える.以下に例を示す.
オプション"ShowColumnHeadings"をSQLTableInformationで使うと,列見出しが得られる.
データベースが特定のスキーマとカタログで構成されている場合は,オプション"Catalog","Schema" を使って表を選択することもできる.
表の表現
SQLTable式はデータベースの表の情報を保管する.
このセクションの例を実際に試してみて,記載の通りに動作しなかった場合は,「データベースの例の使用」で述べているように"DatabaseLink`DatabaseExamples`"パッケージを使ってデータベースをもとの状態に戻す必要があるかもしれない.
SQLTable式の例を以下に示す.DatabaseLink をロードし,demoデータベースに接続する.
"TableType"オプションは,データベース中の表の型を選択するときに使用する.
次にSQLTablesを使ってデータベース中の表のリストを取得する.これらはSQLTable 式として返される.この例では,表の名前に合致させるパターンを指定し,"TableType"オプションはすべての型の表を返すように設定する.
「データの選択」に記載のように,SQLTable式はコマンドの中でも使える.