SELECTステートメントは、1つもしくは複数のテーブルからデータを抽出する、SQLにおけるデータ操作言語 (DML)ステートメントの1つである。これは、データベースの1つもしくは複数のテーブルからデータを抽出するための命令で、データ操作言語 (DML)の中では最もよく使用される。プログラマはどのような結果を欲しいのかをSQL文で記述する必要はあるが、その結果を取得するためにどのような物理的な操作が実行されるのかを指示する必要はなく、データベースシステム(クエリオプティマイザ)がそのSQL文から最適なクエリプラン(実行計画)を作成する。これらは、ANSI(米国規格協会)によってある程度は標準化されているが、それ以外に製品固有の命令文が多数存在するため、使用するには各種DBMSの仕様とバージョンを確認する必要がある。なお、「テーブル」は「表」、「行」は「レコード」、「列」は「項目」と呼ぶこともある。SELECT文において必須の構成句。指定列を記述することで、列を射影する。*で全列表示できる。また、算術演算子、グループ関数が使用可能。列名入力規則の主なものとしてはで、列別名表示ができる。但し、WHERE句、GROUP BY句、HAVING句では列別名の記述はできない。また、列名の表示に際して、デフォルトは半角英大文字である。これを小文字などで表示させたい場合、単一行関数の文字関数を使用するか、" "で括るかするとよい。などがある。主な条件としてSELECT文において必須の構成句。FROM句では列参照に用いる表を指定する。複数の表から指定する場合、結合が行われ、JOINを用いるほか、WHERE句によって共通列の結合関係を指定することも可能(但し、この場合は外部結合ができない。但し、OracleDBMSの場合、(+)という特殊な記号を使用して、外部結合を行える)。なお、表を必要としないクエリを行う場合も、DUAL表のようなダミーの表を指定することとなるが、このような場合にFROMを省略できる拡張の行われた処理系も多く存在する。このFROM句では表別名の指定が可能であるが、一旦表別名を指定した場合、表別名で記述してやらないとエラーになる。
例: SELECT A. B FROM LIST GROUP BY A, B;(グループ化するのはAだが、B列も一緒に記述しないとエラーとなる)。また、GROUP BY句を含むとビューの作成ができない(SELECT文でグループ関数を使用した場合、あるいはDISTINCT句を使用した場合も同じ)。 HAVING句は、GROUP BY句で集計した結果に対して抽出条件を指定する際に使用する。グループ関数の使用が可能である。順序はGROUP BY句と前後になっても問題ない。ここでのNULLはDBMSに依存し、最大値をとるものと最小値をとるものがある。と簡潔に表すことができる。これを副問合わせに応用することも可能で、たとえば納品(伝票番号,行番号,商品番号,納品日,個数,…)という表から一度でも納品された商品を表したい場合はとすれば、一度でも納品された商品が抽出される。逆に、NOT INとすると納品表に一度も納品されていない商品が抽出される。結果的に、INで記述した場合と同様の結果を示すことになるが、EXISTSでは先に副問合わせのselect文を処理している。MySQL、PostgreSQLなど一部のDBMSで使用可能な構成句。ORDER句の後に記述すると、選択する行を限定できる。文法はLIMIT(開始の行,取得する行数)、またはLIMIT 取得する行数 OFFSET 開始の行。たとえば、受験者(生徒番号,生徒名,国語,数学,英語)という表から高得点者上位10人だけを抽出したい場合は以下のように記述する(国語、数学、英語には数値が入る)。右図のテーブル"T"欄のテーブルに対して、SQL文 codice_1 を実行すると、結果欄に示されているように、テーブル"T"のすべての行とすべての列が返される。 同じテーブル"T"に対して、SQL文 codice_2 を実行すると、テーブル"T"のすべての行の列C1のみが返される。これは、関係代数 における「射影」に相当する。同じテーブル"T"に対して、SQL文 codice_3 を実行すると、列C1 の値が 1 であるすべて行のすべての列が返される。これは、関係代数 における「選択」に相当する。最後のSQL文 codice_4 は最初のSQL文と同じ行を返すが、並び順が、ORDER BY句により、C1に対して降順(Z-A)になる。ORDER BY句で複数列を指定する場合は、カンマで区切る。例:ORDER BY C1 ASC, C2 DESC(この場合、列C1に対しては昇順、列C2に対しては降順になる。)
出典:wikipedia
LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。