<cfquery>タグを実行してデータベースから取得したデータをレコードセット( 結果セット) と呼びます。レコードセットとは、行 ( レコード)と列 ( フィールド) が含まれた一種のデータベーステーブルまたはスプレッドシート(Excel のシートのようなもの)と考えることができます。
下記の例では、ARTISTS とART テーブルから4つのカラム(ARTISTID,FIRSTNAME, LASTNAME,ARTNAME)のデータを取得していす。2つのテーブルの関連付けをARTISTID カラムで行っています。
<cfquery datasource="TRCF_dsn" name="qArtists">
SELECT ARTISTS.ARTISTID, ARTISTS.FIRSTNAME,
ARTISTS.LASTNAME, ART.ARTNAME
FROM ARTISTS, ART
WHERE ARTISTS.ARTISTID=ART.ARTISTID
</cfquery>
ColdFusion は、取得したレコード(行)と、テーブル名を取り除いたカラム名(列)を含むレコードセットを取得し、ページ上で利用可能な変数として保管します。この変数のことをクエリー変数、またはクエリーオブジェクトと呼びます。上記例の実行結果は下記となります。
データベースからデータを取得する時に、集計した結果だけを戻すSQL、例えばレコード数を取得する Count() や最大値を取得するMax()、平均値を取得する Avg() などがあり、その結果にはカラム名が含まれていません。
ColdFusion は、取得したカラム名をもとに列(フィールド)を構成するためカラム名を含まない結果に対して、SQL のエイリアス機能を使用して任意の名前を設定します。例えばARTISTS テーブルのレコード数を集計し、何名のアーティストが登録されているかを調べる<cfquery> を紹介します。
<cfquery datasource="TRCF_dsn" name="qArtists">
SELECT Count(*) AS Artists_num
FROM ARTISTS
</cfquery>
・複数のテーブルに同じ名前のカラムが存在し、それらをSELECT して結果を受け取りたいとき
→同じ名前で複数のカラムが作成される事を避けます
・列の名前に、ColdFusion で問題を引き起こす原因になり得る特殊文字やスペースが含まれていた場合
→カラム名≒変数名となるため、カラム名にそれら文字が含まれている時(日本語のカラム名なども)に問題が無い名前に変更します
・長い名前のカラム名などをもっと短く、分かり易くしたいとき