列の構成
列の記述
このセクションではデータベースの列についての情報を得るコマンドについて述べる.
このセクションの例を実際に試してみて,記載の通りに動作しなかった場合は,「データベースの例の使用」で述べているように
パッケージを使ってデータベースをもとの状態に戻す必要があるかもしれない.
列についての情報を取り出す関数
DatabaseLink をロードし,デモデータベースに接続する.
SQLColumnNamesを使うと,データベース内の列名が,表と列の名前のペアのリストとして得られる.HSQLDBについては,SYSTEM表の多くからの情報が返される.
| Out[3]= |  |
メタ文字を使って名前に合致させることも可能である.メタ文字には0以上の文字が合致する「%」と,1文字のみの「_」がある.次のコマンドは,表の中でSAで始まる名前を持つ列を検索する.
| Out[4]= |  |
SQLColumnsはSQLColumn式のリストを返す.「SQLExecute:SQLスタイルのクエリにおける引数の列」で述べているように,SQLColumn式はデータベースコマンドにおいて構造的な引数に便利なことがある.結果には表の名前,列名,データ型,項目をNullにすることができるかどうか,データ長についての情報が含まれているからである.
| Out[5]= |  |
SQLColumnInformationは列についてのより詳しい情報を返す.
Out[6]//TableForm= |
| |  |
表の名前と列の名前に合致するメタ文字のリストを渡すことで,列名をフィルタすることができる.次のコマンドは,表すべてを検索し,「V」で始まる列をすべて返す.
| Out[7]= |  |
表の名前を指定すると,1つの表から列をすべて抽出することができる.
| Out[8]= |  |
SQLTable引数も使える.
| Out[9]= |  |
SQLColumnNamesを使うと,各項目が表の名前と列の名前のリストとなっているリストが得られる.列名のみのリストが必要な場合は Mathematica の部分指定を使って[[All, 2]]と入力し,第2要素だけを抽出する.
| Out[10]= |  |
引数にSQLColumnを使うこともできる.
| Out[11]= |  |
SQLColumns,SQLColumnNames,SQLColumnInformationには多くのオプションが使える.
SQLColumns,SQLColumnNames,SQLColumnInformation オプション
オプション
をSQLColumnInformationで使うと,列見出しが得られる.
Out[12]//TableForm= |
| |  |
接続を閉じます.
データベースが特定のスキーマとカタログで構成されている場合は,オプション
,
を使って列を選択することもできる.
列の表現
SQLColumn式はデータベースの列についての情報を保管している.
このセクションの例を実際に試してみて,記載の通りに動作しなかった場合は,「データベースの例の使用」で述べているように
パッケージを使ってデータベースをもとの状態に戻す必要があるかもしれない.
列を表すオブジェクト
SQLColumnには,多くのオプションが使える.
| | |
| "DataTypeName" | None | 項目の型 |
| "Nullable" | None | 項目がnullになり得るかどうか |
| "DataLength" | None | 可変長データの最大の長さ |
SQLColumnのオプション
SQLColumn式の例を以下に示す.まず DatabaseLink をロードし,demo データベースに接続する.
SQLColumnsは,データベース中の列のリストをSQLColumn式として返す.この例では,SAMPLETABLE1表のみを取り出すようにパターンを指定する.
| Out[3]= |  |
これで接続が終了する.
SQLColumn式は「データの選択」と「表の作成」で示したようにコマンドの中でも使える.「表の作成」では重要な使用例を示す.